最近在做 ABAP 开发和权限排查时,很容易遇到一个老问题,代码里明明已经写了AUTHORITY-CHECK,测试用户执行时也确实被拦住了,可到了权限管理员那边,却经常变成另一句话,角色里到底应该维护什么对象,什么字段,字段值从哪里来。
这件事不能只靠一句代码解释清楚。ABAP 程序里的授权检查,只是权限链路的起点。真正让业务用户能稳定使用某个事务、某个 Web Dynpro 应用、某个 Fiori 后端服务、某个自开发报表,还要经过 SU22、SU24、PFCG、角色菜单、授权默认值、权限字段补全、用户分配这些环节。SAP 官方资料里也把 PFCG Role Maintenance 定位为生成授权和授权 profile,并把角色分配给用户的核心工具,角色菜单会决定用户登录 SAP 后能看到和使用哪些功能,系统会基于菜单功能自动带出相应授权建议,再生成 authorization profile。(SAP Learning)
一个角色不是一堆权限对象,而是一份工作说明
在 SAP 里谈 role,不能一上来就盯着 authorization object。一个 role 更像是对某个岗位或工作中心活动范围的描述。仓库主管需要收货、发货、库存查询、打印物料凭证,财务应收会计需要客户行