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-CodeSM59;創建一個RFC連接,需要配置的項目:輸入RFC DestinationConnection Type 選擇T(表示用TCP/IP方式),輸入Description(描述),Technical Settings裏選擇Registered server program ,配置Program ID這個很重要與PC上外部註冊的服務程序名稱一致,Gateway host(主機網關,這個信息由Basis人員提供)xxx.xxx.xxx.xxxGateway 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標準實例
http://files.cnblogs.com/byfhd/CSServerSimple.rar

轉自 http://www.cnblogs.com/byfhd/archive/2008/10/09/1244761.html#1335487
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章