BIEE项目实施心得汇总Word文档下载推荐.docx
《BIEE项目实施心得汇总Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《BIEE项目实施心得汇总Word文档下载推荐.docx(16页珍藏版)》请在冰点文库上搜索。
a)默认上月:
year(current_date))*100+MONTH(CURRENT_DATE)-1
b)默认当日:
year(current_date))*100+MONTH(CURRENT_DATE)+DAYOFMONTH(CURRENT_DATE)
c)
d)"
>
=(year(current_date)-1)*100+MONTH(CURRENT_DATE)-1
e)"
<
=(year(current_date))*100+MONTH(CURRENT_DATE)-1
主从事件
必须将发送的维度拖入到提示区
二次开发
1)修改bieelogo
用新的同样大的图片/png格式替换
登录主页Logo:
oracle_logo.pngD:
\biee\user_projects\domains\bifoundation_domain\servers\bi_server1\tmp\_WL_user\analytics_11.1.1\7dezjl\war\res\sk_blafp\login
报表页面Logo:
oracle_logo.png
D:
\biee\user_projects\domains\bifoundation_domain\servers\bi_server1\tmp\_WL_user\analytics_11.1.1\7dezjl\war\res\sk_blafp\b_mozilla_4
2)修改标题和头高度:
修改文件路径:
F:
\BIEE\user_projects\domains\bifoundation_domain\servers\bi_server1\tmp\_WL_user\analytics_11.1.1\7dezjl\war\res\b_mozilla\header.js
(a,"
IMG"
);
b.border=0;
b.src=saw.header.getResUrl("
branding_whitegradient.png"
b.alt="
"
;
varc=saw.createChildElement去掉抬头
false};
saw.header.Viewer.launchAlerts=function(){vara=newobide.AlertsDialog.Model();
newobide.AlertsDialog.Viewer(a,obips.FloatingWindow.Manager.getSingleton())};
saw.header.Branding=function(e,a,d,b,c){this.headerModel=e;
this.logo=a?
a:
saw.header.getResUrl("
common/oracleLogo.png"
this.productName=d;
this.desc=b;
this.href=c?
c:
mandToURL("
bieehome"
)};
saw.header.Branding.prototype.render=function(f){vard=document;
vare=f.insertCell(0);
e.className="
HeaderLogo"
varb=saw.createChildElement(e,"
b.src=this.logo;
b.alt=saw.header.getLocalizedString("
kmsgHeaderOracleLogo"
vara=f.insertCell
(1);
a.className="
HeaderBrandingCell"
b=saw.createChildElement(a,"
--删除表头;
varc=saw.createChildElement(a,"
span"
c.className="
HeaderBrandName"
saw.appendTextNode(c,'
BIEE'
--修改表头名this.nameSpan=c;
saw.addEventListener(window,"
resize"
this.onWindowResize,this,true);
this.gradientImg=b;
this.container=f};
saw.header.Branding.prototype.onWindowResize=function(b){vara=this.gradientImg;
if(saw.userAgent.is_ie&
&
!
saw.userAgent.is_ie9up&
b){varc=0;
for(vard=0;
d<
this.container.cells.length;
d++){if(d!
=1){c+=this.container.cells[d].offsetWidth}}a.style.width=Math.max(340,saw.getClientWidth()-c-5)+"
px"
}this.nameSpan.style.width=Math.max(340,a.offsetWidth-12)+"
};
saw.header.SearchBar=function(d,a,c,b){--调整上头列的宽度this.headerModel=d;
this.helpModel=a?
newsaw.help.ModelBase
用户权限
登录主页点管理-
安全性-管理权限
登录主页设置
登录页面点我的账户
起始页
参数变量
Biee的变量分几种(库变量,会话变量,介绍变量,请求变量,Biee内部定义的变量不说了),用起来经常让大家糊涂,再此做个总结,有异议的地方请消息给我·
·
欢迎讨论~
现在开始吧,Administratortool-Manage-Variable下图~
这里是模型RPD定义变量的地方,也就是所定义的变量名都是保存在RPD模型中,Variable所定义的变量类型分为两大类,一种是Repository(库变量),另外一种是Session(会话变量)。
其中Repository分两种变量的类型:
Dynamic(动态变量)和Static(静态变量)
Session也分两种变量类型:
System(系统变量)和Non-System(非系统变量)
现在说一下库变量的用途,库变量的Static(静态变量)经常是作为项目需求中经常用的固定值做为这个静态变量值的,举个例子:
如果一个项目中有10个Dashboard,每个Dashboard有10个page,每个page的下标都需要带上公司的版权注释,当公司被收购了版权需要更改的话怎么办,改一百次版权信息?
这里如果用静态变量的话就方便多了,只需修改变量对应的缺省值就可以了。
用法如图:
建立一个Static的RepositoryVariable
变量名为SRV缺省值为222050000,其中要注意一下类型Type,因为是静态的,所以不需要初始化块。
在前端直接就可以调用了
命名必须和静态变量的名称相同(不用解释吧)~
看一下效果
OK,调用静态的库变量成功。
这里需要注意一下,表达式和筛选调用库变量的时候是可以VALUEOF('
SRV'
)来引用,而其他地方调用的话例如文本:
需要这么写@{biServer.variables['
]}。
再看一下动态(Dynamic)的库变量的用途,例如:
一个项目中,要求当用户登录的时候看到的数据是当天(当月)的数据,这时候我们需要用到动态的库变量(也有其他方法,不做介绍了)。
所谓的“当前”,就是此刻所在的月,所以这些需要设置初始化块来设置时间的更新设置。
如图:
EditDataSource是编辑查询的地方,会返回若干行值;
EditDataTarget是指定查询返回的数据用于初始化哪个变量的。
返回值的顺序和需要初始化的变量顺序需要严格对称;
Schedule的地方就是制定查询执行的频率,即多久更新一次变量。
前端的调用方法可以静态的库变量相同;
下图依文本为例:
效果如下:
这里需要提醒一下。
库变量无论是静态的或是动态的,在前端都是无法对起变量值进行更改的,当然如果是库变量的取的关系库表中的值,通过回写数据库的数据来改动态的库变量也是一种方法哦~
再看一下什么时候Session会话变量,回话变量的设置方法和库变量类似,也是可以直接设置Variables,当然也可以定义初始化块来定义更复杂的会话变量,其中会话变量分系统变量和非系统变量。
系统会话变量:
DISPLAYNAME,EMAIL,GROUP,LAST_SYNCH_TIMEandTHIS_SYNCH_TIME,
PORTALPATH,REQUESTKEY,SKIN,USER,WEBGROUPS.这里常用到的就USER,GROUP,DISPLAYNAME三个,其他变量是含义请参考BusinessIntelligenceServerAdministrationGuide。
非系统会话变量名称可以自定义,但不要和系统变量同名即可,这里不再说步骤了,和库变量定义相同,这里定义了一个非系统回话变量的如下:
其中EditExecutionPrecedence是加载其他的应用程序定义的变量(例如:
LDAP定义的用户变量)。
Test可以测试查看到变量名称和其缺省值
再前端调用一下
注意调用会话变量的时候是VALUEOF(NQ_SESSION.变量名)而调用库变量的时候是VALUEOF(变量名)
OK~调用成功。
注意当不加指标列的时候(只有会话变量列的时候会报错)~
系统自带的会话变量如USER,GROUP等就不举例了,网上有很多实例,也可以去看我的相关LDAP权限控制博文。
再看看前端可以定义的变量~
前端可以定义的变量都是创建提示中设置
他分为介绍变量和请求变量,其中介绍变量是把提示中(也可叫筛选器)的所选项作为变量的Value值进行使用,用法如下:
定义介绍变量名
用@{变量名}的结果来引用
那么什么是请求变量,请求变量是从新定义会话变量的Value值的变量,其新定义的值来自提示所选项。
设置请求变量名的时候必须要和将修改的会话变量名称相同,上边已经定义了一个非系统会话变量SessionTest,Value值为222010000,下面以这个为例,来修改会话变量SessionTest的Value值。
定义一个提示的请求变量,名为SessionTest
在做一个会话变量的表
这里无需加筛选器,因为调节列是来自会话变量,我们实验的目的就是用提示的请求变量来修改这个会话变量的列~
OK~添加到仪表盘里看一下结果~
为了试验明显提示的缺省值没有进行设置,这里的缺省值是来自会话变量的222010000。
操作一下提示来改变会话变量的Value值~
OK~~!
变量用法总结:
库变量在Answers列的编辑公式中调用方法是VALUEOF("
变量名"
)
会话变量在在Answers列的编辑公式中调用方法是VALUEOF(NQ_SESSION.变量名)
库变量和会话变量在其他地方调用(例如文本中)是@{biServer.variables[‘变量名'
]}
介绍变量的调用方法是@{变量名}
系统自带了一些会话变量如下:
Delivers:
@{currentMonth}。
currentTime=>
@{system.currentTime}=2010-5-142:
21:
30
system.productVersion=>
@{system.productVersion}=10.1.3.4(Build080726.1900)
session.locale=>
@{session.locale}=zh-cn
session.language=>
@{session.language}=zh
rtl=>
@{session.rtl}=false
session.loginTime=>
@{session.loginTime}=2010-5-141:
42:
36
session.logoutTime=>
@{session.logoutTime}=2010-5-141:
31
session.lastAccessTime=>
@{session.lastAccessTime}=2010-5-142:
29
session.currentUser=>
@{session.currentUser.id}=administrator
user.homeDirectory=>
@{user.homeDirectory}=/users/administrator
user.id=>
@{user.id}=administrator
user.displayName=>
@{user.displayName}=administrator
数据权限设计
待讨论