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,其他都一样

测试问题二:
连接总是不同,一直有cx_ai_system_fault异常
解决方案:
    将逻辑端口中的域名改为ip地址

值得注意的是,实现该功能,不需要创建RFC连接
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值