如何防止通过SBO_SP_TransactionNotification删除UDO记录?

2020-09-04 23:57发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们有一个UDO OBJ_TRA...

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

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


我们有一个UDO OBJ_TRANSP。 关联的表是:@UDT_TRANSP。 该表中包含UDF:U_TransCode。

现在,我们正在尝试防止基于某种逻辑的记录被删除。 我尝试过如下编写查询:

如果@object_type ='OBJ_TRANSP'和@transaction_type ='D'

开始

声明@transcode varchar(20)

选择@transcode =来自[dbo]的U_TransCode。[@ UDT_TRANSP]其中的代码= @list_of_cols_val_tab_del

如果@transcode IN(<要测试的逻辑>)

开始

设置@error = -1

set @error_message ='无法删除记录,因为它存在于另一个表中'

结束

结束

但这不起作用。 据我了解,SP是在数据库中模仿更改后执行的。 因此,如果我们删除记录,则表@UDT_TRANSP中将没有记录。 这意味着@transcode为空值,并且无法测试逻辑。

我们如何解决这个问题?

4条回答
小熊yu生菜
2020-09-05 00:28

嗨,Aakash,

用" Docentry"更改"代码":

从[dbo]中选择@transcode = U_TransCode。[@ UDT_TRANSP] WHERE Docentry = @list_of_cols_val_tab_del

谢谢

阿齐兹

一周热门 更多>