前言
没什么好说的,留个标题占位先
1. SE37开发Function
事务码se37创建function
填入传入传出及表参数,传入传出必须勾选值传递
启用远程调用
编写函数功能逻辑,保存并激活
2. 创建Web服务对象
中文模式下语言显示有点问题,我切换成英文了
此步骤的属性选择两个no,这一步和soamanager的访问配置有关,选最后这个配置的自由度高一些
有请求申请请求,这是本地测试用,所以才选的local object
最后一步complete完成即可
3. SOAMANAGER配置
事务码SOAMANAGER弹出配置网页
输入账密登录后,点击WEB服务配置
搜索在SAP系统中发布的web服务对象
点击创建服务
在第一个页签输入服务名称,点击下一步
第二个页签主要配置访问权限,如果不需要basic auth,勾选无验证输入接口账号密码即可(接口账号需拥有通讯账号权限,一般用户账号因sap需定期重置密码的原因,不建议作为接口通讯账号)
如果需要basic auth,那勾选用户标识/密码即可,在访问接口时会向接口调用方要求basic auth的账密,否则会报http状态码401未授权
第三和第四个页签无需修改,点击下一步然后完成即可,最后创建完成则能看到如下的服务
4. SOAPUI 测试
在服务页面,点击打开绑定WSDL生成的按钮
下方框选住的链接就是需提供给外围系统的WSDL链接
打开soapui,选择new soap project
在下方输入WSDL地址,输入目标链接的登录信息后即可拿到入参结构等信息
生成请求参数之后,如果有basic auth需要在下方新增授权
选择basic
下方输入账密即可
发起请求,收到2XX返回即请求正常
请求参数那里有点坑
如果是日期类型得按yyyy-MM-dd的格式输入
如果把入参标签删掉,出参也不会返回信息
好像是XML报文传输的问题