如何使用ABSL从标准BO事件更新自定义BO实例

2020-09-09 17:39发布

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

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


大家好,我创建了一个自定义BO,其中包含ServiceRequest BO中的数据。 当使用" var CustomRootNode = Custom.Create(CustomRootData);" BO实例不存在时,我已经在onBeforeSave事件中成功创建了BO实例。 但是,如果BO实例存在(我对自定义BO进行了查询并获得了resultdata),我想用数据更新该实例。 我该怎么办? 我没有为自定义BO找到任何更新命令。

您能否建议我应该如何使用ABSL从标准BO更新现有的自定义BO实例。

谢谢

Sangeeta Roy

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

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


大家好,我创建了一个自定义BO,其中包含ServiceRequest BO中的数据。 当使用" var CustomRootNode = Custom.Create(CustomRootData);" BO实例不存在时,我已经在onBeforeSave事件中成功创建了BO实例。 但是,如果BO实例存在(我对自定义BO进行了查询并获得了resultdata),我想用数据更新该实例。 我该怎么办? 我没有为自定义BO找到任何更新命令。

您能否建议我应该如何使用ABSL从标准BO更新现有的自定义BO实例。

谢谢

Sangeeta Roy

付费偷看设置
发送
4条回答
Aaron 3364
1楼 · 2020-09-09 18:26.采纳回答

你好Sangeeta,

您可以使用变量来存储对象并通过使用Retrieve函数或QueryByElements来获取记录。

检索:

 var BO = CustomBO.Retrieve('ID'); 

查询:

 var query = CustomBO.QueryByElements;
 var selparam = query.CreateSelparam();
 selparam.Add(query.ID," I"," EQ" this.ID);
 var result = query.Execute(selparam); 

然后您可以检查该值是否已设置。
如果您的ID存在记录,则可以通过变量更新此记录。

 if(BO.IsSet()){
  //更新BO
   BO.name ="新名称";
 } 

如果没有,则可以创建记录。

 var customBO:CustomBO的元素;
 customBO.ID = this.ID;
 customBO.name ="新记录";
 var newBO = CustomBO.Create(customBO);
 

祝你好运!

亲切的问候
Lissah Blommaert

哎,真难
2楼-- · 2020-09-09 18:18

Hi Lissah,

感谢您的帮助。 尝试更新时,检索对我有用。

var CustomBO = CustomBO.Retrieve(item.UUID);

if(CustomBO.IsSet()){

CustomBO.value.content = item.value.content;

}

这段代码在OnBeforeSave事件中。

它可以工作并使用新值更新CustomBO。

此致

Sangeeta Roy

宇峰Kouji
3楼-- · 2020-09-09 18:27

嗨Sangeeta,

首先从标准BO获取定制BO的公共密钥数据。

var custBOData = CustomBO.Retrieve(this.commonKey);

var custBOUpdt:CustomBO的元素;

custBOUpdt.KeyFieldVal = this.commonKey; (有时需要"内容")

您可以在此处分配要更新的内容。...

custBOUpdt.ABCD ='XYZ';

........

.......

.....

var UpdateCBO = CustomBO.Create(custBOUpdt);

就这样。 它应该工作。

有时候,如果两种解决方案都不同,则需要在标准BO中建立ASSOCIATION。

类似于将CustomBO与CustomBO关联;

并使用实例(this.toCustomBO)并将其替换为上述代码中的CustomBO。

让我知道结果。

角色,

钱德拉

奄奄一息的小鱼
4楼-- · 2020-09-09 18:28

你好钱德拉,

如果如上所述,我使用Create函数进行更新,则会收到错误消息:"具有XYZ键的元素已经存在"。

谢谢

Sangeeta

一周热门 更多>