一、發布webservice
1.se37 創建webservice服務

2.TCODE:SOAMANAGER

3.定義服務banding:



輸入服務名稱,點擊下一步:





生成WSDL:



url輸入瀏覽器和sap登錄驗證信息,測試wsdl:


至此,webservice發布完成。
二、調用webservice
創建webservice使用者

選擇Service Consumer




這裡測試用配置個本地對象


生成代理類:

激活所有對象

Se80企業服務,可以看到代理類信息:

再次回到TCODE:SOAMANAGER,配置代理類的邏輯埠:

注意這次搜索」消費者代理」:

這裡選擇基於WSDL配置,後面步驟會比較多,(我測試過其他幾個選項都不行):

邏輯埠:邏輯埠是指邏輯意義上用於區分服務的埠,如TCP/IP協議中的服務埠,埠號的範圍從0到65535,比如用於瀏覽網頁服務的80埠,用於FTP服務的21埠等。由於物理埠和邏輯埠數量較多,為了對埠進行區分,將每個埠進行了編號,這就是埠號。簡單來說,ip地址是用來區分主機,埠號是用來區分主機上的不同服務



一直下一步直到完成
Ping web服務


程序中調用:
DATA:lo_cx_root TYPE REF TO cx_root.
DATA:l_prox_e TYPE REF TO zco_sap_service_port_type.
DATA:lo_sys_exception TYPE REF TO cx_ai_system_fault,
cx_ai_application_fault TYPE REF TO cx_ai_application_fault
IF l_prox_e IS INITIAL.
TRY.
CREATE OBJECT l_prox_e
EXPORTING
logical_port_name = ‘ZLP01’.
CATCH cx_ai_system_fault INTO lo_sys_exception.
IF lo_sys_exception->errortext IS NOT INITIAL.
output-msgty = ‘E’.
output-msgtx = lo_sys_exception->errortext.
APPEND output.CLEAR:output.
EXIT.
ENDIF.
CATCH cx_ai_application_fault INTO cx_ai_application_fault.
ENDTRY.
ENDIF.
invoke_flow_request-in0 = lv_json.
TRY.
CALL METHOD l_prox_e->invoke_flow
EXPORTING
invoke_flow_request = invoke_flow_request
IMPORTING
invoke_flow_response = invoke_flow_response.
CATCH cx_ai_system_fault INTO lo_sys_exception.
IF lo_sys_exception->errortext IS NOT INITIAL.
output-msgty = ‘E’.
output-msgtx = lo_sys_exception->errortext.
APPEND output.CLEAR:output.
EXIT.
ENDIF.
CATCH cx_ai_application_fault INTO cx_ai_application_fault.
ENDTRY.
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/225651.html
微信掃一掃
支付寶掃一掃