SAP與JAVA介面技術研究與應用

來源:文萃谷 2.05W

導語:SAP系統架構之下的元件數量龐大,各個元件間需要無縫地銜接,而且開放性的SAP系統還要實現與其他系統平臺隨時通訊,讓使用者感覺只是在一個系統中進行工作。下面就由小編為大家介紹一下SAP與JAVA介面技術研究與應用,歡迎大家閱讀!

SAP與JAVA介面技術研究與應用

  一、SAP系統介面技術

(一)SAP RFC介面技術

RFC是遠端函式呼叫的縮寫,是SAP系統之間以及SAP與外部系統之間程式通訊的基本介面技術,諸多其他更高層的SAP介面和通訊技術,如BAPI,ALE等,都是基於RFC實現的。是SAP公司最早提供的與其他系統的介面解決方案。

在系統間通訊過程中,需區分發送系統和接受系統。RFC呼叫請求從傳送系統中傳至接受系統,其中傳送請求的系統在通訊過程中又稱為RFC客戶端,通訊的另一方則稱為RFC伺服器。RFC客戶端發起遠端功能呼叫以執行RFC伺服器提供的功能。其中呼叫系統和被呼叫系統可以是SAP系統或非SAP系統,此外還可以在SAP系統內部將特定的應用伺服器指定為目標系統。

RFC方式簡單易行,它只需要通過Java將所需引數傳遞給RFC,SAP會自動將結果集返還給Java的List、Vector等可以用於儲存資料的方法。

(二)BAPI(Business AppIication Programming Interface)介面技術

BAPl是指SAP中經過精確定義的業務應用的資料和處理介面。SAP採用了Object―Oriented技術,邏輯定義了系統的所有功能目標,並且將所有的目標和BAPIs儲存於企業目標庫BOR,藉助於BOR和BAPI,整個SAP系統中的業務物件均可以通過面向物件的檢視進行組織,並使用BAPI進行訪問操作。在SAP內部元件及SAP與非SAP元件之間的技術整合和業務資料交換過程中起著非常重要的作用。SAP通過BAPI實現元件間的資訊和資料交換,並通過該標準介面把整個系統連結為一個整體。

BOR能提供的目標類相當於程式設計語言中的`Class概念,其定義的介面主要包括基本資料和介面介面。基本資料包含了所有目標類的通用屬性,介面介面包括主欄位、方法、特徵、事件等功能。

(三)ALE-IDoc介面技術

ALE(Application Link and Enabling)應用連線授權,是專門為SAP與SAP之間所設計的整合中介軟體,它採用分佈――整合式的SAP系統實現基礎,包括經系統控制的業務訊息交換以及鬆散連線的SAP系統間的資料一致性管理。在ALE中,系統間的資料整合過程並不是通過共享一箇中心資料庫,而是通過非同步或同步傳輸從而實現了業務分佈化,管理集中化,即使接受方網路中斷,在下一個連通時刻,資料仍可傳送到目的系統。從技術角度來說,ALE主要應用於兩個有業務聯絡的SAP系統之間的資料同步,但也支援在SAP和非SAP系統間的資料同步的實現。

  二、SAP與Java程式的介面分析應用

(一)JCO與JAVA連線

1.建立連線池。連線池的建立通過呼叫JCO方法addClientPool()來實現。

2.建立原資料。原資料物件通過呼叫方法createRepository()來建立。原資料物件包含了所有在執行期間函式組的其中的資料。

3.建立函式模版。函式模版物件通過呼叫方法getFunctionTempIate()獲得。

4.建立函式。通過呼叫方法getFunction()建立函式物件。

5.獲取連線。通過呼叫getClient()從連線池中獲取連線物件。

6.提供輸入引數。通過呼叫getImportParameterList()給函式賦輸人蔘數值。

7.執行函式。通過呼叫方法execute()來執行函式。

8.獲取結果集。通過呼叫方法getExportParameterList()獲取RFC的結果集。

9.斷開連線池。通過呼叫方法removeClientPool()來斷開連線。

(二)介面效能優化

1.因為連線池中的連線是可重用和可保持的,所以可以降低系統開銷,最大併發連線數量的限制避免過多地佔用SAP系統的資源,儘管如此,也不要使用過小的最大併發連線數從而造成應用系統的效能瓶頸,為了容納由應用系統造成的額外負載,SAP系統要經過一些配置。

2.使用一個新的function物件時,為了提高效能而重用已有的function物件,不僅是多於的,而且還很危險,因為JCo的Repository為每個function模組快取了元資料,如果重用一個含有表引數的function,而這個function中的表中的行資料沒有被清除,那麼更多的行資料會新增到這個表上,從而會造成錯誤的結果,這是使用一個新的function物件時要注意的。

3.只需使用一個Repository物件,因為Repository物件可以動態重新得到SAP function模組中的元資料並重新快取,所以使用一個就夠了,如果使用過多的Repository物件,會降低應用系統和SAP系統的效能

4.應用系統只使用了function中的一小部分引數,為了提高效能,可以使用setActive()方法將那些應用程式不使用的引數設定為非活動狀態,包括Table Parameter、ParameterList以及est物件

5.新增多行資料到JCO的Table物件中時,使用appendRows方法代替appendRow()方法,這樣可以提高效能

6.為了提高效能,JCO只在訪問連線池和Repository物件時採取同步,其他的操作都是非同步的,在多執行緒的環境下,不同執行緒之間共享物件(比如Table物件)是值得警惕的,並且一個連線物件是不能共享訪問的,這樣導致發生異常Exception

  三、結論

JCO是一個高效能的,基於JNI的中介軟體,它實現了SAP的RFC協議。當用戶面臨流程或者資料整合方面的需求的時候,就迫切需要一種高效的方式,在SAP系統和Java平臺之間實時地交換資料。本文主要通過對SAP介面和JCO元件的重點介紹,讓大家對此類介面有一個直觀的認識,為日常介面開發工作提供參考。

熱門標籤