SAP 接口開發

SAP提供多種連接方法

SAP supply serval way to allow the external application commicate with sap.

1. RFC SDK (C/C++)
2. Java Connector (Java)
3. .NET Connector (C#)

4. Business Connector (XML,HTTP,FTP or SMTP interface )

作爲目前ERP市場上最爲領先的應用系統之一,一直以來,SAP R/3在提供API應用編程接口和接口工具方面也同樣領先於其它ERP廠商。ALE/IDocs是SAP公司爲SAP R/3 R4.6C版本所提供的接口機制,目前應用最爲廣泛。在 R4.0以後的版本中,又添加了技術上先進的BAPI。本文作爲系列介紹之一,對ALE/IDocs, 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用戶來說,正確選擇適用的整合技術是實現成功系統整合的關鍵。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章