检查对象是否在SAP C4C SDK中被锁定

2020-07-14 14:27发布

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

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


您好专家

我们有一个场景,我们正在使用ABSL从Activity更新票证对象中的数据。 但是,如果用户正在编辑票证,则更新到该票证将失败。 我们需要检查票证是否被任何其他用户锁定,如果是,我们将在SDK活动中显示错误消息。 但是我找不到任何这样的方法。 碰巧,我们可以检查用户是否使用ABSL锁定了对象吗?

预先感谢

Gayatri

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

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


您好专家

我们有一个场景,我们正在使用ABSL从Activity更新票证对象中的数据。 但是,如果用户正在编辑票证,则更新到该票证将失败。 我们需要检查票证是否被任何其他用户锁定,如果是,我们将在SDK活动中显示错误消息。 但是我找不到任何这样的方法。 碰巧,我们可以检查用户是否使用ABSL锁定了对象吗?

预先感谢

Gayatri

付费偷看设置
发送
3条回答
旧时梦
1楼 · 2020-07-14 15:13.采纳回答

AFAIK,C4C当前不公开任何标准库或方法来检查业务对象的锁定行为/状态。 它也是应该在影响论坛中广受欢迎的功能之一。 请检查并投票。

2楼-- · 2020-07-14 15:15

嗨Gayatri,

您可以尝试以下代码段。

导入ABSL;
 导入AP.PlatinumEngineering;

 // ...

 var locked = false;
 var checkLock = BOAction.CheckLock(“ ServiceRequest”,“ http://sap.com/xi/AP/CRM/Global”,“ Root”,ticket.UUID.content);

 如果(checkLock.MessageTypeItem.Count()> 0){
 foreach(checkLock.MessageTypeItem中的可变项){
 如果(item.MessageSeverityText ==“ E” && item.MessageID.content ==“ AP_ESI_COMMON / 101”){
 锁定=真;
 打破;
 }
 }
 }

 如果(锁定){
 // ...
 }
 
 

几个月前,我确实使用了类似的方法,所以我不确定它是否仍然有效,但是请随时尝试。 另外请记住,SAP不正式支持PlatinumEngineering库,以防万一它不起作用(现在或将来)。

最诚挚的问候
于尔根

lyy
3楼-- · 2020-07-20 11:06

import ABSL;
import AP.PlatinumEngineering;
var locked = false;
var errMsg = "";
var checkLock = BOAction.CheckLock("ServiceRequest", "http://sap.com/xi/AP/CRM/Global", "Root", ticket.UUID.content);
if (checkLock.MessageTypeItem.Count() > 0) {
    foreach(var itemMssg in checkLock.MessageTypeItem) {
        if (itemMssg.MessageSeverityText == "E" && itemMssg.MessageID.content == "AP_ESI_COMMON/101") {
            locked = true;
            errMsg = itemMssg.Text.content;
            break;
        }
    }
}


一周热门 更多>