SAP 呼叫外部程式(nco作為服務端)
阿新 • • 發佈:2019-01-03
SAP 的方法(函式)如何用其它語言實現,是SAP的funcation module 如果在外面實現,就是在SAP裡建立一個FM,然後在外面用其它語言,JAVA,.net實現這個方法完成複雜功能。
在SAP外部啟動一個服務,這個服務連線SAP的geteway service,當SAP呼叫RFC方法時這個方法根據DESTINATION 指定的RFC名稱(SM59),找到這個服務程式,找到實現方法。
作用:
1.實現複雜的業務處理,比較abap語言實現困難的
2.與外部系統做介面,比較當SAP做業務時觸發外部作業
3.從外部獲取資料,前題是SAP為主動
4.SAP與外部語言的無關性
5.例如SAP與生鮮磅稱的介面,當SAP做收貨,稱重量時,用這種方法呼叫外部程式,把重量反回SAP系統。very good!
RFC 配置:
ii.
FM建立:
SE37 ,注意屬性要設定為遠端方式(remote -enabled module),其它與建立普通FM一樣。
FM呼叫方式:
***初始化L_ITAB_DATA內表***
L_RFC_DESTINATION = 'SM59DesName'. "'RFCSCALE'. "指定RFC程式
L_WA_WEIGHT-WAAGE = 'SM59ProgramID'. "在配置SM59時最好兩個名一樣,
APPEND L_WA_WEIGHT TO L_ITAB_WEIGHT. "向Internal Table中賦值
***呼叫SAP FUNCTION MODULE獲取資料***'HU_GET_RFC_DATA' 是外部實現的方法名,請參考例項
CALL FUNCTION 'HU_GET_RFC_DATA' DESTINATION L_RFC_DESTINATION
TABLES
ET_WEIGHT = L_ITAB_WEIGHT
EXCEPTIONS
COMMUNICATION_FAILURE = 1 MESSAGE MSG_TEXT
SYSTEM_FAILURE = 2 MESSAGE MSG_TEXT.
C#實現FM:
SAP.net實現非常簡單,用SAP.net服務生成RFC介面訪問方法類。
附件:sap.net標準例項
https://download.csdn.net/download/champaignwolf/10316254