欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

SAP调用外部web service

发布时间:2025/3/20 编程问答 26 豆豆
生活随笔 收集整理的这篇文章主要介绍了 SAP调用外部web service 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
前提:外部提供可用的web service,通常为链接
1. SE80,创建web service proxy    1)SE80,选择package,右击->create->Enterprise service    2) Object Type, 选择Service Consumer,继续    3)Select source,选择URL/HTTP Destination,继续    4)URL中输入网址,继续    5)分配package和前缀(随意),完成    6)保存,激活 2. LPCONFIG,创建逻辑端口    1)输入proxy class(第1步中生成的proxy name)和logical port(随意,通常同proxy class),选中Default port    2)输入描述,选中message id 和 state management    3)调用参数:URL输入去掉?WSDL的地址    4)操作:右侧SOAP操作,输入xml文件中soapAction等号后的内容,包括引号 3. 程序调用web service    例子:   DATA:
        lo_clientproxy      TYPE REF TO z_proxy. "proxy class
  DATA:
        lo_input           TYPE z_input,      "输入参数
        lo_output          TYPE z_output.     "输出参数

  lo_request =  request.

  CREATE OBJECT lo_clientproxy.
  TRY.
      CALL METHOD lo_clientproxy->z_method "web service函数
        EXPORTING
          to_input  lo_input
        IMPORTING
          to_output lo_output.

*        ***Write Out the Basic Information
    CATCH cx_ai_system_fault INTO g_sys_exception."捕获错误
      IF g_sys_exception IS NOT INITIAL.
        WRITE'Error:Communication Error'.
      ENDIF.
    CATCH cx_ai_application_fault INTO g_app_exception.
      IF g_app_exception IS NOT INITIAL.
        WRITE 'Error:Application Error'.
      ENDIF.
  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,其他都一样 刚看一个链接里有介绍:http://hi.baidu.com/tktik/item/fcaf0e53e26cbe3a32e0a951
测试问题二: 连接总是不同,一直有cx_ai_system_fault异常 解决方案:     将逻辑端口中的域名改为ip地址
值得注意的是,实现该功能,不需要创建RFC连接

总结

以上是生活随笔为你收集整理的SAP调用外部web service的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。