【高手区第三期报表作品】带权限控制的ReportStudio报表

正在加载中...

试读已结束

继续阅读请 30 金币购买后下载

立即下载

资料简介:
带权限控制的ReportStudio报表


/**************************
**预告:
**【高手区第四期】带权限控制的External方式的Analysis Studio应用  
**http://www.cognoschina.net/club/thread-7491-1-1.html
**已经新鲜出炉,欢迎阅读投票,谢谢!
**以下是本主题正文
***************************/

CognosZhang @ www.cognoschina.net

一、        行业背景

银行业。
   
二、        应用方向

以统一的用户管理为基础,提供全行集中的报表服务。

三、        ETL工具

自己开发的ETL工具,配合手工脚本。

四、        数据库

Sybase ASE 15 & Sybase IQ 15。

五、        需求分析

1、        使用当前存在的用户信息,包含用户名、密码、授权机构等,进行统一的权限验证。
2、        集中对全机构提供报表服务。
3、        不同的机构具有不同的数据权限,具体需求按照业务人员的具体要求。
4、        某一张报表的表样以及要求如下:
(1).机构层级共分为6级(0到5级)。
(2).机构报表视图如图1所示。
(3).若为0-3级机构,视图如图1,即仅显示2-4级机构。
(4).若为4-5级机构,仅显示4-5级机构。
(5).数据权限限定到本级以及本级以下机构。
(6).0级机构是总机构,1级是境内,2是省机构,3是市机构,4是县机构,5是网点机构。
5、        由于Cognos集成到已有系统中,因此,需要进行对用户透明的登陆,且提供时间等参数信息进行报表的检索。

图1:样表【Excel】

六、        设计思路

1、        单点登录通过IBM SDK提供的单点登录的改造程序来实现。具体思路为采用已经维护好的用户名、密码等,并以用户所在机构名为组。(本文仅用到此登录系统提供或者需要检验的三个字段,其他细节请参阅相关文章)。单点登录是权限控制的基础。
2、        机构具有开始时间和结束时间,因此,在机构维度上具有时间属性,且具有历史信息。不同时间点的机构视图将不再相同,因为,机构具有时间属性,于是需要对每一层机构进行筛选,形式如下:


图2:筛选历史机构(对每一层机构都需要筛选)【ReportStudio】

3、        由于2的原因,事实表与维表建立雪花模型。(是否可以引入动态的机构视图?例如,时间点作为参数,产生当前机构视图来简化模型,毕竟星型模型具有较好的性能,因为减少了连接操作)需要说明的是,按照需求,为了加速汇总,在同一fact table中增加了两级机构的汇总数据,即4级机构数据是直接取得,而不是汇总数据。(类似于Transformer的External,但是只在此维度的此level增加了汇总数据)


图3:前0-4级机构雪花模型(我对此模型在海量数据时的效率存在一定的担忧,但是要用历史机构,不得已)【FrameworkManager】


图4:后4-5级机构雪花模型【FrameworkManager】

4、        为了防止具有Cognos技能的用户透过Report Studio模型,越权访问数据,Framework Manager中对数据权限进行了过滤,即Report Studio的报表开发者和使用者也仅能看到自己机构以及以下机构的数据。


图5:对数据源数据进行过滤,以便每个登入的用户看见自己机构以及以下机构的数据,具体做法是在雪花维的不同层级上进行过滤【FrameworkManager】

5、        为了支持4中的操作,$account.defaultName获得当前用户的用户名,并通过查询查到该用户的所属机构和机构层级,并映射为Parameters Maps,随后进行使用,即#sq($levelmaps{$account.defaultName})#和#sq($orgmaps{$account.defaultName})#


图6:Parameter Map的定义示意【FrameworkManager】

6、        2中提到的?date?参数是需要传入ReportStudio报表的时间参数,例如“20100131”,并对事实表进行筛选。


图7:按照时间过滤事实表【ReportStudio】

7、        由于不同机构,按照级别不同,报表视图不一致,因此,通过两个页面,分别建立报表模型:


图8:不同机构对应不同的报表【ReportStudio】

8、        由于7中所述,因此需要让不同机构跳转到自己应该看到的报表页面,于是定义了每个页面的生成变量:


图9:每个页面的条件生成变量【ReportStudio】
      
对县级以上机构登入应该看到页面的生成,其变量定义如下:


图10:判断登入用户的授权机构层级是否比4小,即县以上机构【ReportStudio】

       县级以下机构的变量定义类似,并与页面的生产变量相关联。

