转载请标明出处:http://blog.csdn.net/cyzhang811/archive/2009/01/05/3716296.aspx
名词:BDC(BATCH INPUT)
多系统之间数据交换技术:
A、RFC (一种特殊的function module,用于SAP系统与非SAP系统之间数据交换,SAP <-> 其他系统)
B、EDI (一种SAP系统与非SAP系统之间数据交换的技术,SAP <-> 文件服务器 <-> 其他系统)
C、XI (一种SAP系统与非SAP系统之间数据交换的技术,SAP <-> IDOC <-> 其他系统)
D、BAPI(可以看作是封装过的的RFC,用于SAP系统与非SAP系统之间数据交换,SAP <-> 其他系统)
se37写出来的叫function,其中可以远程调用的叫rfc,remote-enabled function,abap语法和输入输出参数就会有一些限制。
bapi是sap做好的实现特定业务操作的rfc。
idoc是基于sap自己的类似xml格式的文档数据交换的方式。
RFC必须在线的方式调用,一般做同步的,idoc基于文档,可以实现异步的。
RFC是面向过程的,调用简单直接;
BAPI是面向对象的,有属性、有方法、有事件,更加复杂和丰富,更能反映SAP的业务应用,而
BAPI方法的构造是基于RFC的,你也可以认为BAPI封装了RFC
我觉得RFC在应用时最为灵活。
idoc是基于sap自己的类似xml格式的文档数据交换的方式。rfc必须在线的方式调用,一般做同步的,idoc基于文档,可以实现异步的。
idoc是系统间利用message传递,不涉及底层函数调用,idoc的处理方式是用edi来执行的。
你可以理解为IDOC是SAP为了同外部系统或内部不同client通迅所采用的一种数据结构,不同的idoc type 定义了不同的格式,如关于material master data 的IDOC, BOM, PO,SO等相关的IDOC; ALE 主要用于内部数据交换用的,如不同client; EDI用于同外部系统的交换数据,它们的本质都 是base on IDOC。。。idoc是基于sap自己的类似xml格式的文档数据交换的方式。idoc基于文档,可以实现异步的。
bapi好用在于,其效率相对比较高,这个主要体现在有些bapi是用direct input的方式写的,效率高。
但你如果用rfc写也有好处,当你写的不只是一个luw时,而每个luw都比较简单,
在这种情况下就用rfc开发比较快。