SAP发布的webservice的SOAP接口:

58 篇文章 3 订阅
5 篇文章 1 订阅

SAP发布的webservice的SOAP接口:


简单介绍:主要包括SAP GUI端和soamanager网页端的操作

一、SAP GUI端创建接口并发布服务
  1. 创建RFC:在发布企业服务的时候在每个环境都要重新定义,不是通过请求传送。

    1. 进入SAP GUI,输入事务码:se37新建一个接口函数:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E862sBoH-1678610978153)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613092741952.png)]

    2. 同时在接口中必须传入的参数。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bD7jXsgW-1678610978154)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613092859877.png)]

  2. 为RFC创建企业服务:

    1. 创建企业服务入口:

      • 方法一:可以在函数页面选择:实用程序->更多实用程序->创建web服务->来自函数模块,进行服务创建。

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3CD4lNSb-1678610978154)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613093055890.png)]

      • 方法二:或者在se80针对函数创建企业服务

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wPVUKTya-1678610978154)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613093201702.png)]

    2. 定义服务名称和描述,定义的名称会用与soamanager网页端进行服务搜索:ZFM_RFC_SAP_SOAP

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nlXAW2WM-1678610978154)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613093416149.png)]

    3. 创建服务的RFC名字,如果前边是针对确定的RFC名称创建的话,此处则是默认之前选择的RFC名称:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vudCNq1J-1678610978155)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613093536599.png)]

    4. 指定安全级别:

      • 此处选择安全级别最高的是证书认证

      • 其次是传输保证的用户密码认证(推荐使用此种方式,外围系统调用输入账号密码即可)

      • 接着是无传输的账号密码认证

      • 最后是无认证的,发布的接口外部系统不需要输入账号密码可以直接调用、

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r4mtIi3q-1678610978155)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613093707376.png)]

    5. 选择请求和开发包:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-THW9OZke-1678610978155)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613093951763.png)]

  3. 点击完成后激活即可:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-88YHEQFP-1678610978155)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613094116805.png)]

二、网页端进行SOAMANAGER配置
  1. 打开网页配置端:soamanager,输入GUI的密码即可登录:如果使用soamanager不能进入,则先进行第三点

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WzAULkw3-1678610978155)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613094413786.png)]

  2. 配置服务:

    1. 选择web配置服务:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xClbGW8c-1678610978156)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613094544614.png)]

    2. 选择要配置的服务名,为上面定义好的服务:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IpesinVZ-1678610978156)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613094637095.png)]

    3. 双击进入对象名称后,点击创建服务,然后填写服务名称和绑定操作名称:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QCthryaA-1678610978156)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613094813799.png)]

    4. 下一步设置安全级别,滑到下面,勾选用户标识/密码,标识只有用密码登录即可,这里和之前生成的服务有关,安全等级越高,要求验证的方法限制越高:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dVsVNAHw-1678610978156)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613094902083.png)]

    5. 下一步点击完成即可:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tmTGd7UA-1678610978156)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613094943768.png)]

    6. 返回即可获取发布的接口的地址:http://hanas1.hand-china.com:2550/sap/bc/srt/wsdl/flv_10002A111AD1/bndg_url/sap/bc/srt/rfc/sap/zfm_rfc_sap_python2/200/api/operation?sap-client=200

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LuZrgHqs-1678610978156)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613095002945.png)]

  3. 接口参数修改:

    1. 如果接口参数有新增和参数格式的改变,则需要进行一下操作,更新系统服务

      在这里插入图片描述

    2. 如果是删除参数,则系统自动修改服务

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H6MbMjfb-1678610978157)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613095400074.png)]

  4. 测试服务

三、先配置相关内容才能进入网页端
  1. 输入事务码:SICF,并搜索服务

    在这里插入图片描述

  2. 测试服务

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lCwOIesk-1678610978157)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613095715576.png)]

四、对发布的地址进行测试
  1. 创建SOAP PROJECT

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4743B0wQ-1678610978157)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613095750324.png)]

  2. 设置project名字,把刚才的WSDL链接复制进去

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7hi9cwqd-1678610978158)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613100254016.png)]

  3. 输入用户名和密码以及其他参数之后点击测试运行

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tw65XcDd-1678610978158)(D:\学习计划笔记\RFC接口\IMAGE\image-20220613100728347.png)]

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 axios 发送 POST 请求来调用 Java WebService SOAP 接口。首先需要了解 SOAP 协议及其请求格式,然后可以按照以下步骤进行调用。 1. 安装 axios 可以使用 npm 安装 axios: ``` npm install axios --save ``` 2. 构造 SOAP 请求 构造 SOAP 请求的格式如下: ```xml <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.example.com"> <soapenv:Header/> <soapenv:Body> <ser:methodName> <!--Optional:--> <arg0>?</arg0> <!--Optional:--> <arg1>?</arg1> </ser:methodName> </soapenv:Body> </soapenv:Envelope> ``` 其中,`ser:methodName` 为要调用的 Java WebService 方法名,`arg0`、`arg1` 等为方法参数,可以根据实际情况进行修改。 3. 发送 SOAP 请求 使用 axios 发送 SOAP 请求的代码如下: ```javascript import axios from 'axios' const url = 'http://example.com/soap/service' // WebService 地址 const action = 'http://service.example.com/methodName' // SOAPAction const xml = ` <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.example.com"> <soapenv:Header/> <soapenv:Body> <ser:methodName> <!--Optional:--> <arg0>?</arg0> <!--Optional:--> <arg1>?</arg1> </ser:methodName> </soapenv:Body> </soapenv:Envelope> ` // SOAP 请求体 axios.post(url, xml, { headers: { 'Content-Type': 'text/xml;charset=UTF-8', 'SOAPAction': action } }).then(response => { console.log(response.data) }).catch(error => { console.log(error) }) ``` 其中,`url` 为 WebService 地址,`action` 为 SOAPAction,需要根据实际情况进行修改。`xml` 为 SOAP 请求体,需要根据实际情况进行修改。在发送请求时,需要指定 `Content-Type` 为 `text/xml;charset=UTF-8`,并在请求头中加入 `SOAPAction`。 4. 解析响应 Java WebService 返回的响应也是 SOAP 格式的,需要进行解析。可以使用第三方库 `xml2js` 将响应转换为 JavaScript 对象,代码如下: ```javascript import axios from 'axios' import { parseString } from 'xml2js' const url = 'http://example.com/soap/service' // WebService 地址 const action = 'http://service.example.com/methodName' // SOAPAction const xml = ` <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.example.com"> <soapenv:Header/> <soapenv:Body> <ser:methodName> <!--Optional:--> <arg0>?</arg0> <!--Optional:--> <arg1>?</arg1> </ser:methodName> </soapenv:Body> </soapenv:Envelope> ` // SOAP 请求体 axios.post(url, xml, { headers: { 'Content-Type': 'text/xml;charset=UTF-8', 'SOAPAction': action } }).then(response => { parseString(response.data, (error, result) => { if (error) { console.log(error) } else { console.log(result) } }) }).catch(error => { console.log(error) }) ``` 在响应中,可以通过 `result.Body` 获取到 Java WebService 返回的实际内容,需要根据实际情况进行解析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值