创建自定义BO实例失败

2020-09-07 17:58发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我在这里面临一个非常...

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

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


大家好,

我在这里面临一个非常奇怪的行为。

情况:

我有一个自定义的BO,其中包含员工和期间的锁定条目,因此时间表只能在开放期间发布。

因此,在扩展BO TimeEntry的同时,我检查了这些条目。 由于不允许在Validation-OnSave中执行TimeLock.Create(),因此必须在BeforeSave事件中执行此操作。

1。 在TimeEntry的BeforeSave-Event中,我使用EmployeeUUID和Period创建一个新的TimeLock条目。
Check,可在Debugger中使用!

2。 然后,TimeLock的BeforeSave-Event会插入并扩展一些字段,例如Employeenumber,Name等。
Check,可在Debugger中使用!

3。 然后从TimeEntry开始Validation-OnSave。
我对EmployeeUUID和Period(与步骤1中的值相同!)进行查询,但没有找到任何项目。
因此检查失败。

在创建的WorkcenterView中,我也看不到该条目。

当我忽略该检查并在Validation-OnSave中返回true时,事务就完成了-然后条目就在那里了。

有人对那里发生的事情有任何想法吗?
听起来很荒谬,似乎我在这里不赞成SAP的80年代LUW概念。
但是即使如此,为什么实例仍然存在 2,但不在步骤3中?

有什么解决方案?

任何想法都非常欢迎!

提前感谢,
莱因哈德

1条回答
闻人可可
2020-09-07 18:53 .采纳回答

我遇到了同样的问题。 基本上,您必须将支票移至BeforeSave并设置一个标志(扩展字段类型Indicator),该标志例如名为" TimeLockFound"并设置为true或false。 然后,在Validation-OnSave中,您仅检查TimeLockFound是否为true。 如果为true,则引发错误消息并返回false。 如果为false,则返回true。

很烂,但是就是那样。

一周热门 更多>