9、        报表的制作。


图11:县级以上机构的报表定义【ReportStudio】


图12:县级以下机构的报表定义【ReportStudio】


10、        与系统的集成采用URL方式(www.cognoschina.net上有许多讲URL拼接的帖子),为确保安全性,验证信息不使用明码的用户名和密码,而是CRNCONNECT(参见SDK)生成的passport,日期参数(即要看哪天的报表)明码传递,FrameworkManager负责数据权限的筛选。
使用passport的url:
http://localhost:80/cognos8/cgi-bin/cognos.cgi?b_action=cognosViewer&ui.action=run&ui.object=%2fcontent%2ffolder%5b%40name%3d%27%e4%bb%a3%e7%90%86%e8%b4%a2%e6%94%bf%e8%a7%86%e5%9b%be%27%5d%2freportView%5b%40name%3d%27%e4%bb%a3%e7%90%86%e8%b4%a2%e6%94%bf%e7%bb%bc%e5%90%88%e6%9c%8d%e5%8a%a1%e5%b9%b3%e5%8f%b0%e5%8e%bf%e5%9f%9f%e8%b4%a2%e6%94%bf%e4%b8%9a%e5%8a%a1%e4%bb%a3%e7%90%86%e6%94%b6%e5%85%a5%e7%bb%9f%e8%ae%a1%e8%a1%a8%ef%bc%88%e6%9c%88%ef%bc%89%20%e7%9a%84%e6%8a%a5%e8%a1%a8%e8%a7%86%e5%9b%be%27%5d&ui.name=%e4%bb%a3%e7%90%86%e8%b4%a2%e6%94%bf%e7%bb%bc%e5%90%88%e6%9c%8d%e5%8a%a1%e5%b9%b3%e5%8f%b0%e5%8e%bf%e5%9f%9f%e8%b4%a2%e6%94%bf%e4%b8%9a%e5%8a%a1%e4%bb%a3%e7%90%86%e6%94%b6%e5%85%a5%e7%bb%9f%e8%ae%a1%e8%a1%a8%ef%bc%88%e6%9c%88%ef%bc%89%20%e7%9a%84%e6%8a%a5%e8%a1%a8%e8%a7%86%e5%9b%be&run.outputFormat=&run.prompt=false&p_a=2&p_date=20100131&m_passportID=101:019469e6-ff22-9e9f-4b72-761eafcf1666:2215973931
其中p_date参数传递?date?使用的日期,m_passportID拼接的是CRNConnect获得的passport。

七、        报表访问流程

1、        用户登录Portal(Cognos的宿主),Portal在对用户透明的情况下登录Cognos,并获得passport。
2、        用户选择某张报表,Portal经过拼接url,调用Cognos服务进行展示。
3、        Cognos会根据Framework Manager的定义来筛选机构数据,并按照url提供的级别参数来选择展示那张报表,并根据日期参数来筛选事实表数据。
4、        用户获得其报表视图。

八、        结束语

很高兴有机会与CognosChina的众位高手交流,若有不当和疏漏之处,敬请赐教,以便在今后的工作和学习中,共同进步与提高!

2010-06-11
页数7
浏览32141
下载411

已下载用户的评价7.94分

您还未下载该资料,不能发表评价;
查看我的 待评价资源
foreverjayforeverjay软件架构设计师广州申迪2014-12-25
没用
看看先.谢谢了,
uynkfenguynkfeng其它丛文2014-12-18
没用
参考参考
wenshao600wenshao600其它广州南天2014-12-15
没用
没有阅读权限是什么情况啊~~~
wangxgwangxg软件开发工程师文思2014-05-29
没用
好东西赞一个
Allenliu328Allenliu328软件开发工程师home2014-05-22
没用
学习一下 下载
eastqfaneastqfan项目经理guanxin2014-03-11
没用
没有权限的样子,好吧,我去百度文库
eastqfaneastqfan项目经理guanxin2014-03-11
没用
不错的样子,学习一下
lcyaolcyao软件开发工程师VP科技股份有限公司2013-10-31
没用
为什么我不能购买来学习啊。
wyf2wyf2软件开发工程师IBM2013-09-02
没用
高手下下来看看
djgloy2004djgloy2004软件开发工程师aa2013-05-10
没用
感谢楼上几位的鼓励,大家相互学习,共同进步

贡献者

cognoszhang固定收益智能研究组临时负责人、大数据研究员,天弘基金管理有限公司
X社区推广