原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
**前言:**
本文主要交接动态报表(D-Query,下面统称D-Query)的授权,如果你不知道D-Query是什么, 请先阅读公众号中的文章. 里面详细介绍了D-
Query的所有情况
> 动态报表D-Query 的介绍
>
> 公众号:ABAP开发技巧 [ 动态报表D-Query整合
> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247484586&idx=1&sn=606e6afe74eba4b2f194fdd88fadbab3&chksm=cf5dd99cf82a508a0971f705aa2e8ea8bf1b91d13b3098330179407db5af0f783bd886611414#rd)
今天想要介绍的是D-Query的授权部分.
**授权:**
在一个常规的企业软件中,总是缺少不了授权.通过授权控制用户能够登录哪些系统,执行什么操作, 查看什么数据. 下面是百度词条对授权的解释.
_授权是组织运作的关键,它是以人为对象,将完成某项工作所必须的权力授给部属人员。即主管将处理用人、用钱、做事、交涉、协调等决策权移转给部属,只授予权力,不可托付完成该项工作的必要责任,这是授权的绝对原则性。组织中的不同层级有不同的职权,权限则会在不同的层级间流动,因而产生授权的问题。授权是管理人的重要任务之一。有效的授权是一项重要的管理技巧。_
正是因为授权的重要,所以在D-Query设计最初就考虑了授权的处理,沿用了SAP的标准授权体系,同时又发展出一整套完整的自有授权体系.同时完成对D-
Query的授权控制.
**自定义授权体系**
因为标准SAP授权体系的复杂性(当然这个说法见仁见智,有人觉得简单,有人觉得复杂),所以我开发了一套简单的授权体系.这个体系的核心是一个用户/用户组授权表ZTUSR_AUTH_COMM.
**如果用户维护在该表中, 才表示对用户存在授权特定字段的授权限制, 没有维护,则表示对该用户无限制.** **
**
• **BNAME:** 用户名或用户组名, 优先通过用户名查找授权信息, 如果没有, 则再次通过用户组名查找授权信息(用户名的用户组使用标准字段 USR02-CLASS)
• **FNAME:** 需要授权检查的字段名
• **MABIAO:** 授权允许的字段值,码表授权,允许多个单值,区间(A-Z)允许通配符,或逗号分隔
•
• **MABIAO_EXCLUDE:** 授权不允许的字段值,码表排除
•
• 通过对比授权表中的值与授权检查的字段值,完整授权的检查
**D-Query的授权分两个部分**
**第一部分:**对使用D-Query的开发或关键用户的授权** **
****** ** 直接使用D-Query的用户一般是开发人员或授权较高的关键用户.这类授权是通过限定可使用的表来完成的
执行D-Query(TCODE:ZBC125或ZDQ),在表名字段的帮助信息中可以看到这部分授权的实现方式(这里使用了自定义授权体系)
比如下图限定了用户CABAP01只能用D-Query查询Z*开头的表
如果用户试图查询没有授权的表, 则会报错
关联的子表,如果没有授权,则无法加入子表的字段
**第二部分:对使用通过D-Query开发的报表的最终用户授权**
**** 这部分授权使用了SAP标准授权体系和自定义授权体系结合,同时生效. **
**
通过表ZTBC125_AUTH维护授权字段的主表,及授权对象
如上图,表示字段BUKRS
从T001中读取所有的公司代码,使用标准授权对象F_BKPF_BUK完成授权检查.特别说明一下,如果该表没有维护,D-Query预制了四个授权检查,如果表维护了,
预制授权检查失效
启用了标准授权检查的字段,在D-Query开发中,允许勾选 授权检查,反之则不能勾选,简单授权检查没有这个限制, 只有字段存在码表,就允许勾选
一旦字段勾选了授权检查或者简单授权检查.生成的TCODE执行时会检查这个字段必须输入,如果没有输入内容,或者输入的内容不存在授权,都会报错.
D-Query基于性能的考虑主要是对输入条件的授权检查,如果用户使用通配查询输入,则使用该通配条件读取码表或者授权表中定义的主表,获取所有单值,然后循环对单值执行授权检查.
如果用户输入地点 6* . D-Query会查询所有6开头的地点, 对没有授权的地点,都会报错列出
如果你对这篇文章感兴趣,请帮忙转发分享, 并且勾选微信 <看一看>.文章右上角的按钮点击后,点击<在看>(或者文章末尾的右下角<在看>),即可.
(如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.
毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)
扫码关注公众号,获取更多好用的SAP应用程序
动态报表程序下载链接
https://pan.baidu.com/s/1yHongiCSNpK8V8Be6OwkCw
提取码:dtbb