在调试中,它可以正常运行,但不能正常运行吗?

2020-09-05 08:33发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 在某些情况下,我们正...

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

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


大家好,

在某些情况下,我们正在运行数据库更新,但是用户被分配了仅用于运行该作业的权限。

除了创建伪造的"红色" SLG1日志外,其他一切都正常。

在程序中,我使用FM BAL_DB_SEARCH来获取我要删除的SLG1日志,并且工作正常。

然后我进行提交工作并等待。

然后我根据上面选择的日志,使用参数I_with_commit_work = abap_true运行FM BAL_DB_DELETE。

问题是我没有删除BAL_DB_SEARCH选择的所有日志。

调试时,我查看了所有BAL_DB_SEARCH检索到的SLG1日志,并且BAL_DB_DELETE正常工作。

我将以上内容放入DO中。 循环进行一次COMMIT WORK AND WAIT(等待和等待),以及另一个WAIT(最多等待1秒),但是仍然得到了剩余的未删除日志。

如果我通过SM50(无限循环)进入程序调试,或者使用FM Breakpoint调试上述功能模块之一,则上述方法非常有效。

任何人都可以在这里帮助我

我查看了ST05跟踪,发现执行了COMMIT CONNECTION默认操作,因此我在ABAP中尝试了此操作,但无济于事。

还尝试了FM DB_COMMIT,但无济于事。

谢谢

标记

8条回答
骆驼绵羊
2020-09-05 09:12

您说您的代码应删除日志(我同意,BAL_DB_DELETE删除日志),并且某些日志没有删除。 我知道两种可能性:要么某些日志已经被锁定,要么存在一个BAL_DBDEL_ 功能模块,该功能模块可防止删除日志。 那么它可能是一个异步删除的锁。 在" DO"循环之前添加最多10秒的等待时间,以确保是原因,然后告诉我们上下文,以便我们可以为您提供帮助(我只能说您将自定义代码放置在错误的位置) 。

一周热门 更多>