我们遇到了一个恼人的 heisenbug:ABAP 程序的一些用户(不是全部)抱怨我们无法重现的问题(交易 FKKORD1 中合约账户的搜索帮助不会为他们出现。该交易是由外部大量定制的承包商)。
为了找到问题的解决方案,我们暂时授予用户权限角色以允许在生产系统中进行调试,以便我们可以在问题发生时在他们的用户帐户下调试问题。但是当我们给他们这个角色的那一刻,问题就停止了。当我们删除角色时,问题再次出现。
问题:有什么原因会导致 ABAP 程序在由具有调试权限的人执行时表现不同?
我们添加的角色只包含一个权限:
Object S_DEVELOP
ACTVT = 03
DEVCLASS = *
OBJNAME = *
OBJTYPE = DEBUG
P_GROUP = *
我们对事务 ST01 进行了权限跟踪,甚至在问题发生或未发生时都没有找到对该权限的检查。
永久授予普通用户调试权限不是一种选择,因为我们组织必须遵循的合规标准不允许这样做。