ABAP调用外部WebService
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作者:SAP 天元
在登录及安全标签上可以设置用于登录访问对应 Web 服务的用户名跟密码,这里我们不做 设置,具体信息如下所示:
点击 按钮测试连接是否成功,如果成功则返回信息如下图所示:
ABAP 调用外部 WebService
作者:SAP 天元
创建逻辑端口
输入事务代码 LPCONFIG 来创建逻辑端口,点击 示: 新建逻辑端口,相关输入信息如下图所
ABAP 调用外部 WebService
作者:SAP 天元
因为当前 WebService 提供了两个类 (Web 服务代码中带有用户可访问的 Public 方法的类) , 我们选择 TempConvertSoap:
ABAP 调用外部 WebService
连接类型选择 G(HTTPConnectiontoExternalServ),输入主机名 (域名 或 IP 都可以)及端口号 80(这里叫 Service No.,其实是第三方系统提供的 HTTP 服务的端 口号,一般默认是 80,具体看情况):
ABAP 调用外部 WebService
作者:SAP 天元
然保存
并激活
:
在系统中会自动生成一个 ZW3C_CO_TEMP_CONVERT_SOAP 的类及其对应使用的数据类 型,如下图所示:
ABAP 调用外部 WebService
作者:SAP 天元
创建 RFC 目的
用事务代码 SM59 进入 RFC 连接配置,如下图所示:
输入相关描述及在状态管理打勾:
在调用参数中选择 HTTPDestination,然后选择刚创建的 RFC 目的 W3SCHOOLS,在路 径中输入 WebService 后缀/webservices/tempconvert.asmx(RFC 目的 W3SCHOOLS 表 示 , 然 后 结 合 后 缀 组 合 成 结 果 为 http://www.
//webservices/tempconvert.asmx,这是 WebService 的完整路径)
ABAP 调用外部 WebService
作者:SAP 天元
在 WebService 的类对应有两个方法,一个是摄氏转华氏(CELSIUS_TO_FAHENHEIT) , 一个是华氏转摄氏(FAHRENHEIT_TO_CELSIUS) ,需要在 Operations 里面设置其对应的 SOAP 方法,这个需要看得懂 WSDL,然后把对应的路径维护在 SOAPAction 中。 CELSIUS_TO_FAHENHEIT:/CelsiusToFahrenheit FAHRENHEIT_TO_CELSIUS:/FahrenheitToCelsius
ABAP P 调用外部 We ebService 作者:SAP P 天元
A ABAP 调用外 外部 WebService W e
SAP 天元 Ema ail: saptiany yuan@ QQ:77563259 94 Blog:http://bl log.csdn.ne et/saptianyu uan
注意:维护 SOAPAciton 路径时不能有空格,否则运行会报错。
ABAP 调用外部 WebService
作者:SAP 天元
维护完后再保存并激活逻辑端口。
创建 ABAP 程序调用 WebService
REPORT ZTEST_BYDX.
DATA: CONVERT TYPE REF TO ZW3C_CO_TEMP_CONVERT_SOAP, INPUT_PAR TYPE ZW3C_CELSIUS_TO_FAHRENHEIT_SO1, OUTPUT_PAT TYPE ZW3C_CELSIUS_TO_FAHRENHEIT_SOA. PARAMETERS P_IN TYPE ZW3C_CELSIUS_TO_FAHRENHEIT_SO1-CELSIUS. CREATE OBJECT CONVERT. INPUT_PAR-CELSIUS = P_IN. TRY. CALL METHOD CONVERT->CELSIUS_TO_FAHRENHEIT EXPORTING INPUT = INPUT_PAR IMPORTING OUTPUT = OUTPUT_PAT. CATCH CX_AI_SYSTEM_FAULT . WRITE 'Error:Communication Error'. CATCH CX_AI_APPLICATION_FAULT . WRITE 'Error:Application Error'. ENDTRY. WRITE: 'Fahrenheit is ', OUTPUT_PAT-CELSIUS_TO_FAHRENHEIT_RESULT.
ABAP 调用外部 WebService
作者:SAP 天元
基础知识
在 SAP 系统中创建 WebService,一定要对以下知识有所了解: z z XML 指可扩展标记语言(EXtensibleMarkupLanguage) SOAP 是基于 XML 的简易协议,可使应用程序在 HTTP 之上进行信息交换。或者更 简单地说:SOAP 是用于访问网络服务的协议。 z WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语 言。 z WebService 是应用程序组件,使用开放协议进行通信,是独立的(self-contained) 并可自我描述,可被其他应用程序使用。XML 是 WebServices 的基础。 同时要对 ABAP 面向对象编程知识有一定的了解,因为对应的 WebService 映射到 SAP 系 统中是当做一个类来使用。在 SAP 使用 WebService 前一定要有外部系统提供相关的 WebService,该 WebService 是在第三方系统中开发实现的,在 SAP 系统中调用。 相关的 WebService 地址及其描述地址如下所示,下在我们在 SAP 中创建 WS 使用者将基 于以下: WebService URL:/webservices/tempconvert.asmx WSDL URL:/webservices/tempconvert.asmx?WSDL
ABAP 调用外部 WebService
作者:SAP 天元
目录
基础知识........................................................................................................................................... 3 创建 WebService 使用者 .............................................................................................................. 4 创建 RFC 目的 ................................................................................................................................. 9 创建逻辑端口 ................................................................................................................................. 11 创建 ABAP 程序调用 WebService ............................................................................................. 13
ABAP 调用外部 WebService
作者:SAP 天元
运行输入参数如下:
执行 WebService 结要如下图所示:
ABAP 调用外部 WebService
作者:SAP 天元
创建 WebService 使用者
创建 WebService 使用者,操作如下图所示:
ABAP 调用外部 WebService
作者:SAP 天元
选择 ServiceConsumer,然后点击 Continue:
选择 URL/HTTPDestination:
ABAP 调用外部 WebService
作者:SAP 天元
在 URL 中输入 WSDL 的路径:
输入一个前缀 ZW3C_,选择 LocalObject(因为是本地测试,所以选择本地对象,如果是 正式使用,可以输入对应的 Package) :