e-works数字化企业网  »  文章频道  »  管理信息化  »  ERP

NATIVE SQL和BADI技术在QMS系统与SAP系统集成中的应用

2013/4/11    来源:e-works    作者:肖飞      
关键字:ERP应用  SAP/R3系统  长江集团  
在SAP R3系统中,可通过Native Sql与其他系统的数据库直接连接。本文针对大长江集团质量管理系统QMS与SAP ERP系统集成的实际情况,对SAP R3系统中的Native Sql和Badi 技术使用情况进行了介绍。

前言

   在大长江集团的质量管理系统QMS项目实施过程中,希望与SAP/R3系统集成,具体要求是在SAP/R3系统进行收货处理时,相关的物料凭证号、物料号等信息要实时传入QMS系统中触发检验任务。为此,须对SAP/R3系统进行特别开发,下面简要介绍了开发过程中采用的方法,对实现SAP/R3系统的其他增强应用有一定参考作用。

一、系统设置

    由于我们SAP/R3系统与QMS系统都是采用ORACLE数据库,因此,需进行以下设置:

   1:设置ORACLE的TNS文件

   在SAP/R3的应用服务器上设置TNSNAMES.ORA文件,增加对外部数据库的连接。     

    2:设置数据库连接

   在SAP/R3系统中,采用事务码DBCO,对系统进行数据库连接配置。

 

二、功能实现

    为实现由SAP/R3系统访问外部数据库,我们必须利用Native Sql。通常,我们在SAP/R3系统环境下编程都是利用Open Sql,它允许我们访问在ABAP Dictionary声明的数据库表,而不用理会SAP/R3系统采用的是何种数据库系统。而Native Sql允许我们在ABAP程序中用与特定数据库相关的语句来访问特定的数据库, 这也意味着要访问的数据表并不是由ABAP Dictionary管理的,而是存在于外部数据库中。

   1:自定义功能函数YRFC_QM05_001编写

   在定义功能函数的编写中,采用Native Sql ,实现信息写入外部数据库

    (1)连接外部数据库    

    (2)信息写入外部数据库     

    (3)切断外部连接    

    以上为自定义功能函数代码中写入外部数据库的三个步骤。

三、自定义功能函数调用

    自定义功能函数YRFC_QM05_001只能完成由SAP/R3系统向QMS系统写入相关信息的功能,但如何保证SAP/R3系统在进行配件收货处理时,系统能调用到这个函数呢?是否需要修改SAP/R3系统的标准程序呢?为此,我们可以采用SAP系统提供Badi增强功能。Badi( Business Add-Ins)是SAP提供的基于ABAP对象的一种新的系统增强技术,每个Business Add-In包含:Business Add-In定义、Business Add-In 接口和实现这个接口的Business Add-In类。

    在SAP系统中用事务码SE19,我们来实现 MB_DOCUMENT_BADI(创建物料凭证时的 BADI)的方法MB_DOCUMENT_BEFORE_UPDATE。

    双击方法MB_DOCUMENT_BEFORE_UPDATE后,可输入我们自己的代码。     

    这个方法确保只有在移动类型为101(对订单的收货)且要求为质检状态时,系统才会调用我们编写的函数,实现既定的功能。

四、结束语

    通过以上Native Sql和Badi技术的应用,我们在QMS系统与SAP/R3系统的集成过程中,顺利地实现了将SAP系统中配件收货处理后的产生的物料凭证相关信息写入QMS系统,满足了QMS系统的特定功能要求,达到了SAP/R3与QMS两系统集成的目的。

责任编辑:卢玉琴
本文为e-works原创投稿文章,未经e-works书面许可,任何人不得复制、转载、摘编等任何方式进行使用。如已是e-works授权合作伙伴,应在授权范围内使用。e-works内容合作伙伴申请热线:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