防止通过验证在BOPF中创建实体? 还是其他方式?

2020-08-30 20:44发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好BOPF大师, 我已经实现...

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

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


您好BOPF大师,

我已经实现了验证,并将其挂接到实体的CREATE

我将创建的实体添加到失败的密钥中,并设置一些消息,因为创建实体的先决条件未得到满足。 我想防止保留刚刚创建的实体数据。

将e010消息转换为msg。
             向消息移动对应。
             c_message-> add_message(
               is_msg =消息
               iv_node = zif_i_fi_geninvi_c => sc_node-zi_fi_geninviexp
               iv_key = <费用>-键
             )。
             add_failed_key(导出i_key =  -key更改c_failed_keys = e_failed_keys)。
 

以这种方式没有成功,该实体被成功保留,并且SADL将新实体连同错误消息一起返回到浏览器。

我试图在消息中设置目标(属性)并更改生命周期,但不走运。 UI中的批处理请求中不会执行其他任何操作。

防止创建实体的最佳方法是什么? (我开始调试框架,但是当一致性检查失败时,似乎仍然可以创建。坦率地说,我停止了调试BO框架。用调试在短时间内获得整个画面是不够的)

我有以下解决方法:

1。 添加BOPF操作CREATE,它将手动创建实体而不是框架,并通过操作验证(在此处进行检查)进行补充,这可能会阻止执行CREATE操作。 将节点实例创建隐藏到动作中并不是很好,但是所有内容都保留在BO中。

2。 为创建操作定义SAP Gateway Data提供程序类,然后在调用通用SADL处理程序进行创建之前在其中进行检查。 我宁愿避免这种情况,因为适当的验证将不在我的BO文档中。 当我想在ABAP中重用我的BO在bg中执行一些大规模自动操作时,我将放弃检查。 这甚至对于维护来说也不是透明的,任何人都很难找到该代码。

也许将检查移到一个称为CHECK_CREATE的确定可能会有所帮助,同时将评估时间点更改为BOBX的早期阶段?

我们处于7.5 sp9级别。

欢迎在CDS BOPF SADL GW通道上提出任何建议:)

谢谢

(38.5 kB)