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地址