SAP 调用外部系统webservice接口(SOAP-XML)-SOAMANAGER
文章目录
简单介绍:主要是在SAP端调用外部系统的webservice的soap接口的方式,主要包括GUI端和soamanager网页端。
一、GUI客户端创建服务消费
-
主要是有外围系统提供接口地址,创建企业服务,创建服务消费。首先输入事务码:SE80,右键包名,创建服务,然后选择Services Consumer
-
选择创建外部WSDL类型的服务
-
选择URL,如果外部系统提供WSDL文件,也可以选择本地文件
-
输入外围系统接口地址
-
输入外围系统的用户名和密码
-
选择开发包和生成类的前缀;
-
最后完成激活即可;
二、网页端进行SOAMANAGER配置
-
输入事务码:soamanager,输入gui端的账号密码登录即可配置服务,如果输入somanager不管用,则需要进入事务码SICF进行配置即可。
-
配置服务
-
选择web服务配置:
-
选择要配置的服务名:可以输入以上生成的abap name进行搜索,abap name为第一步生成的ABAP NAME,次名字也可以用于调用时候进行类声明:
-
基于WSDL配置:
-
填写端口名称,描述,后面的省缺建议勾选,避免未填写端口号报错:
-
填写地址与账户密码:
-
下一步:
-
再次输入账号密码
-
然后下一步只至操作设置,此处有可能会调用外部系统一个地址里面会有多个接口,然后再操作设置里面配置传输绑定,传入和传出的soap action根据外部地址里面的元素名设置:
-
-
最后测试
三、在程序中测试
由于产生的代理时由服务中的类实现的,所以可以通过类来测试
*&---------------------------------------------------------------------*
*& Report ZPRG_RFC_SAP001
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zprg_rfc_sap001.
DATA : lv_msg TYPE string VALUE '测试接口',
Lv_interface TYPE REF TO ZCO_ZFM_RFC_SAP,
lv_input TYPE ZZFM_RFC_TEST001,
lv_output TYPE ZZFM_RFC_TEST001RESPONSE.
"创建代理服务
CREATE OBJECT lv_interface
EXPORTING
logical_port_name = 'ZCO_ZFM_RFC_SAP'."类名
TRY .
lv_input-NUM1 = 2."参数为被调用的服务有的参数
lv_input-num2 = 4.
"调用服务
CALL METHOD lv_interface->ZFM_RFC_TEST001
EXPORTING
input = lv_input
IMPORTING
output = lv_output.
CATCH cx_ai_system_fault.
CATCH cx_ai_application_fault.
ENDTRY.
BREAK-POINT .
四、外围系统的接口调整
如果外围系统新增或者删除了字段,那么SAP端也要进行相应调整
步骤如下:
-
输入开发包然后选择要重新生成的服务,点击修改和重新生成按钮:
-
选择URL选择,一下步骤和上边的一样,具体步骤和生成服务的步骤一致: