使用Web服务锁定对象

2020-08-19 22:09发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我目前正在开发Web服务,用于从外部系统(Web应用程序)更新入站交付。

外部应用程序将具有显示和更新SAP入库交货的功能。 在应用程序的编辑模式下,应在SAP中锁定内向交货

我创建了3个RFC功能模块,并从中创建Web服务:

1。 锁定FM ENQUEUE_EVVBLKE的Web服务以锁定SAP入站交付

2。 Web服务,用于更新调用FM BAPI_OUTB_DELIVERY_CHANGE

的交付

3。 用于解锁FM DEQUEUE_EVVBLKE的SAP入站交付的Web服务

在使用SOAPUI进行的测试中,我顺序运行了Web服务,但是在调用Web服务以更新交付时发现了问题。 SAP throw错误消息表示传递已锁定(相同的用户ID)。

即使我们使用相同的SAP ID,第二个Web服务(更新交付)似乎也正在创建新的会话/LUW。

当我在SM04中检查用户会话时,第一次执行Web服务(锁定交付)的会话仍然存在。

我还尝试在调用FM BAPI_OUTB_DELIVERY_CHANGE之前先调用FM DEQUEUE_EVVBLKE,但是SM12中的锁定条目仍然存在。 发生这种情况是因为锁定交付和更新交付的会话不同。

有人在开发这种开发方面有经验吗? 请分享您的想法

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我目前正在开发Web服务,用于从外部系统(Web应用程序)更新入站交付。

外部应用程序将具有显示和更新SAP入库交货的功能。 在应用程序的编辑模式下,应在SAP中锁定内向交货

我创建了3个RFC功能模块,并从中创建Web服务:

1。 锁定FM ENQUEUE_EVVBLKE的Web服务以锁定SAP入站交付

2。 Web服务,用于更新调用FM BAPI_OUTB_DELIVERY_CHANGE

的交付

3。 用于解锁FM DEQUEUE_EVVBLKE的SAP入站交付的Web服务

在使用SOAPUI进行的测试中,我顺序运行了Web服务,但是在调用Web服务以更新交付时发现了问题。 SAP throw错误消息表示传递已锁定(相同的用户ID)。

即使我们使用相同的SAP ID,第二个Web服务(更新交付)似乎也正在创建新的会话/LUW。

当我在SM04中检查用户会话时,第一次执行Web服务(锁定交付)的会话仍然存在。

我还尝试在调用FM BAPI_OUTB_DELIVERY_CHANGE之前先调用FM DEQUEUE_EVVBLKE,但是SM12中的锁定条目仍然存在。 发生这种情况是因为锁定交付和更新交付的会话不同。

有人在开发这种开发方面有经验吗? 请分享您的想法

付费偷看设置
发送
2条回答
ZJXianG
1楼-- · 2020-08-19 22:44

这是因为它们不在单个会话中运行。 调用Web服务时,它将打开一个会话,并在那里工作并关闭该会话并显示数据。

因此,第一个Web服务调用创建了锁,并且

第二个服务调用,在调用锁FM时,显然是错误,因为这是第二个会话。

您的方案在GUI和webdynpro中运行良好,但在这里不是。

因此最好更改您的方法,并将所有锁定都包含在一个服务调用中。

如果您想要一种方法来执行此操作,请查看SAP OData服务软状态,通过它可以实现这种状态 功能。

否则,您也可以使用ETAG来实现。 但这不是悲观锁定,而是乐观锁定。

请注意

Mahesh

打个大熊猫
2楼-- · 2020-08-19 23:09

嗨,Mahesh,

谢谢您的答复。

不能选择致电服务,因为第三方应用程序将具有显示和更改交货的功能,例如SAP中的vl02n。

我注意到的一件事是,从第三方应用程序调用Web服务之后,会话仍保留在SAP中,并且可以在SM04中查看。

是否可以在下一次调用Web服务时重用那些会话?

一周热门 更多>