点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们有时对具有活动性'03'(或...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们有时对具有活动性'03'(或...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我们有时对具有活动性'03'(或'02')的S_DEVELOP使用AUTHORITY-CHECK来控制是否应打开选择屏幕上的字段以供输入:
*只有开发人员可以更改要选择的最大项目数 权限检查对象" S_DEVELOP" ID" DEVCLASS"假人 ID" OBJTYPE"假人 ID" OBJNAME" DUMMY ID'P_GROUP'DUMMY ID" ACTVT"字段" 03"。 IF sy-subrc NE 0。 将屏幕环入数据(ls_screen)。 IF ls_screen-group1 EQ'DEV'。 ls_screen-input ='0'。 从ls_screen修改屏幕。 万一。 结局。 万一。
现在,我们在测试期间遇到了一个案例,该案例中,不是开发人员的用户通过了SY-SUBRC = 0的检查,并且我们不明白为什么会这样,因为我们看不到与开发人员相关的情况 在他的个人资料中扮演的角色。 如果我们通过SE37和功能模块AUTHORITY_CHECK以及ID和FIELD的相应值来检查用户,则将返回预期的错误USER_NOT_AUTHORIZED:
程序和功能模块中的实际权限检查不会产生相同的结果吗? 说实话,我发现他们没有这样做是"令人不安的"! 还是我们错过了什么? 是的,我注意到FM未"发布"。
我试图找到有关此内容的信息,但是在搜索" Authority-check"时找到的许多匹配项确实有点困难!
我们正在使用NW750 EHP8
非常感谢和欢呼
贝尔贝尔
fm-authority-check.jpg (76.3 kB)
TL; DR
AUTHORITY-CHECK(ABAP语句)的摘要=在AUTHORITY_CHECK(功能模块)中未提及授权字段。
长版本
在7.52中,如果未传递参数USER(或将其设置为SY-UNAME),则功能模块AUTHORITY_CHECK的代码严格等于:
因此,您可以假定AUTHORITY-CHECK没有任何区别。
您的代码的主要区别在于DUMMY。 如果您将参数设置为'DUMMY'调用AUTHORITY_CHECK,则等效于:
,这意味着必须至少有一个授权,其中DEVCLASS字段与'DUMMY'相匹配,而OBJTYPE字段与'DUMMY'相匹配,等等。 这根本不等于您的要求:
严格等同于:
或者甚至更不直观(因为它不在ABAP文档中,因此也不太正式,但是可以从SAP注释 1022413-使AUTHORITY-CHECK和AUTHORITY_CHECK保持一致,"从AUTHORITY_CHECK代码中调用函数模块AUTHORITY_CHECK时可以实现相同的结果",以:
因此,您的要求严格等于:
或
甚至:
NB:下一个错误,因为它查找包含包含真实空间值('')的字段的授权:
一周热门 更多>