业务需求:
1. 需要在Siebel中展示OBIEE的报表界面,能够以Siebel当前用户SSO到OBI
2. BI中根据登陆用户实现对数据的安全性控制
3. 在Siebel中对每张报表实现类似用户职责的视图性安全性控制,细化到用户,职位对 报表的可视性控制
4. 在Siebel中需要对报表进行分类管理
5. 报表有100张左右
方案设计:
1. SSO BI和Siebel通过OAM实现单点登陆比较麻烦,考虑BI用户认证可以通过数据库自由定制,每天同步Siebel用户数据到BI用户表
包括用户名密码,密码使用Siebel用户关联的BI密码字段BISecPwd(可自由设定加密策略)
2. 使用Symbolic URL 实现报表集成
设计报表时每张BI报表对应一个特定的URL Path参数路径,将报表路径和Symbolic URL String作为BC 对象形式存储,在报表BC上添加访问组MVG,
添加类型字段,批量导入报表的URL Path和分类。
Symbolic URL Args 设计如下:
Tools中配置BI Report Applet,Applet Class = CSSFrameListWeb,Applet WebTemplate=Analytics Applet
配置BC:
3. 配置目录树和Report Applet,能够根据结点加载报表
此功能需要在Symbolic URL Args 中加入 IsRecordSensitive = True 参数实现界面刷新,即选择目录结点,报表重新加载功能。
配置Tree Applet , 复制 Organization Tree Applet ,修改 Tree Node 对应 BC, Applet, 无递归。
最终效果:
4. 到此集成BI工作本可以结束了,但是却发现了一个产品Bug
官方描述是这样的:
“在任何外部网页集成的Siebel View 中,如果使用IsRecordSensitive参数,则点击MVG,Pick Applet ,或 关于记录等Popup Applet,均会导致SessionWarning ,组件Crash”
此Bug 有针对8.0.0.5以上的QF,已包含在8.1.1.5 PatchSet中
Engineering developed quick fix for this issue on top of 8.0.0.5.
The fix details:
Bug ID: 13113684
Platform Available: LINUX, SOLARIS, WINDOWS
Product Certified: SIA
Languages Certified: Lang Independent
Base Required: Fix Pack 8.1.1.5[21229]
Patch Abstract:
8.1.1.5 21229 SIA QF0540 sebl_aru
QF Install Doc:
Doc is named README.html and is located under
p13113684_811_LINUX_1of2.zip
p13113684_811_SOLARIS64_1of2.zip
p13113684_811_WINNT_1of2.zip
可是项目稳定的情况下,不想升级,打算继续采用8114版本, So Oracle 给了个 Workaround,就是在目录树 Tree Applet 上写Browser Script,来模拟达到Refresh View without IsRecordSensitive Args:
//In the Applet_Load event:
function Applet_Load ()
{
applet = this;
}
//In the Applet_ChangeRecord event:
function Applet_ChangeRecord ()
{
setTimeout("refresh()",10);
}
//And added the following function to the general declaration:
function refresh()
{
applet.InvokeMethod("ToggleTo");
}
效果确实可以达到,不过好像这个Workaround 本身也出了点Bug,居然也出了个QF,且看metalink文章 [ID 1072082.1]
不过目前没有这种情况,所以这个补丁还是没打。
终上所述,页面集成是有问题的,但是Workaround也是可以解决的,将BI 报表的View视图安全性转化为对BI 报表路径记录的安全性,这个方案是很不错的,至少我是这么认为的。