SAP 調用外部webservice接口
SE80企業服務創建代理類【SERVICE CONSUMER】
地址無效時,注意地址是否為WSDL類型,且地址以 ?WSDL皆為
完成創建
SOAMANGER 創建端口號
輸入代理類名稱
創建 --- 手動創建
調用方法:代碼
DATA:
LO_CLIENTPROXY TYPE REF TO ZQMCO_SAP_QMS_SENT_SAMP_QUALIT, " 代理類
LO_SYS_EXCEPTION TYPE REF TO CX_AI_SYSTEM_FAULT,
LO_APP_EXCEPTION TYPE REF TO CX_AI_APPLICATION_FAULT.
DATA: " 代理類參數定義
LS_INPUT TYPE ZQMSAP_QMS_SENT_SAMP_QUALITY_4,
LS_OUTPUT TYPE ZQMSAP_QMS_SENT_SAMP_QUALITY_S.
TRY. "建立端口連接
CREATE OBJECT LO_CLIENTPROXY
EXPORTING
LOGICAL_PORT_NAME = 'ZQM0010'.
CATCH CX_AI_SYSTEM_FAULT .
MESSAGE '接口代理創建失敗!' TYPE 'E'.
RETURN.
ENDTRY.
"參數整理
LS_INPUT-REQUESTHEAD-SERVICENAME = 'S_SAP_QMS_002S'.
LS_INPUT-REQUESTHEAD-SOURCESYSTEM = 'SAP'.
TRY. "調用方法
CALL METHOD LO_CLIENTPROXY->SAP_QMS_SENT_SAMP_QUALITY
EXPORTING
INPUT = LS_INPUT
IMPORTING
OUTPUT = LS_OUTPUT.
CATCH CX_AI_SYSTEM_FAULT INTO LO_SYS_EXCEPTION."捕獲錯誤
MESSAGE '接口調用失敗' TYPE 'S' DISPLAY LIKE 'E' .
ENDTRY.
測試問題一:
第一步時,遇到問題HTTP 404問題,但是鏈接直接可以瀏覽器打開
解決方案:
1. 將網址鏈接(JAVA發布的web service通常以?wsdl結尾),另存到本地,保存為
xml文件
2. 修改xml文件,刪除下面內容,刪除后保存
<wsdl:binding ……> …… </wsdl:binding>
<wsdl:port …….> …….</wsdl:port>
3. SE80創建web service proxy時,就Select source,選擇Local file,其他都一
樣
測試問題二:
連接總是不同,一直有cx_ai_system_fault異常
解決方案:
將邏輯端口中的域名改為ip地址