用友NC商业分析学员手册数据权限.docx
- 文档编号:1853872
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:37
- 大小:671.66KB
用友NC商业分析学员手册数据权限.docx
《用友NC商业分析学员手册数据权限.docx》由会员分享,可在线阅读,更多相关《用友NC商业分析学员手册数据权限.docx(37页珍藏版)》请在冰豆网上搜索。
用友NC商业分析学员手册数据权限
2.1整体业务概述
2.1.1功能内容
报表数据权限控制是根据用户对应的组织单位范围(财务组织、采购组织、库存组织等等)来限定用户所能查看的数据范围。
具体地,通过宏变量“macro('LoginUser')”读取登陆用户的用户名,然后再通过维表和事实表对应的语义模型中的sql脚本控制,sql脚本会对照一张用户和公司(组织单位)的对照表,然后只允许此用户对应的公司的数据通过语义模型。
2.1.2企业应用
集团层面的数据需求表现在,总部相关人员应该查询整个集团范围内的对应数据(比如总部薪资专员对应全集团薪资数据)。
分子公司层面的数据需求表现在,各个分子公司相关人员应该查询其本公司范围内的数据或其本公司及下属单位范围内的数据。
2.1.3目标价值
通过报表权限控制,实现如下几个目标:
1、相同格式报表共享:
在不同组织、不同部门中共用报表,对相同格式的报表无需单独开发,而可以一次性开发,节约开发成本。
2、人员数据权限控制:
对不同人员,根据其部门、岗位等对数据权限进行控制,只能查询和查看其权限范围内的数据。
3、敏感数据管控:
对于敏感数据,只分配给有查看权限的用户使用;
2.2业务场景及所用测试表
2.2.1业务场景
报表数据权限控制一般是在集团型企业中,总部与下级公司共用一张报表,但总部与下级公司的用户在同一张报表中看到的数据的数据范围是不同的(本章是以‘公司’这个组织对象举例,具体项目中可能是对‘财务组织’、‘采购组织’或是‘库存组织’等组织对象进行控制)。
具体地,对父子维度和展平维度的报表权限控制略有不同,以下分2个小节详述。
父子维度和展平维度在应用上的区别,因不属权限控制范畴,请参见其他相关章节说明。
总体逻辑流程图如下:
2.2.2所用测试表
报表数据权限控制涉及到如下测试表:
2.2.2.1:
用户表
用户表table:
test_user
pk_user
user_name
user_pass
000001
bap1
1
000002
bap2
1
000003
bap3
1
2.2.2.2:
公司表
父子维度table:
test_corp
pk_corp
corp_name
pk_parent
1001
集团
1002
A
1001
1003
B
1001
1004
C
1001
1005
A1
1002
1006
A2
1002
1007
A3
1002
1008
B1
1003
1009
B2
1003
1010
B3
1003
1011
C1
1004
1012
C2
1004
1013
C3
1004
展平维度table:
test_corp2
pk_corp
corp_name
grade1
grade_name1
grade2
grade_name2
grade3
grade_name3
grade4
grade_name4
grade5
grade_name5
1001
集团
1001
集团
1001
集团
1001
集团
1001
集团
1001
集团
1002
A
1001
集团
1002
A
1002
A
1002
A
1002
A
1003
B
1001
集团
1003
B
1003
B
1003
B
1003
B
1004
C
1001
集团
1004
C
1004
C
1004
C
1004
C
1005
A1
1001
集团
1002
A
1005
A1
1005
A1
1005
A1
1006
A2
1001
集团
1002
A
1006
A2
1006
A2
1006
A2
1007
A3
1001
集团
1002
A
1007
A3
1007
A3
1007
A3
1008
B1
1001
集团
1003
B
1008
B1
1008
B1
1008
B1
1009
B2
1001
集团
1003
B
1009
B2
1009
B2
1009
B2
1010
B3
1001
集团
1003
B
1010
B3
1010
B3
1010
B3
1011
C1
1001
集团
1004
C
1011
C1
1011
C1
1011
C1
1012
C2
1001
集团
1004
C
1012
C2
1012
C2
1012
C2
1013
C3
1001
集团
1004
C
1013
C3
1013
C3
1013
C3
2.2.2.3:
用户公司映射表
用户公司映射表table:
test_map
pk_map
pk_user
pk_corp
2001
000001
1005
2002
000002
1003
2003
000003
1007
2004
000003
1013
2.2.2.4:
事实表
事实表table:
test_fact
pk_fact
pk_corp
pk_date
product_name
sale_sum
00000001
1001
201401
产品A
608733
00000002
1002
201401
产品A
433613
00000003
1003
201401
产品A
368986
00000004
1004
201401
产品A
588845
00000005
1005
201401
产品A
253970
00000006
1006
201401
产品A
824339
00000007
1007
201401
产品A
918321
00000008
1008
201401
产品A
954087
00000009
1009
201401
产品A
151498
00000010
1010
201401
产品A
179736
00000011
1011
201401
产品A
658454
00000012
1012
201401
产品A
988220
00000013
1013
201401
产品A
698746
……
……
……
……
……
事实表测试数据过多,这里就不一一列举.
2.3父子维度的报表权限控制
2.3.1业务描述
父子维度是指:
在需要控制的权限对象(本章中是’公司’)对应的维表里,每行数据对应一个单位的信息,除其自身PK\名字外,仅指定其父节点的PK。
父子维度的维表举例如下所示:
pk_corp
corp_name
pk_parent
1001
集团
1002
A
1001
1003
B
1001
1004
C
1001
1005
A1
1002
1006
A2
1002
1007
A3
1002
2.3.2系统操作步骤
2.3.2.1只允许登陆用户查看本级单位数据
如用户bap2只能查看其对应单位B数据,不能查看其下级单位B1、B2、B3的数据。
第一步:
新建事实表对应语义模型
在【商业分析】→【商业分析平台】→【语义层】→【语义模型】功能节点,点击下图1处,新建事实表对应的语义模型(此语义模型中仅存在数据权限控制逻辑)。
填写新建语义模型的编码和名称。
需要注意的是下图2处的数据源要选择对应物理表所在库对应的数据源。
如下图所示:
点击下图1处‘语义模型’的倒三角下拉按钮,在弹出的下拉菜单2处点击‘设计’按钮。
在弹出的‘语义模型设计器’窗口里,选择第一步‘选择表’(下图1处),在此界面的右上方处点击‘语义脚本’按钮(下图2处),如下图所示:
在弹出的‘语义脚本编辑器’里,写入用宏变量macro('LoginUserName')控制的数据权限过滤sql脚本,如下图所示。
其基本思想是将macro('LoginUserName')取得的当前登陆用户名,比对用户公司对照表,然后只取事实表中此用户对应公司的数据行,通过此过滤代码,实现数据权限控制目的。
本例中所用代码为:
select*fromtest_factwherepk_corpin(selectpk_corpfromtest_mapwherepk_userin(selectpk_userfromtest_userwhereuser_name=tostring(macro('LoginUserName'))))
点击‘校验’按钮后,连续点击‘语义脚本编辑器’右下方的‘下一步’、‘确定’按钮。
返回语义模型设计器,进行字段选择(参加语义模型章节)。
然后可以如下图所示,点击‘语义模型’下拉菜单中的‘执行’按钮,进行数据验证,查看事实表数据是否根据用户公司映射表进行了过滤。
如下图所示:
第二步:
新建维度对应语义模型
在【商业分析】→【商业分析平台】→【语义层】→【语义模型】功能节点,点击下图1处,新建维表对应的语义模型(此语义模型中仅存在数据权限控制逻辑)。
填写新建语义模型的编码和名称。
需要注意的是下图2处的数据源要选择对应物理表所在库对应的数据源。
如下图所示:
点击下图1处‘语义模型’的倒三角下拉按钮,在弹出的下拉菜单2处点击‘设计’按钮。
在弹出的‘语义模型设计器’窗口里,选择第一步‘选择表’(下图1处),在此界面的右上方处点击‘语义脚本’按钮(下图2处),如下图所示:
在弹出的‘语义脚本编辑器’里,写入用宏变量macro('LoginUserName')控制的数据权限过滤sql脚本,如下图所示。
其基本思想是将macro('LoginUserName')取得的当前登陆用户名,比对用户公司对照表,然后只取维表中此用户对应公司的数据行及其上级节点对应的数据行,通过此过滤代码,实现数据权限控制目的。
本例中所用代码为:
selectdistinctpk_corp,corp_namefromtest_corpstartwithpk_corpin(selectpk_corpfromtest_mapwherepk_user=(selectpk_userfromtest_userwhereuser_name=macro('LoginUserName')))connectbypriorpk_parent=pk_corp
注意此处与第一步不同的是在下图窗口右上方的‘标准SQL’按钮要打勾。
点击‘校验’按钮后,连续点击‘语义脚本编辑器’右下方的‘下一步’、‘确定’按钮。
返回语义模型设计器,进行字段选择(参加语义模型章节)。
然后可以如下图所示,点击‘语义模型’下拉菜单中的‘执行’按钮,进行数据验证,查看事实表数据是否根据用户公司映射表进行了过滤。
如下图所示:
第三步:
使用前述语义模型作为事实表和维表建立分析主题
此步骤参考分析主题相关章节内容。
第四步:
使用第三步的分析主题作为透视表或仪表盘的后台模型
此步骤参考前端界面设计相关章节内容
2.3.2.2允许登陆用户查看本级单位及其下级单位数据
如用户bap2能查看其对应单位B数据,也能查看其下级单位B1、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用友 NC 商业 分析 学员 手册 数据 权限
![提示](https://static.bdocx.com/images/bang_tan.gif)