SAP 調用外部程式 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 配置:
i. T-Code:SM59;建立一個RFC串連,需要配置的項目:輸入RFC Destination,Connection Type 選擇T(表示用TCP/IP方式),輸入Description(描述),Technical Settings裡選擇Registered server program ,配置Program ID這個很重要與PC上外部註冊的服務程式名稱一致,Gateway host(主機網關,這個資訊由Basis人員提供)xxx.xxx.xxx.xxx,Gateway service (網關服務,這個資訊由Basis人員提供,例如:sapgw10).
ii. 測試Test Connection ,如果配置成功應通過。沒有錯誤提示。
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標準執行個體
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 配置:
i. T-Code:SM59;建立一個RFC串連,需要配置的項目:輸入RFC Destination,Connection Type 選擇T(表示用TCP/IP方式),輸入Description(描述),Technical Settings裡選擇Registered server program ,配置Program ID這個很重要與PC上外部註冊的服務程式名稱一致,Gateway host(主機網關,這個資訊由Basis人員提供)xxx.xxx.xxx.xxx,Gateway service (網關服務,這個資訊由Basis人員提供,例如:sapgw10).
ii. 測試Test Connection ,如果配置成功應通過。沒有錯誤提示。
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標準執行個體