文章目录
前言
SAP 能通过设置WebService与外部的webservice服务连接;
1、进入事务:SE80
选择包 Package ,指定保存的开发包,按图1操作,创建一个Enterprise Service。
2、根据向导操作
会出现如下的创建导向窗口,选择 ‘Service Consumer’,点击‘继续’
3、选择External WSDL/Schema
点击继续
4、选择URL
点击继续
5、填写URL地址
6、填写包
在弹出的窗口中,在’Package’栏中输入所需保存的开发类,若保存为本地开发类,则需将‘Local/Object’选上
7、最后点击finish
8、保存激活
保存并激活完代理类后,进入事务:LPCONFIG,进行创建逻辑端口的操作
9、点击创建
10、在‘一般设置’下的‘操作’页签
11、保存并激活逻辑端口
12、程序实现方法的调用
这里使用程序或者函数都可以实现,具体的场景按个人需求。这里本人写在函数中,因为有多个地方调用
DATA: lo_clientproxy TYPE REF TO ZCO_SRMWEB_SERVICE_COMMON_SER1, "参考生成的代理类
lo_sys_exception TYPE REF TO cx_ai_system_fault.
DATA: ls_srm_input TYPE zsrm_input1,
ls_srm_input_response TYPE zsrm_input_response1.
* 2、调用webservice
CREATE OBJECT lo_clientproxy
EXPORTING
logical_port_name = 'ZCO_SRMWEB_SERVICE_COMMON_SER1'. "调用对应的逻辑端口
ls_srm_input-parameters-els_account = '900000'."测试账号(固定值)
ls_srm_input-parameters-access_token = split3."SRM的token值
ls_srm_input-parameters-remote_request_input_vo-els_account = '900000'."大B账号(固定值)
ls_srm_input-parameters-remote_request_input_vo-company_name = ''."公司名称(固定值)默认为空
ls_srm_input-parameters-remote_request_input_vo-special_sign = ''."接口标识(固定值)默认为空
ls_srm_input-parameters-remote_request_input_vo-special_sign = i_special_sign."接口标识(固定值)
ls_srm_input-parameters-remote_request_input_vo-business_type = i_business_type."接口标识(固定值)
ls_srm_input-parameters-remote_request_input_vo-other_data = ls_data."JSON 格式
TRY.
CALL METHOD lo_clientproxy->srm_input
EXPORTING
srm_input = ls_srm_input
IMPORTING
srm_input_response = ls_srm_input_response.
CATCH cx_ai_system_fault INTO lo_sys_exception."捕获错误
"CATCH zoa_cx_exception INTO lo_oa_exception.
ENDTRY.
o_type = ls_srm_input_response-parameters-return-status.
o_message = ls_srm_input_response-parameters-return-message.
o_data = ls_srm_input_response-parameters-return-data.