摘要:在 SAP 項目實施過程中,經常會碰到與其他系統的集成問題,在 SAP 項目范圍之外,企業中還有大量的遺留系統、非 SAP 系統、外部系統,SAP 并不能滿足企業所有的功能需求,需要同安全與訪問控制等系統相互協作,共同來實現這些系統之間的數據交互,從而確保 SAP 投入使用后,與相關系統的接口也可用。SAP 項目實施過程中的定制操作,不會改變 SAP 系統本身,但通過 ABAP/4 開發平臺則可以對 SAP 系統進行擴展,也就是通過 ABAP 開發,SAP 可以與其他 R/3 系統或者非 R/3 系統集成。目前 SAP R/3 與其他系統集成,除了可以采用 ABAP 開發實現,還可以采用如下三種技術來實現:RFC、IDoc、BAPI。采用這三種技術可以使 SAP 系統與其他技術構造自動集成。
關鍵詞:SAP RFC BAPI ALE IDOC
RFC ( Romote Function Call,遠程函數調用 )接口模式
RFC 是 SAP 系統和其他(SAP或非SAP)系統間的一個重要而常用的雙向接口技術,也被視為 SAP 與外部通信的基本協議。簡單地說, RFC 過程就是系統調用當前系統外的程序模塊,從而實現某個功能,而且調用系統和被調用系統中至少有一個必須是 SAP ABAP 系統。這種遠程功能調用也可在同一系統內部進行(如本地SAP 系統內的遠程調用);但通常情況下,調用程序和被調用程序處于不同系統。
SAP 系統RFC應用的原理很簡單,有一些類似于三層構架的C/S系統,第三方的客戶程序通過接口調用 SAP 內部的標準或自定義函數,獲得函數返回的數據進行處理后顯示或打印。在 SAP 客戶端 SAP Gui Client 安裝的時候,注意選擇安裝附帶的 SDK 包(最保險是選擇完全安裝)。RFC 接口程序開發,主要用的是“SAP.Functions”這個控件,通過控件在外部程序模擬 SAP Gui Client 的用戶登錄和函數調用,然后返回函數的值。
優點: SAP 的 RFC 調用是其接口技術中最簡單和易用的一種方式,該方式開發比較簡便,特別適合于外部報表開發。
缺點:但對于大數據量的查詢效率相對較低。如果有大數據量開發很多使用 IDOC 和 BAPI 接口開發技術。
RFC 接口方案開發量小,實施簡單,很快就能滿足客戶需求,如在外部系統打印報表,或外部系統獲取 SAP 簡單的數據信息進行加工處理等。但這種方案只能滿足客戶簡單的需求。
BAPI (Business Application Programming Interface)接口模式
BAPI是Business Application Programming Interface的縮寫,是 SAP 為3.0版本以上提供的基于企業目標(Business Object) 技術的接口應用界面。 SAP 在3.0版本以上采用了 Object-oriented 技術,邏輯定義了 SAP R/3系統的所有功能目標,并且將所有的目標(Objects) 和BAPIs存儲于企業目標庫BOR(Business Objects Repository). SAP R/3 企業目標的目標類型(Object Type) 相當于目標設計語言中類(Class) 的概念,其定義結構由以下幾部分組成:
基本數據——所有目標類的通用屬性,如目標標識和默認方法(Method) 。
接口界面——目標的方法(Method), 事件(Event), 特征(Attributes) 。
鍵(Key Fields)——供BOR中目標檢索使用
方法(Methods)——對目標進行所要求的各種操作。
特征(Attibutes)——描述目標特征。
事件(Events)——觸發以改變目標狀態。
BAPI 是一個標準化的開放接口。 BAPI 是 SAP 提供給用戶的一些標準函數,比如創建銷售訂單的函數 ,只要給定相應的參數,就可以實現特定的功能。它也克服了很多BDC 存在的固有BUG。
優點: BAPI 是外部系統對 SAP 標準業務進行調用的一種方式,當外部系統有對 SAP 標準業務關聯較緊密的功能性開發調用時較適合。
缺點:但當外部系統與SAP系統間有大數據量的交付,并且分布廣,網絡狀況較差情況下不適合。這種模式,也是只需寫少量的代碼就能實現,并且滿足了客戶對 SAP 業務模塊對象化的應用,這種模式需要在 SAP 業務模塊進行適量的配置,
這是目前小業務數據量交付的常用接口模式,因為外部系統只需給出調用的輸入參數,在獲取 SAP 的輸出參數,但 SAP 系統自身處理相應業務邏輯,這增加了 SAP 服務器負載,并且不適宜分布較廣的系統間大數據量的交付。
ALE(Application Link and Enabling )/IDocs(Intermediate DOCument)接口模式
ALE 是Application Link and Enabling的縮寫,是 SAP 專門為 SAP 與 SAP 之間所設計的整合中間件。IDocs是中介文本 (Intermediate DOCument) 的縮寫,是 SAP 提供的系統整合專用的數據/消息格式。ALE在SAP 3.0版本開始就作為 SAP 整個應用體系的一部分,為分布式數據交換提供了可靠安全的通訊機制。ALE的設計,原本作為兩個SAP流程之間的一種消息傳遞服務(Messaging Service) ,使 SAP 與 SAP 的業務流程之間企業數據能夠有效的交換,為兩個獨立的 SAP 之間提供了的系統整合服務。不過,隨著應用的發展, ALE/IDocs 接口機制也已然成為與其它非 SAP 系統的標準的整合方式。 ALE 的機制代替了原來的SAP所提供的批數據通訊BDC(Batch Data Communication) 方式顧名思義,BDC為系統之間提供了簡單的數據批處理服務,還不能作為一種中間件技術,它沒有提供系統之間進行無縫整合所要求的糾錯功能、系統管理和其它安全措施。ALE這些方面卻處理的很好。
IDoc是EDI(電子數據接口)的一種標準,它是SAP系統支持的唯一一種EDI標準,所以,在SAP系統中,不用考慮EDI各個標準的轉換問題。
ALE/IDocs模式適合有大數據量交付,系統間網絡狀況較差,且分布較廣的SAP系統與非SAP系統間的集成接口模式。
SAP.接口實現:SAP.NET 可以實現與SAP系統的IDOC,FM,BAPI,RFC ,web service方式的連接,進行交互,其中web service是未來SAP與外界進行交互技術發展的趨勢,也是ESOA的實現之一。