SAP接口技术的研究与实现
作者:徐晓琴
来源:《电脑知识与技术》2018年第09期
作者:徐晓琴
来源:《电脑知识与技术》2018年第09期
摘要:SAP接口技术可以消除SAP系统与其他系统间的信息孤岛,提升各系统间的集成度和数据共享性能,整体提高企业的信息资源整合。随着公司SAP系统与外围系统的集成越来越多,根据不同的业务需求及系统特点使用了不同SAP的接口技术。本文详细介绍了SAP系统提供的主要接口技术:RFC、BAPI、BDC、PI、Webservice接口技术,从实例上重点介绍了RFC、BAPI、PI、BDC接口技术原理和使用方法,为其他企业接口需求分析提供了指导作用。
关键词:SAP系统 ;接口技术 ; BAPI
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)09-0267-02
1 背景
中信戴卡公司SAP(System Application and Products in Data Processing)系统上线五
年来,经过不断地深化应用,通过实施SAP系统为核心的业务管控体系,全面提升企业现代化管理水平,全面提升企业的运行效率和效益。SAP系统进行全面实施,主要模块为:MM、SD、PP、FI、CO,建立既满足企业当前业务形式,又满足未来拓展需求的系统模式;梳理业务流程,以SAP系统为基础核心,建立高效、清晰的标准流程;集成CAQ\MES\OA\EDI,采购平台等系统,以SAP为核心,建立销售、采购、生产、质量、财务、成本等一体化管理平台;支持生产的精益管理:利用信息技术和系统集成,实现生产精益管理,使得SAP系统能获取实时、准确的生产执行数据,进行及时详细的核算并对高阶的生产计划和决策提供有效支持,实现产品线生产效益的最大化;为经营决策提供及时准确的财务分析以及产品经营数据的分析。通过利用先进的信息技术手段实现集成,从根本上提高企业获取信息能力,不断提升企业管理能力和核心竞争力,才能在激烈的竞争条件下占领市场优势,不断扩大经营规模。
2 SAP接口技术介绍
2.1 RFC技术
中信戴卡公司SAP系统上线以来,同步开发了许多外围系统,与SAP系统数据交换均采
用的是RFC接口技术。RFC大并发,短时间内加速ECC资源占用;所有集成场景外围系统发起,系统负载高;每个工厂开发一个新RFC提供类似数据,如物料主数据;同步接口等待时间长,如北美报产页面等待5分钟以上,接口可重用性低;缺少监控机制;网络问题,需要由发起系统核对数据重发。
2.2 BAPI接口技术
BAPI就是模拟一些SAP常规业务操作而封装好的函数,并能返回业务处理消息。程序开发时候可直接调用BAPI,一般不能修改,只需要收集输入参数,中间过程交给BAPI处理,成功失败消息始终通过RERURN表返回。
2.3 BDC批输入技术
BDC(Batch Data Conversion)是针对一些没有BAPI的业务操作,通过事务代码SHDB把用户的业务操作记录下来,然后用程序代码固化下来,重复使用。中信戴卡公司使用BDC技术挺多,但是缺点之一,对于增加新字段等修改需要重新录屏,操作麻烦;缺点二,对于复杂屏幕的,录屏编写的程序执行错误,达不到预想状态。
2.4 SAP PI技术
最近,中信戴卡公司实施了PI系统。通过集成式的信息管理平台,统合庞杂的业务系统信息流,并藉由平台提供的系统监管能力,实现单一窗口的运维管理。PI提供的功能:提供同步式的沟通渠道(如,RFC, Webservice),达成实时的数据传输;良好的信息管理能力,提供多种讯息管理及查询机制,方便查询信息的收送方、传送时间及资料内容等;确保信息送达,若遭遇问题时,有自动重送的机制;手动发送机制,不需要前端系统再次发送。提供常用的接口(Adapter)类型(A2A/B2B),减少系统间讯息传送的接口考虑及开发考量;保障数据传输及数据内容的安全。
2.5 Webservice接口技术
WebService是构建互联网分布式系统的基本部件,成为企业集成应用的主要平台。Webservice通过标准通信协议,目前主要使用SOAP协议。大致流程:在TCODE:SE80下配置代理者或消费者,得到供外部系统调用的WSDL网址或配置外部系统提供的URL,最后通过事务代码SOAMANAGER进行端口配置即可。
3 接口技术应用
中信戴卡主要产品是轮毂,主要业务系统是SAP系统,与外围接口系统有OA、EDI、MES、采购管理平台等进行数据交换,这些外围系统是SAP系统业务功能的延伸和细化。
3.1 BAPI技术
以EDI平台调用SAP系统创建销售退货订单为例。
接口程序主要步骤有以下:
1)将采购平台创建物料的数据作为函数的输入参数传过来;
2)将输入结构数据分别赋值传给BAPI的输入参数;
3)CALL FUNCTION调用BAPI,返回信息存放在RETURN结构中。如果webservice实现RETURN中有E类型行,说明有错误,从报错信息查问题并更正;如果没错误,则用COMMIT提交完成。
注意:代码编辑过程中,输入参数的填充有特殊值或一些技巧需要日常经验的积累。
CALL FUNCTION 'BAPI_CUSTOMERRETURN_CREATE'
EXPORTING
RETURN_HEADER_IN = ORDER_HEADER_IN
RETURN_HEADER_INX = ORDER_HEADER_INX
IMPORTING
SALESDOCUMENT = LV_VBELN
TABLES
RETURN = RETURN
RETURN_ITEMS_IN = ORDER_ITEMS_IN
RETURN_ITEMS_INX = ORDER_ITEMS_INX
RETURN_PARTNERS = ORDER_PARTNERS
RETURN_SCHEDULES_IN = ORDER_SCHEDULES_IN
RETURN_SCHEDULES_INX = ORDER_SCHEDULES_INX
RETURN_CONDITIONS_IN = RETURN_CONDITIONS_IN
RETURN_TEXT = RETURN_TEXT.
LOOP AT RETURN WHERE TYPE = 'E' OR TYPE = 'A'..
EXIT.
ENDLOOP.
IF SY-SUBRC = 0.
LOOP AT LT_CHKLOG ASSIGNING .
-FLAG_SO = '1'. "create customer return sales order Failure
CONCATENATE '退货订单创建失败:' RETURN-MESSAGE INTO -ZMESG_SO SEPARATED BY '/'.
CONDENSE -ZMESG_SO NO-GAPS.
ENDLOOP.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
WAIT UP TO 3 SECONDS.
LOOP AT LT_CHKLOG ASSIGNING .
-VBELN = LV_VBELN. "订单
-FLAG_SO = '0'. "0-代表成功
CONCATENATE '退货订单创建成功:' LV_VBELN INTO -ZMESG_SO SEPARATED BY '/'.
CONDENSE -ZMESG_SO NO-GAPS.
ENDLOOP.
ENDIF.
3.2 BDC批处理技术
BDC工作原理:将需要输入的数据依次存放在定义好的BDC的结构内表中,执行CALL TRANSACTION命令调用SAP事物代码TCODE。BDC内表中的数据会按照先后顺序放入对应的屏幕字段,成功提交事务,失败则回滚。下面以创建供应商主数据作为案例来说明BDC工具的导入方法。
TCODE:SHDB下进行录屏操作。输入要录制的事务代码,按照常规业务操作步骤录制一笔有效的业务数据。录制完成后,保存所有记录。
在SE37中编辑函数代码
CALL TRANSACTION 'XK01'
USING GT_BDC
MODE P_MODE
UPDATE 'S'
MESSAGES INTO GT_MESSTAB.
输出GT_MESSTSAB中没有E类型消息,说明创建成功,commit提交完成事务;如果有错误,则根据错误消息进行修正。
3.3 PI技术
在SAP端输入TCODE:SXI_MONITOR查看数据下发情况如下图1所示:其中花格旗代表下发成功,其他颜旗代表有问题。灰旗是没有在ABP程序中COMMIT WORK AND WAI
T.红旗是错误。绿旗是scheduled.果有错误的,可以点击进去,下载XML格式进行程序调试查原因。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论