SAP调用外部webservice接口

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

原文地址:https://www.cnblogs.com/liu1838998131/p/15429229.html