AUTHORITY-CHECK OBJECT始终返回SY-SUBRC = 0

2020-08-14 12:07发布

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

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


你好

我是SD顾问,我需要有关ABAP的帮助。

我们创建了Z_KONH_KLS的自定义授权对象,以根据定价过程名称(KALSM)和步骤编号(STUNR)控制用户可以看到哪些条件类型的值。 因此,如果用户查看了在授权对象中设置了不同定价程序的销售订单文档,则条件类型的所有值都不会出现。 或者如果授权对象和SO中的定价程序相同,则用户只能查看值,直到在授权对象中设置的步骤编号为止。

多年来,我们一直在我们的一台服务器(4.6C版)中使用这种方法。

一个用户要求将相同的方法带给另一台服务器(SAP ERP Central Component 5.0版本)。 但是,当我们调试4.6C版本带来的新代码时,sy-subrc始终返回0。

这些是角色:

4.6C版本

SAP ERP Central Component 5.0版本

两台服务器中使用的定价过程具有不同的名称,但内容相同。 步骤174及以后,我们将其用于VPRS,我们不希望用户看到该值。

这是调试结果-左侧是4.6C版本,右侧是SAP ERP Central Component 5.0版本

在服务器的SAP ERP Central Component 5.0版本中,无论我提供什么KALSM,它始终返回sy-subrc = 0。

任何人都可以帮忙,尽管多年来在其他服务器上使用相同的代码也没有问题,但总是返回sy-subrc = 0的原因是什么以及如何解决它?

谢谢

(14.3 kB)

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

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


你好

我是SD顾问,我需要有关ABAP的帮助。

我们创建了Z_KONH_KLS的自定义授权对象,以根据定价过程名称(KALSM)和步骤编号(STUNR)控制用户可以看到哪些条件类型的值。 因此,如果用户查看了在授权对象中设置了不同定价程序的销售订单文档,则条件类型的所有值都不会出现。 或者如果授权对象和SO中的定价程序相同,则用户只能查看值,直到在授权对象中设置的步骤编号为止。

多年来,我们一直在我们的一台服务器(4.6C版)中使用这种方法。

一个用户要求将相同的方法带给另一台服务器(SAP ERP Central Component 5.0版本)。 但是,当我们调试4.6C版本带来的新代码时,sy-subrc始终返回0。

这些是角色:

4.6C版本

SAP ERP Central Component 5.0版本

两台服务器中使用的定价过程具有不同的名称,但内容相同。 步骤174及以后,我们将其用于VPRS,我们不希望用户看到该值。

这是调试结果-左侧是4.6C版本,右侧是SAP ERP Central Component 5.0版本

在服务器的SAP ERP Central Component 5.0版本中,无论我提供什么KALSM,它始终返回sy-subrc = 0。

任何人都可以帮忙,尽管多年来在其他服务器上使用相同的代码也没有问题,但总是返回sy-subrc = 0的原因是什么以及如何解决它?

谢谢

(14.3 kB)
付费偷看设置
发送
4条回答
路亽曱_Ryan
1楼 · 2020-08-14 12:18.采纳回答

正如Mateusz Adamus关于检查角色的建议一样,我进行了更彻底的检查,发现提到的对象已由其他团队以不同的角色分配给我测试的用户ID。 这种不同的作用是SY-SUBRC始终返回0的原因。

Bunny_CDM
2楼-- · 2020-08-14 12:28

(续)

  • 两个服务器中使用的定价过程具有不同的名称,但内容相同。 步骤174及以后,我们将其用于VPRS,我们不希望用户看到该值。
  • 这是调试结果-左侧是4.6C版本,右侧是SAP ERP Central Component 5.0版本

  • 在服务器的SAP ERP Central Component 5.0版本中,无论我提供什么KALSM,它总是返回sy-subrc = 0。
  • 任何人都可以帮忙什么,为什么它总是返回sy- subrc = 0以及如何解决它,尽管多年来在其他服务器上使用相同的代码也没有问题?

+这些注释:

  • 您可以执行SU53或ST01授权日志跟踪吗?
  • SU53给了我V_VBAK_VKO进行检查。
  • 而ST01给了我[全部 授权检查Z_KONH_KLS成功]

  • 您是否正在比较(调试)两个系统? 开发环境? 您是否检查了两个系统中的用户是否分配了相同的角色? 角色的定义方式是否相同?
  • 我在质量检查环境中调试了这两个系统,因为我们的开发服务器没有适当的角色。 这两个角色具有不同的名称和不同的授权(例如Sales Org,Document Type等),因为两者都针对不同的公司,但是角色具有相同的销售管理员功能。
  • 您是否也检查了其他角色和配置文件?例如,在要测试的一个系统用户上可能分配了SAPALL,因此对所有内容都具有授权。
  • Z_KONH_KLS的授权对象设置为Z * SALES * ADMIN角色,除Z * SALES * ADMIN角色外,没有其他角色包含分配给两个用户ID的Z_KONH_KLS。
  • 在两台服务器中,角色都有自己的名称,都充当销售管理员角色。
    我也检查了它们的配置文件,两个用户ID上都没有SAP_ALL配置文件。
    也许还有其他代码/语法 要在服务器的SAP ERP Central Component 5.0版本中使用?
绿领巾童鞋
3楼-- · 2020-08-14 12:22

SU56对您的测试用户显示什么? 通过检查用户缓冲区,您可以查看他们真正拥有的授权,以及通过哪个角色/配置文件获得的授权。

还有更多远景:VA03和您的自定义对象的SU24设置是什么?

clever101
4楼-- · 2020-08-14 12:35

较新系统的SAP_BASIS版本是什么(以及 内核版本)?
在更新处理期间是否进行了权限检查? (包括本地更新)

一周热门 更多>