点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我过去曾问过同样的问题,但没人能给我正确的答案,可能是因为我的问题不够清楚。 这是我要实现的目标:在SAP Business ByDesign中,在创建采购订单时,当项目时间为"服务"且流程类型为"第三方"时,我尝试默认服务提供位置的值。 当前的默认值是" On-Site",我想将其设置为" Supplier Service Center"。
* 注意:我知道,如果这是"服务订单",那么我可以遵循: https://apps.support.sap.com/sap/support/knowledge/public/en/2740657 但并非如此*
因此,我去了SDK,为采购订单BO创建了业务对象扩展,并创建了一个After-Modify事件,该事件假定为获取节点Item下的注释元素TypeCode的值。 并检查值是否为19-服务,然后使ServiceProvisionLocationTypeCode的值等于3。
我确保所有组件均已发布PSM
这就是为什么我这样做并且遇到上述错误。 有人可以帮我解释一下发生了什么吗? 或向我提供有效的代码段!
谢谢
Mousa
(139.6 kB)
嗨,
在您的ABSL脚本中," this.item"带有值的集合。 因此,您需要循环访问每个条目以访问相应的节点字段。
示例代码可能是:
感谢
Saurabh
感谢Saurabh。
我在两个事件中尝试了此代码,一个在Root下,一个在Item节点下,却不知道可能是什么问题?
亲爱的Mousa,
我希望你一切都好!
为了满足您的要求,必须记住您正在执行脚本来检查具有0..N多重性的BO节点。
这意味着该采购订单实例在任何时候都可以有0或N个项目。
我可以看到Saurabh已经谈到了这一点,但是下面是与您的设计类似的ABSL代码:
。
在上面,您可以看到您正在使用GetFirst()函数访问Item节点上的"实例",然后检查TypeCode元素。
类似地,您应该使用ForEach循环(取决于您的方案)执行相同的操作,并遍历Purchase Order BO实例上的每个项目。
。
希望这对您和您的发展有帮助! (如果问题已解决,请标记为已回答!)。
亲切的问候,
安迪·布朗克利
亲爱的安德鲁。
感谢您的输出。 我试过了,当在根节点或项目节点下发生事后修改事件时,它在根节点或项目节点下不起作用。 我正在尝试进行实时响应,例如每当用户将物料从材料更改为服务时,此方法都会生效。 这应该与ABSL代码或UI设计器有关(因为我仍然是新手)。
谢谢!
嗨,
如果您刚刚创建了AfterModify操作,则在这种情况下启用了Mass enabled标志,那么您的" this"是一个集合,您必须对其进行循环:
这是结构,请检查语法。
最诚挚的问候
Thomas
嗨Mousa,
在 SAP Cloud Application Studio性能最佳实践,由 Stefan Hagen
,如果您想了解更多信息,请参阅指南质量启用事件的最佳实践,由 Pradeep Kumar N
我希望这可以帮助您解决问题:)
最诚挚的问候
托马斯
一周热门 更多>