首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Solution:激活WebService(调整RFC参数时/创建了新的函数模块后)

可能有朋友遇到这样的问题,首先考虑的是“关机-重启”这样的方案,即删除、重建。重建后,再告知外部系统新的wsdl地址。

可遇到以下两种架构,这样的解决方案就欠妥了:

1、SAP - 中间件 - 外部系统。要通知中间件我们的新wsdl地址,还要告知外部系统如何调用。

2、SAP - 多个外部系统。如果我们发布了一个服务,让多个外部系统来调用,那么更新了wsdl后,就需要通知到所有的外部系统,很麻烦。

如何在不变更wsdl地址的情况下,更新webservice的服务定义呢?

下文介绍两种场景:

1、调整了RFC函数的参数。

这时候,我们可以去SE80里找到相应的服务定义,进入编辑模式,点击工具栏上的检查按钮。如果RFC函数的参数变更引起了不一致,系统会提示我们是否进行调整。我们只要点击调整,然后激活即可。

2、针对函数组发布的WebService,后续新增了RFC函数。

在SE80里找到相应的服务定义,在External View或Internal View页签中,右键弹出菜单,添加函数模块,激活。

在笔者的系统(S4 1909)中,执行上述操作后,wsdl中可以看到新的函数模块,但是在调用时却遇到了系统提示的错误“服务不支持”。

查看了一下SOAMANAGER里的服务配置,如下:

问题1:服务定义里,操作列表有两个。Endpoint里,操作却只有一个。

问题2:Wsdl里,新添加的这个没有soapaction。

通过SRT_UTIL查看错误日志,对应的消息号是SRT_WSP982。

然后笔者去官网搜了一下,找到了解决方案,如下:

打这个补丁之前,确实没有更好的解决方案。但打了补丁2610321之后,再执行程序SRT_DT_ADJUST_CONFIG,最后再去SOAMANAGER中激活一下,就可以完美解决这个问题了。

————————

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210131A00VKZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券