SAP接口程序方式說明(轉)


原文鏈接:https://blog.csdn.net/ot512csdn/article/details/45556373

SAP官網接口庫地址: service.sap.com/connectors
SAP為我們提供了JAVA平台程序的連接庫SAP JCO3,由此打通所有JAVA程序同SAP服務器的數據傳遞:

SAP也為我們提供了.net平台程序的連接庫SAP NCO,由此打通WINDOWS平台程序同SAP服務器的數據傳遞:

 

 

 

SAP同外圍系統連接,程序實現有兩種方式。

第一種: 我們常用的,SAP服務器作為服務器端server,外圍接口程序作為客戶端client。     client端發起請求,調用SAP服務器中的RFC函數,實現所需要的操作或查詢。

這種方式是由客戶端發起的,源頭在客戶端產生,調用頻率也是有客戶端控制。 這種方式在本次項目中叫做“請求響應”模式。  即客戶端發起請求,服務器響應。

客戶端程序使用該方式,需要在客戶端填入登陸SAP系統的用戶,密碼。 然后客戶端程序自動登入SAP服務器,調用RFC函數。 該方式的代碼網上很多。


第二種方式:  網上資料少,有一些場景是SAP服務器主動發起請求,比如做一個收貨操作后,馬上需要把這個信息通知外圍系統。   而收貨操作本身,我們不知道用戶什么時
候去做這件事情。( 如果用第一種的方法,也可以實現,但是需要客戶端不停的輪詢服務器,如果輪詢的次數太多,我們可能擔心系統性能,如果輪詢次數不多,可能又不能
馬上做到服務器同外圍系統的收貨操作信息同步) 這個時候,需要SAP服務器作為客戶端client, 外圍程序作為服務器端server.   為什么這么說,  因為外圍程序需要一直運行,

等待SAP服務器的請求 ,外圍程序就像服務器那樣一直工作。 這種模式在本次項目中稱為“訂約發布”模式。

 

SAP的中間件接口程序,是怎么來實現這中方式的呢?

實際上,SAP並不要求外圍程序寫一個正真的網絡服務器,而是,首先使用client方式,長連接到SAP服務器, 然后基於這個長連接,RFC程序推數據給外圍程序。


讓我們來看看這種方式外圍程序寫法的參數文件:

 

從參數文件中可以看到, 外圍程序作為server端,首先會使用A01.JCO.CLIENT中的參數部分,去做一個同SAP服務器的長連接,這個同第一種方式一致。


連接成功后,可以在SAP系統中用SMGW事務代碼查看:

 

A01.JCO.SERVER參數部分才是SAP服務器推數據給外圍程序的需要使用參數,在sm59中配置好“SAPJCO”,SAP ABAP程序中是這樣使用的:

 

而使用前,還要建一個只有數據申明的空FUNCTION "ZMM_IF_FM016".

 

外圍服務器程序就等SAP通過這個空的FUNCTION "ZMM_IF_FM016"推數據過來。

TAB1,TAB2,TAB3是SAP給外圍程序的數據, 外圍程序處理后,還可以通過RETURN返回SAP服務器信息。

 


SAP的JCO和NCO庫,都可以在 http://service.sap.com/connectors 中下載到,SAP提供了詳細的說明,和代碼例子。
本文只是主要講清第二種方式, 開發時理解SAP 接口中外圍程序作server方式,不同於正真的網絡服務器,避免進入不必要的誤區。


原文鏈接:https://blog.csdn.net/ot512csdn/article/details/45556373

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM