权限检查authority-check

在报表开发过程中,如果是几家公司代码使用同一个报表的时候一般都要做权限的检查了,这样可以防止没有其它公司代码的权限不能访问到相关的信息。

authority-check介绍

在abap中,我们经常会使用到authority-check,其中想必遇到最多的就是activity的authority check,如01代表create、02代表change、03代表display。

authority-check object auth_obj [for user user ]

id id1 {field val1}|dummy

                       [id id2 {field val2}|dummy]

...

[id id10 {field val10}|dummy].

这种权限检查是在程序里面通过代码实现检查,下面进行分析各个参数:

1)auth_obj 对应的是权限对象名。

2)for user user 通过指定特定的用户进行权限检查,如果没有这个选项,就默认是当前登录的用户。

3)id1 .....

id10 对应的是你至少有一个至多有10个权限字段检查。

4)val1 .....

val10 对应的是权限字段检查的值。

从这里可以看出,它的意思就是说:对于权限对象object下面的不同的id(我们一般称为authority fields)进行不同的权限(这里的权限就是通过f1所指定的,如这里可以为01,02,03等等)检查.

在abap中,如果这个object包含多个id,需要在这里全部指定出来。这里,如果不想进行某一个id的检查,那么可以使用field dummy进行ommit掉。

另外这个authority-check后的sy-subrc返回值的不同也代表着不同的意思,这里稍微归总一下:

0

权限check成功

4

权限检查没有通过。权限对象在用户主数据已经维护了,但没有指定对应的值,或者非法的权限字段,或者指定太多权限字段。

8

在写abap authority-check时,指定太多的id(最多只能有10个)

12

用户信息中不存在这样的authority object,即权限对象没有在用户主数据维护。

16

用户信息中不存在这样的profile

24

指定的fild名字与authority-object中id需要的field不匹配

28

用户信息不正确

32

用户信息不正确

36

用户信息不正确

40

非法的用户id作为参数for user进行权限检查。

使用注意:

1)确定对应的权限对象名字,比如设置销售组织就对应有多个权限对象。

dummy 字面意思是虚拟的意思。就是说权限对象中有这个权限检查字段,但是不对该字段做权限检查。

举例:

"对销售办事处进行检查

authority-check object 'Z_SD_VKGRP'

id 'VKGRP' field gwa_vbap-vkgrp.

"对销售组织进行检查

authority-check object 'V_VBAK_VKO'

id 'VKORG' field gwa_vbap-vkorg

id 'VTWEG' dummy

id 'SPART' dummy

id 'ACTVT' field '03'.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值