原创/版权说明:
--本文系个人原创,与SAP官方没有任何关系,若有侵权请联系本人处理,谢谢!
SA*P系统自带了很多的权限对象,每一个运行画面都有非常多的权限用到。不过标准的权限对象并不一定适合于用在客户自己开发的程序里面,所以每个ABAPer都应该会自己开发一套权限对象,并引用在程序代码里面。一旦有账号需要赋予权限,直接用SA*P系统标准的角色权限配置就可以了。
SA*P权限对象一整套流程如下:
- SE11:创建Domain/数据类型
- SU20:创建权限字段(非必需,可用系统标准的,除非自定义)
- SU21:创建权限对象
- SE38:新建程序,引用权限对象
- SE91:创建事务代码
- SU24:事务代码分配权限对象
- SU01/PFCG:权限维护值
一、SE11创建Domain和数据类型
除非你是要做到在后续权限维护值的时候可以很直观让权限管理员知道应该怎么维护,否则Domain并非必须要的。
注意,上图这个地方Value Range其实可以不用维护的,不影响,但只是为了维护权限时的一个值的参考而已,让维护者知道怎么维护即可。
激活,Domain就创建结束了。
接下来还是SE11,创建数据类型
将刚才创建的Domain引用上去,当然如果没有Domian,直接在下面的Data Type维护类型即可。
至此,第一步算是结束了。
二、创建权限字段
新建的权限字段为ZPC_FIELD,数据元素就用上一步创建的ZPC,保存,新建请求。
三、创建权限对象
在创建权限对象之前,先创建对象类,如果已经存在需要的对象类,则忽略。
保存。
接下来创建权限对象:
填入前面创建的对象,此时点击创建对象文档,维护一下权限的一些描述:
四、创建程序,并应用此权限
点击模式,输入权限对象:
激活。
五、创建事务代码
程序开发结束之后,就开始创建事务代码:
六、对事务代码分配权限对象
这个步骤其实经常被很多业务和开发顾问忽略,但其实这个步骤是非常重要的。
这个操作的作用在于当IT在角色里面分配相关事务代码权限的时候,系统会自动将该事务代码分配的权限对象带出来让IT配置里面的权限值。因为分配权限的人员往往不是开发人员,他们并不知道该事务代码具体是做了哪些权限的卡控,因此分配权限的时候往往会出现只有该事务代码开启的权限,而无法做任何进一步执行的动作。
而该步骤就是保证每个事务代码所用到的的权限对象都能够完整被带出来!
之后再点击保存即可。
七、维护权限值
对事务代码ZTEST28授权
之后修改权限数据:
对当前账号赋予04:显示的权限(跟程序里要求创建的权限不一致,所以会提示没权限!)
重新生成参数权限就大功告成了!
经过以上几个步骤之后,运行事务代码ZTEST28,会提示:
如果权限字段赋予:01 新建,则运行程序会提示:
至此,权限全部完工。
对了,关于权限的描述文字,可以在赋予权限的地方看到(双击):
END
本文作者 | SAP梦心