古詩詞大全網 - 成語故事 - 請各位高手幫忙,ABAP 中除RFC外還有哪些接口技術?主要用途?

請各位高手幫忙,ABAP 中除RFC外還有哪些接口技術?主要用途?

ALE/IDocs是SAP公司為SAP R/3 R4.6C版本所提供的接口機制,目前應用最為廣泛。在 R4.0以後的版本中,又添加了技術上先進的BAPI。

1、ALE/IDocs是什麽?

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整合機制的基礎,它利用遠程功能呼叫RFC(Remote Function Call) 調用SAP系統的功能模塊。

數據/消息分配層,主要提供三個關鍵服務:

按數據分配模型決定數據接收者。

消息的過濾和轉換。

數據/消息的壓縮,以提高傳遞效率。

應用層直接與SAP系統接口,生成或從其它系統接收含有路由信息的消息文本IDocs,包括消息接收者的姓名,要求發送的類型以及對消息進行處理的規則。

ALE的機制代替了原來的SAP所提供的批數據通訊BDC(Batch Data Communication) 方式。顧名思義,BDC為系統之間提供了簡單的數據批處理服務,還不能作為壹種中間件技術,它沒有提供系統之間進行無縫整合所要求的糾錯功能、系統管理和其它安全措施。總得說來,應用SAP的ALE機制進行SAP與SAP或非SAP系統整合有以下幾個好處:

ALE技術不受SAP版本升級的影響,它提供了版本向後兼容性。ALE定義於SAP應用層,與SAP的邏輯層相對獨立,整個ALE中間件獨立於發送和接收系統。

ALE消息設計邏輯保證消息的“壹次且只有壹次”的消息傳遞。ALE采用“存儲-發送”技術確保消息即使系統發生故障或接收方沒有準備接收時也可以達到目的地。這樣就保證接收方不至於收到重復消息。

ALE也提供了IDocs管理功能。主要有文本縮減、文本版本控制以及文本數據過濾。三種控制機制使得SAP開發人員可以根據實際需要對IDocs文本在運行中進行動態處理。

ALE提供了系統管理功能,允許對ALE系統進行啟動/復位/恢復等系統操作,為開發人員提供了進壹步的管理控制。

IDoc 幾乎可以傳帶任何SAP應用的數據,是壹種“外圍”定義格式,與SAP的應用數據定義不直接相關。IDocs已經廣泛應用於早期的SAP-EDI的數據交換,因而它的設計有點類似於EDI的標準,即EDIFACT標準。

IDocs是以字符基礎的,因而是可讀的。它有三種紀錄類型,即:

控制紀錄-含文本信息,如IDoc類型,發送/接收方信息以及文本標識。

數據紀錄-含管理和實際數據部分。

狀態紀錄-用來追蹤文本傳遞各點的狀態,如狀態碼,系統時間,錯誤標識等。

2、ALE/IDocs的消息發送接收過程

下面對ALE/IDocs在系統整合過程中消息的實際傳遞進行介紹。

讓我們首先看發送過程。

壹個發送過程由事件觸發,文本生成,數據打包以及交由傳輸媒介傳遞這四個步驟組成,具體如下:

應用系統事件觸發

系統目標(Objects) 的狀態變化,用戶自主活動或其它數據庫特定變化等可以啟動數據表的觸發程序,從而進行數據傳遞的初始化工作,如數據準備。

生成主IDoc文本(Master)

按標準格式生成主IDoc文件,包含所有可以傳遞數據(不分接收者)

生成通訊Idoc

從主IDoc中生成只與特定接收者有關的文本,通訊文本是主文本的子數據集(Subset)

Idoc 發送

利用異步通訊方式將壹定版本的IDoc傳遞到接收方。

接收過程始於SAP系統從外部收到IDoc文本。接收過程的優點在於,接收方既可以是SAP系統,也可以是第三方系統,這也是SAP與第三方進行有效整合的基礎。接收過程由以下三個步驟組成:

存儲Idoc-將文本存儲於數據庫,並進行語法校驗

郵件處理程序讀取Idoc--壹個專門設計的IDoc處理程序讀取IDoc並產生SAP或其它系統所需的系統消息。多個程序可以同時運行。

生成系統文本--處理程序進壹步生成系統文本供系統使用,並將結果信息存於Idoc d的狀態紀錄中。

3、BAPI簡介

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,開發人員可以實現對BOR進行實時訪問,從而實現應用系統(SAP-SAP)之間在數據/邏輯層上的有效整合。

4、應用SAP-DCOM接口

SAP於1998首次提供SAP-DCOM接口,以滿足各種桌面應用開發的要求。利用DCOM連接端口,開發人員可以利用VB, C++,以DCOM目標方式訪問SAP數據。在Web應用上,可以用VBScript, JavaScript 以DHTML方式頁面訪問,也可以用ASP訪問數據。

另外,利用DCOM也可以間接訪問SAP的企業目標庫BOR。上面提到的BAPI是SAP系統上專用的,在實際應用上不如DCOM來得廣泛。DCOM端口主要有兩個技術模塊組成,壹個是管理模塊,另壹個模塊生成SAP BO的DCOM 代理組件(Proxy Components),生成的DCOM組件存放於C++。代理組件有以下屬性:

Client-要訪問的R/3客戶系統

UserID-R/3用戶

Password-用戶密碼

Language-系統語言

Destination-預先定義的目標名稱

另外,每個組件具有以下方法:

PutSeesionInfo()—設定系統壹次調用的目標參數

AdviceRfcGuiSink()—用於需要SAPGUI或dubugging的場合。

CommitWork()-用於數據更新,無implicit commit的場合。

InitKeys()-DCOM目標鍵初始化

DimAs()-返回Microsoft ADO(Advanced Data Object) 紀錄集(支持遊標控制)。

其它從R/3 BO定義中繼承的方法。

總起說來,SAP R/3 作為壹個相對靈活的ERP系統,利用上述的各種整合技術能夠實現SAP系統之間以及SAP 與其它系統之間的數據/過程的整合。當然,壹個應用系統的高度客戶化導致了系統整合的難度。隨著系統功能的增加,多種可供采用的整合技術也就顯得很有必要。對於SAP R/3用戶來說,正確選擇適用的整合技術是實現成功系統整合的關鍵。