轉:IDOCBAPIRFC區別和聯絡
轉自:http://www.cnblogs.com/omygod/archive/2009/06/12/1502191.html
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實
際上是資料的載體。
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/leechirslcc/archive/2009/09/11/4542630.aspx
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7729518/viewspace-1028342/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- volatile和synchronized的區別與聯絡[轉]synchronized
- tcp/ip和http的區別和聯絡TCPHTTP
- orcle pfile和spfile的區別和聯絡
- NET|Ref 和out 的區別和聯絡
- Instruction和Question的區別和聯絡Struct
- http、socket、tcp的區別和聯絡?HTTPTCP
- SCADA和PLC的區別聯絡
- Session和Cookie的聯絡與區別SessionCookie
- has、ohasd、crs、cluster區別和聯絡
- CGI與Servlet的區別和聯絡Servlet
- Session和Cookie的區別與聯絡SessionCookie
- [轉]Apache與Tomcat 區別及聯絡ApacheTomcat
- COM/DCOM的區別與聯絡 (轉)
- Oracle中User和Schema的區別和聯絡Oracle
- 詳解CALayer 和 UIView的區別和聯絡UIView
- Jdk、Jre Jvm的區別和聯絡JDKJVM
- Linux和Ubuntu的區別與聯絡LinuxUbuntu
- COM與DCOM的區別與聯絡 (轉)
- java-介面和抽象類的聯絡和區別。Java抽象
- C/C++引用和指標的聯絡和區別C++指標
- 中斷和異常,陷阱的區別和聯絡
- javaSE中的==和equals的聯絡與區別Java
- 程式和執行緒的區別與聯絡執行緒
- HDFS 塊和 Input Splits 的區別與聯絡
- NUMA,MPP和HADOOP的區別與聯絡Hadoop
- 並行和併發的區別與聯絡並行
- 什麼是BSS/OSS,及區別和聯絡
- malloc free與new delete的區別和聯絡delete
- 【知識點】 gcc和g++的聯絡和區別GC
- Rxjs map, mergeMap 和 switchMap 的區別和聯絡JS
- ASH、AWR、ADDM區別聯絡
- define與typedef區別與聯絡
- Apache與Tomcat 區別聯絡ApacheTomcat
- OO ADT 模組區別聯絡
- v$sqlarea,v$sql,v$sqltext的區別和聯絡SQL
- 資料庫中varchar和Nvarchar區別與聯絡資料庫
- 【Privilege】SYSOPER和SYSDBA特權的區別與聯絡
- HDC,CDC,CClientDC的區別和聯絡是什麼?client