C4C:从ERP复制到C4C

2020-08-23 08:28发布

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

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


你好,

我们通过增强BO AddressSnapshot实现了地址验证逻辑。 如果用户输入的地址无效,则会阻止保存地址。

但是,现在我们不想在将帐户从ERP复制到C4C的情况下执行这部分逻辑,因为这会使复制失败。

但是,我不知道如何检查当前处理是由复制还是仅由用户的数据输入触发的。

ABAP世界中是否存在诸如sy-uname之类的全局或系统变量?

任何人都可以提出一些想法吗?

谢谢

彼得

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

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


你好,

我们通过增强BO AddressSnapshot实现了地址验证逻辑。 如果用户输入的地址无效,则会阻止保存地址。

但是,现在我们不想在将帐户从ERP复制到C4C的情况下执行这部分逻辑,因为这会使复制失败。

但是,我不知道如何检查当前处理是由复制还是仅由用户的数据输入触发的。

ABAP世界中是否存在诸如sy-uname之类的全局或系统变量?

任何人都可以提出一些想法吗?

谢谢

彼得

付费偷看设置
发送
2条回答
Violet凡
1楼 · 2020-08-23 08:57.采纳回答

嗨,

您可以通过非常简单的代码来确定用途是手动更改还是由集成用户更改。

导入AP.PC.IdentityManagement。 全球;
 var ident = Identity.Retrieve(Context.GetCurrentIdentityUUID());
 if(ident.BusinessPartnerUUID.IsInitial())//是技术用户
 {
//编写业务逻辑
 }
 else//手动更改
 {
//编写另一种业务逻辑
 }
 

在这里,我们只是在检查用户的BP UUID是否是初始的。 如果是初始用户,则为技术用户(基于集成用户的更改),否则为服务代理或员工(手动更改)。

谢谢

Saurabh

# p#

嗨,迈克尔,

感谢您的快速解答。

所以这意味着我将使用以下代码来获取触发当前脚本的当前员工。

 var cur_user = Context.GetCurrentIdentityUUID(); 
var emp = Employee.Retrieve(cur_user);

另一方面,如果脚本是通过复制触发的,则变量emp将是初始变量。

我说得对吗?

最美好的祝愿

Peter

CJones
2楼-- · 2020-08-23 09:03

你好彼得,

使用Context ReuseLibrary,您可以获取正在执行更改并触发脚本的用户详细信息。 如果是UI用户,您将找到Context为您提供的该身份的雇员。

希望如此,迈克尔

一周热门 更多>