參考博客:http://scnblogs.techweb.com.cn/lxzwsk/archives/27.html
SAP 能通過設置WebService與外部的webservice服務連接;
1、進入事務:SE80,選擇 Package ,指定保存的開發包,按圖1操作,創建一個Enterprise Service;
(圖1)
2、會出現如下的創建導向窗口,選擇 'Service Consumer',點擊‘繼續’,如圖2;
(圖2)
3、在彈出的下一個窗口中選擇‘URL/HTTP Destination’,點擊‘繼續’,如圖3;
(圖3)
4、在彈出的窗口中,選擇‘URL’,並輸入wdsl地址,如圖4;
(圖4)
5、在彈出的窗口中,在'Package'欄中輸入所需保存的開發類,若保存為本地開發類,則需將‘Local/Object’選上,如圖5;
(圖5)
6、點擊完最終的‘Complete’后,如果相連接的WDSL沒有問題,則會出現WebService 代理類的創建窗口,如圖6;
(圖6)
7、在保存並激活完代理類后,進入事務:LPCONFIG,進行創建邏輯端口的操作,如圖7;
(圖7)
8、在進入創建端口的界面后,輸入描述,並在‘一般設置’下的‘調用參數’頁簽中,在'URL'中輸入WSDL地址,並在‘應用程序特定設置’
的‘全局設置’頁簽下將‘狀態管理’勾上,否則在激活的時候會提示‘激活不成功’,如圖8;
(圖8)
9、在‘一般設置’下的‘操作’頁簽中,在‘SOAP’操作對應的輸入框中輸入對應的行為地址,如圖9;
(圖9)
10、保存並激活邏輯端口。
11、通過編寫代碼來測試SAP與WebService的鏈接,如附件;
1 *&----------------------------------------------------------------------* 2 *& Program Name : ZQIU_TEST44 3 *& Author's Name : QLB 4 *& Written Date : 25.02.2014 15:59:03 5 *& Request Number: 6 *& Program Description: sap 與 webservice 的連接測試 7 *&----------------------------------------------------------------------* 8 * Changer Changed Date Request NO. Dec. 9 *&----------------------------------------------------------------------* 10 11 REPORT zqiu_test44. 12 13 DATA:webservice TYPE REF TO zco_oa_workflow_service. 14 15 DATA:gw_zcreat_oa_workflow TYPE zcreat_oa_workflow, 16 gw_input TYPE zcreat_oa_workflow1, 17 gw_output TYPE zcreat_oa_workflow_response1. 18 19 DATA:lo_sys_exception TYPE REF TO cx_ai_system_fault, 20 lo_app_exception TYPE REF TO cx_ai_application_fault. 21 22 DATA: p_str1 TYPE string, 23 p_str2 TYPE string, 24 p_str3 TYPE string. 25 26 27 START-OF-SELECTION. 28 29 "XML數據 30 p_str1 = '<fields><field><name>Title</name><value>交辦測試</value></field><field><name>Urgency</name><value>緊急</value></field>'. 31 p_str2 = '<field><name>YQDate</name><value>2013-09-24</value></field><field><name>Day_HF</name><value>3</value></field><field><name>XGXM</name><value>1</value></field>'. 32 p_str3 = '<field><name>Name_KH</name></field><field><name>Content</name><value>任務安排111</value></field><field><name>Remarks</name><value>備注111</value></field></fields>'. 33 34 TRY. 35 CREATE OBJECT webservice 36 EXPORTING 37 logical_port_name = 'LZP01'. 38 "為此webservice創建的邏輯端口。 39 CATCH cx_ai_system_fault . 40 MESSAGE '出錯了' TYPE 'E'. 41 ENDTRY. 42 43 "寫輸入參數 44 gw_zcreat_oa_workflow-arg0 = 'TW9QUQXPR74U95SS'. 45 gw_zcreat_oa_workflow-arg1 = 'L_TYLC_GZJB'. 46 gw_zcreat_oa_workflow-arg2 = ''呵呵. 47 gw_zcreat_oa_workflow-arg3 = ''. 48 gw_zcreat_oa_workflow-arg4 = 'admin'. 49 gw_zcreat_oa_workflow-arg5 = |{ p_str1 }{ p_str2 }{ p_str3 }|. 50 gw_input-parameters = gw_zcreat_oa_workflow. 51 52 TRY. 53 CALL METHOD webservice->creat_oa_workflow 54 EXPORTING 55 creat_oa_workflow = gw_input 56 IMPORTING 57 creat_oa_workflow_response = gw_output. 58 CATCH cx_ai_system_fault INTO lo_sys_exception . 59 "“message ‘出錯了 systemai’ type ‘s’. 60 WRITE lo_sys_exception->errortext. 61 CATCH cx_ai_application_fault INTO lo_app_exception . 62 WRITE / . 63 WRITE lo_app_exception->textid. 64 ENDTRY. 65 66 WRITE gw_output-parameters-return.
