[SAP - Netweaver] idoc 和 bapi 和 rfc 之间的区别
文章分类:行业应用
se37 写出来的叫 function,其中可以远程调用的叫 rfc,remote-enabled
function,abap 语法和输入输出参数就会有一些限制。bapi
基于文档,可以实现
异步的。
idoc 是系统间利用 message 传递,不涉及底层函数调用,idoc
来执行的 .
你可以理解为 IDOC 是 SAP 为了同外部系统或内部不同 client 通迅所采用的一
种数据结构,不同的 idoc type 定义了不同的格式,如关于 material master
data 的 IDOC, BOM, PO,SO 等相关的 IDOC; ALE 主要用于内部数据交换用
的,如不同
base
on IDOC。。。idoc 是基于 sap 自己的类似 xml 格式的文档数据交换的方式。
idoc 基于文档,可以实现异步的。
RFC 是面向过程的,调用简单直接;
BAPI 是面向对象的,有属性、有方法、有事件,更加复杂和丰富,更能反映
SAP 的业务应用,而
BAPI 方法的构造是基于 RFC 的,你也可以认为 BAPI 封装了 RFC
我觉得 RFC 在应用时最为灵活。
IDOC 是 SAP 标准的文件交换格式,SAP 已经有了大量的 Function Module
来处理和传递 IDOC,特别
是对于要和其它系统交换数据时,配合一些系统如 biztalk server,IDOC 会
显得非常的方便,开
发的工作量也是最小的。
RFC 的话,如果配合 SAP 的 BDC 使用的话,或者你是一个 ABAP 的高手的话,
RFC 也是很灵活的。
至于 BAPI 的话,我觉得 SAP 的 bapi 概念很好,但是接口很不完善,很多数
据无法通过 SAP 本身的
BAPI 完成,得自己来做开发。
对于 bapi 和 rfc 到底那个好用,我觉得没什么定论,有时 bapi 好用,有时 rfc
好用。
bapi 好用在于,其效率相对比较高,这个主要体现在有些 bapi 是用 direct
input 的方式写的,效率高。
但你如果用 rfc 写也有好处,当你写的不只是一个 luw 时,而每个 luw 都比较
简单,
在这种情况下就用 rfc 开发比较快。
评论0