首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ABAP调用外部WebService

ABAP调用外部WebService

作者头像
matinal
发布2020-11-27 15:43:07
发布2020-11-27 15:43:07
2.1K00
代码可运行
举报
文章被收录于专栏:SAP TechnicalSAP Technical
运行总次数:0
代码可运行

有两种方式

一种就是网上流传的

下面转载内容

TCode:se80

选择 Package,输入我们自己的开发包,后回车

右击 开发包名称,选择菜

出现创建向导窗口

选择”Service Consumer”,点击 继续

选择”external WSDL”,点击继续

选择”URL”,点击继续

输入WebService的WSDL地址,就是WebService地址的后面加上?wsdl这个参数。点击继续

选择开发类和创建传输号,点击继续。

点击”Complete” ,出现WebServer代理类的创建窗口。

修改系统产生的代理类的名字,然后点保存,激活。到这一步,WebService代理就创建完成了。要想使用它,我们还要创建一个逻辑端口,事务码:lpconfig。

在 代理类中选择、输入上面创建的代理类,在逻辑端口中输入端口号,PS 端口号可以随便字母和数字组合。输入描述后,点创建。

在”URL”处,输入要访问的WebService的地址,全局设置中的”状态管理”要勾上。

选择 WebService中的函数,并输入函数的SoapAction,点保存。逻辑端口创建完成。接下来就该Coding了。

代码语言:javascript
代码运行次数:0
运行
复制
*&———————————————————————*
*& Report  ZWEBSERVICETEST
*&
*&———————————————————————*
*&
*&
*&———————————————————————*
REPORT  zwebservicetest.
DATA:helloworld(200) TYPE c.
DATA:webservice TYPE REF TO zco_web_service1soap.      “WebService代理类
DATA:gt_input TYPE zhello_world_soap_in,               “输入参数
gt_output TYPE zhello_world_soap_out.             “输出参数
DATA:lo_sys_exception   TYPE REF TO cx_ai_system_fault,
lo_app_exception   TYPE REF TO cx_ai_application_fault.
START-OF-SELECTION.
TRY.
CREATE OBJECT webservice
EXPORTING
logical_port_name  = ‘LZP101′ .                 “为此WebService创建的逻辑端口。
CATCH cx_ai_system_fault .
MESSAGE ‘出错了’ TYPE ‘S’.
ENDTRY.
TRY.
CALL METHOD webservice->hello_world
EXPORTING
input  = gt_input
IMPORTING
output = gt_output.
CATCH cx_ai_system_fault INTO lo_sys_exception .
“message ‘出错了 systemai’ type ‘S’.
WRITE lo_sys_exception->errortext.
CATCH cx_ai_application_fault INTO lo_app_exception .
WRITE / .
WRITE lo_app_exception->textid.
ENDTRY.
WRITE gt_output-hello_world_result.

另一种测试

代码语言:javascript
代码运行次数:0
运行
复制
*&----------------------------------------------------------------------*
*&  Program  Name :  Z_TEST
*&  Author's  Name :
*&  Written   Date :
*&  Request  Number:
*&  Program Description:  sap 与 webservice 的连接测试
*&----------------------------------------------------------------------*
*  Changer           Changed Date         Request  NO.        Dec.
*&----------------------------------------------------------------------*

REPORT  z_test.

DATA:webservice TYPE REF TO zco_oa_workflow_service.

DATA:gw_zcreat_oa_workflow  TYPE zcreat_oa_workflow,
     gw_input  TYPE zcreat_oa_workflow1,
     gw_output TYPE zcreat_oa_workflow_response1.

DATA:lo_sys_exception   TYPE REF TO cx_ai_system_fault,
     lo_app_exception   TYPE REF TO cx_ai_application_fault.

DATA: p_str1   TYPE string,
      p_str2   TYPE string,
      p_str3   TYPE string.


START-OF-SELECTION.

  "XML数据
  p_str1 = '<fields><field><name>Title</name><value>交办测试</value></field><field><name>Urgency</name><value>紧急</value></field>'.
  p_str2 = '<field><name>YQDate</name><value>2013-09-24</value></field><field><name>Day_HF</name><value>3</value></field><field><name>XGXM</name><value>1</value></field>'.
  p_str3 = '<field><name>Name_KH</name></field><field><name>Content</name><value>任务安排111</value></field><field><name>Remarks</name><value>备注111</value></field></fields>'.

  TRY.
      CREATE OBJECT webservice
        EXPORTING
          logical_port_name = 'LZP01'.
      "为此webservice创建的逻辑端口。
    CATCH cx_ai_system_fault .
      MESSAGE '出错了' TYPE 'E'.
  ENDTRY.

  "写输入参数
  gw_zcreat_oa_workflow-arg0 = 'TW9QUQXPR74U95SS'.
  gw_zcreat_oa_workflow-arg1 = 'L_TYLC_GZJB'.
  gw_zcreat_oa_workflow-arg2 = ''呵呵.
  gw_zcreat_oa_workflow-arg3 = ''.
  gw_zcreat_oa_workflow-arg4 = 'admin'.
  gw_zcreat_oa_workflow-arg5 = |{ p_str1 }{ p_str2 }{ p_str3 }|.
  gw_input-parameters = gw_zcreat_oa_workflow.

  TRY.
      CALL METHOD webservice->creat_oa_workflow
        EXPORTING
          creat_oa_workflow          = gw_input
        IMPORTING
          creat_oa_workflow_response = gw_output.
    CATCH cx_ai_system_fault INTO lo_sys_exception .
      "“message ‘出错了 systemai’ type ‘s’.
      WRITE lo_sys_exception->errortext.
    CATCH cx_ai_application_fault INTO lo_app_exception .
      WRITE / .
      WRITE lo_app_exception->textid.
  ENDTRY.

  WRITE gw_output-parameters-return.
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/12/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档