1. 程式人生 > >與SAP整合的介面方式比較:IDOC BAPI RFC 之間的區別

與SAP整合的介面方式比較:IDOC BAPI RFC 之間的區別

se37寫出來的叫function,其中可以遠端呼叫的叫rfc,remote-enabled function,abap語法和輸入輸出引數就會有一些限制。bapi是sap做好的實現特定業務操作的rfc。idoc是基於sap自己的類似xml格式的文件資料交換的方式。rfc必須線上的方式呼叫,一般做同步的,idoc基於文件,可以實現非同步的。

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基於文件,可以實現非同步的。


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開發比較快。
SAP的idoc檔案替代了edi檔案的作用。
ale是一種通訊的模式。
bapi,一種函式,sap提供一大堆,用於主要的業務流程的處理
rfc,一種函式,用於與外部程式呼叫


應該說RFC是其它內容的基礎,它是一個Function module,可以被遠端呼叫。而BAPI本身就是一
個RFC,但它被作為BO的Interface,作用更進一步,除了BAPI文件中提到的內容外,還可以作為
ALE/IDOC的開發基礎。
ALE是R/3系統之間的應用層資料交換,至於用什麼,就看具體配置了,比如可以用IDOC,同步/
非同步BAPI,甚至用EDI。非SAP系統無法用ALE來實現。
至於資料傳輸的方式,可以是IDOC(底層是用RFC來實際的),也可以是EDI,所以說IDOC/EDI實
際上是資料的載體。