biee与web接口
- 格式:docx
- 大小:45.36 KB
- 文档页数:8
1 统一待办(WebService方式)1.1 概述门户系统做为用户访问各集成应用系统的统一入口,用户访问企业内部信息资源时只需要登录到门户系统,就可使用门户系统集成的各个应用,而待办做为各系统中用户需要处理的工作,门户系统需要提供收集建投内部应用系统中产生的待办信息,并且进行统一展现的功能,即统一待办功能。
统一待办应用业务涉及到的系统其中包括本期门户系统建设过程中所需集成的OA、WCM、EAM系统。
为保证门户系统接入各应用系统待办信息的规范性,现就各应用系统接入实现做统一要求,以确保门户系统统一待办功能实现的规范性、重用性及安全性。
不满足本技术方案提供的接入规则的相关应用系统,应参考本文档完成对应用系统改造后方可进行门户系统统一待办接入工作。
统一待办实现共分为以下部分:系统待办信息获取系统待办信息展示系统待办信息处理1.2 待办信息获取设计思路:应用系统通过门户系统提供的webservice接口向门户系统统一待办系统库写入代表信息,如下图数据获取设计示意图步骤如下:1.应用系统需获得最新的待办信息。
2.应用系统通过门户接口,将获得的最新待办信息发送到门户系统。
3.统一待办系统将应用系统提供的待办信息展示给用户。
4.应用系统通过调用集成接口后获得信息,可以判断发送信息操作是否正常。
1.3 待办信息展示设计思路:应用系统将最新的待办信息发送到统一待办系统中,并最终展示到门户首页上的待办栏目上,如下图用户待办栏目页面待办集中展示设计示意图场景如下:在所有的待办类标题前加上”请办理”,待阅类标题前加上”请审阅”。
此外,如果信息是未办或者未阅,用红色表示1.4 待办信息处理设计思路:用户点击门户系统上“待办栏目”里的一条待办时,弹出一个新页面,首先同应用系统实现SSO,然后跳转到应用系统的待办页面,完成待办处理后,由应用系统调用门户接口通知门户系统,并关闭弹出的待办处理页面,门户系统负责即时刷新门户待办页。
BIEE技术手册文档作者:佳邦咨询创建日期:2008/02/20 确认日期:控制编码:当前版本:V1.0审批签字:青啤信息管理总部佳邦公司文档控制修改记录传阅分发目录概述 (1)目的 (1)参考文献 (1)BIEE基本架构体系 (2)企业商务智能标准架构 (2)信息的一般模型 (2)Oracle BI体系组成 (3)BIEE的安装配置 (4)O RACLE BI管理工具(A DMINISTRATION T OOL) (6)工具界面及相关配置路径 (6)用Administration Tool创建一个Demo (8)创建Repository文件 (8)创建ODBC数据源连接 (9)导入数据信息 (10)创建物理层表的连接(星形或雪花形结构) (13)创建模型层模型 (15)创建模型层维度逻辑层次 (16)创建事实表逻辑计算列 (22)根据逻辑列创建更多公式形式的计算列 (24)创建展现层 (27)保存并修改相应配置文件 (27)O RACLE BI仪表盘及答复(D ASHBOARDS&A NSWERS) (29)界面 (29)在仪表盘展现Demo的数据和图表分析结果 (30)答复界面(以员工数为例) (30)创建员工数数据分析报表 (31)创建员工数数据分析图形 (39)仪表盘创建、隐藏及删除 (41)添加图表文件并编辑仪表盘 (42)概述此文档作为BIEE模型搭建展现的主要参考文档。
目的了解BIEE开发工具Administrator Tool及仪表盘和答复的操作使用。
参考文献BIEE基本架构体系需要注意的是:BIEE是分析工具,不是专业报表工具,同时也不能完全复制出EXCLE中所体现出来的特殊表和图的效果。
企业商务智能标准架构信息的一般模型Oracle BI体系组成下面的图例反映了Oracle BI的体系组成以及各组成部分的关联。
Clients(客户端):提供访问信息的权限和服务•Oracle BI Answers(答复)一套用来创建、查看、修改Oracle BI请求的绘图制表类工具•Oracle BI Interactive Dashboards(仪表盘)展现Oracle BI Answers请求和其他项的效果•Oracle BI Administration Tool用来创建Oracle BI RepositoryOracle BI Presentation Services(Oracle BI展现服务)•对用户需要的信息给予形象化处理•作为网络服务器的延伸工具•编制目录存贮保存的内容•从Oracle BI Server接受数据同时提供给提交请求的用户Oracle BI Server(Oracle BI服务器):Oracle商务智能套件的后台核心服务器,提供对智能访问物理数据源及其构成信息的有效处理•对元数据的直接处理•在物理数据源中产生动态SQL•直接或通过ODBC联接到RDBMS(关系型数据库管理系统)•形成结果以确定请求•为Oracle BI展现服务提供数据Oracle BI Repository(知识库)•存贮Oracle BI Server中用到的元数据中对元数据进行再编制和简单化处理Data Sources(数据源)•包含用户想要分析的商业数据•用Oracle BI Server访问•可以以任何格式,如:关系型数据库、联机分析处理数据库、文件系统、电子数据表、XMLA下面这个图例是请求处理的过程。
SIEBEL Anlytics Web 学习笔记2006-09-112.1 HOW DO I2.1.1 如何新建一个即席查询(Answer)?1,登陆Siebel Analytics Web,点击“即席查询”(ANSWERS)。
注意页面的布局,左边是发布的仪表盘的目录,右边是当前主题区域(rpd)。
3,选择一个主题区域4,从左边的树中双击相关字段,放到标准页面中。
点击“结果”标签或者图表查看结果。
5,点击工具栏上“保存请求”按钮保存查询到一个指定的目录下。
2.1.2 如何发布即席查询到仪表盘?1,登陆Siebel Analytics Web,点击菜单栏上想要编辑的仪表盘2,点击右边的“页选项”-“编辑仪表盘”下图可以看到,左边树结构是保存的即席查询目录结构,右边页面布局部分以“部分”为容器,可以拖拽相关的即席查询到“部分”容器中,然后点击保存。
回到相关仪表盘即可看到生成效果。
2.1.3 如何增加仪表盘(菜单栏)?1,登陆Siebel Web。
2,点击“管理”链接3,点击“管理分析目录”链接4,点击“创建新文件夹”,创建并保存。
5,点击“管理智能仪表盘”连接6,鼠标向下滚动到底,点击“创建仪表盘”按钮选择“分组文件夹”并录入“仪表盘”名称。
7,回到我的仪表盘页面,刷新页面即可。
8,通过选择不同的“分组文件夹”可创建层次型菜单结构(仪表盘)。
2.1.4 如何创建一个提示?下图中的年、月、指标选择就是一个“提示“,应用于整个页面。
1,点击“即席查询“,点击右上角“新仪表盘提示”,选择一个主题区域。
2,点击“创建提示”,并从左边的指标中选择相关数据列3,创建后的效果如下图,注意可以通过SQL表达式构建提示列之间的数据限制关系。
2.1.5 如何设置多行表头?在仪表盘编辑页面转到“结果->数据透视表”。
行和列是支持层次结构的。
2.1.6 如何设置数据筛选器1?在仪表盘编辑页面,查看“筛选器”,点击“与”,可以形成缩进的层次表达式。
BIEE使⽤技巧索引:1.如何清除缓存2.通过“编辑 SQL”取得前⼀天的⽇期3.格式化⽇历框参数4.根据传⼊的开始时间和结束时间取得事实表中的指标(⽤到了3中的技巧)5.直接调⽤数据库函数6.时间格式转换7.BIEE传参问题8.BIEE部署到Solaris服务器9.联动条件提⽰10.不同维度级别算法11.Answer横向数据⽐较变颜⾊12.取得模型中有数据的最近⼀天的数值13.在列表的表头中加⼊tip14.在rpd中设置不同维度路径聚合算法15.集成报表时将“⾸选项”去掉16.指标成员分类显⽰17.BIEE报表向外部传数据1.如何清除缓存(1)删除OracleBIData下的cache⽬录(2)将NQSConfig.INI⽂件中的[Cache]选项ENABLE=NO2.通过“编辑 SQL”取得前⼀天的⽇期⽅法:select TIMESTAMPADD( SQL_TSI_DAY, -1,CURRENT_DATE ) from 时间维语法:TimestampAdd( interval, intExpr, timestamp )interval:指定的间隔。
有效值是:SQL_TSI_SECOND,SQL_TSI_MINUTE,SQL_TSI_HOUR,SQL_TSI_DAY,SQL_TSI_WEEK,SQL_TSI_MONTH,SQL_TSI_QUARTER , SQL_TSI_YEAR3.格式化⽇历框参数问题:BIEE⾃带的⽇历框传⼊的⽇期数据通过cast转换时会出错,需要将格式转换为类似格式:2010-07-01 --> 01-7⽉-10⽅法:cast(replace( right( '@{var_startdate}{2010-7-26}', 2 ), '-', '' ) ||'-' ||( case when left( replace( substring( '@{var_startdate}{2010-7-26}' from 6 for 2 ), '-', '' ), 1 ) = 0then right( replace( substring( '@{var_startdate}{2010-7-26}' from 6 for 2 ), '-', '' ), 1 )else replace( substring( '@{var_startdate}{2010-7-26}' from 6 for 2 ) ,'-', '' )end ) ||'⽉-' ||substring( '@{var_startdate}{2010-7-26}' from 3 for 2 )as date )4.根据传⼊的开始时间和结束时间取得事实表中的指标(⽤到了3中的技巧)FILTER( "事实指标"."全天汇总"USING ( "时间维"."⽇期"=cast(replace( right( '@{var_startdate}{2010-7-26}', 2 ), '-', '' ) ||'-' ||( case when left( replace( substring( '@{var_startdate}{2010-7-26}' from 6 for 2 ), '-', '' ), 1 ) = 0then right( replace( substring( '@{var_startdate}{2010-7-26}' from 6 for 2 ), '-', '' ), 1 )else replace( substring('@{var_startdate}{2010-7-26}' from 6 for 2 ) ,'-', '' )end ) ||'⽉-' ||substring( '@{var_startdate}{2010-7-26}' from 3 for 2 )as date )))FILTER( "事实指标"."全天汇总"USING ( "时间维"."⽇期" =cast(replace( right( '@{var_startdate}{2010-7-27}', 2 ), '-', '' ) ||'-' ||( case when left( replace( substring( '@{var_enddate}{2010-7-27}' from 6 for 2 ), '-', '' ), 1 ) = 0then right( replace( substring( '@{var_enddate}{2010-7-27}' from 6 for 2 ), '-', '' ), 1 )else replace( substring( '@{var_enddate}{2010-7-27}' from 6 for 2 ) ,'-', '' )end ) ||'⽉-' ||substring( '@{var_enddate}{2010-7-27}' from 3 for 2 )as date )))5.直接调⽤数据库函数(以Oracle为例)(1)在逻辑层调⽤Oracle函数在Administrator Tools中,可以在逻辑层调⽤oracle的函数,⽅法如下(注意Evaluate的语法):通过这种⽅式可以在逻辑模型中加⼊⼀些计算列,⽤以解决⾏上的数据⽐较分析。
一.技巧部分[仪表盘]修改页面图片路径\OracleBI\oc4j_bi\j2ee\home\applications\analytics\analytics\res\s_oracle10\portal[仪表盘]修改下垃菜单(1) 要展示成Drop-Down之Dashboard必須是同一個Group Folder.(2) 修改instanceconfig.xml新增一行:<DashboardMaxBeforeMenu>2</DashboardMaxBeforeMenu>/OracleBIData/web/config/instanceconfig.xml[答复]静态文本<span style="background-color:#000000;">静态文本的背景色</span>[提示]日期排序SELECT "biee_d_新号段189号码监控"."日期" FROM "数据自助提取" ORDER BY "biee_d_新号段189号码监控"."日期" DESC[提示]第十行SELECT "biee_d_新号段189号码监控"."日期" FROM "数据自助提取" WHERE RCOUNT("biee_d_新号段189号码监控"."日期" )=10 ORDER BY"biee_d_新号段189号码监控"."日期" DESC最大值SELECT max("- 市场占有率地区表"."月份" ) FROM JYBIEE[仪表盘]部分背景与CSS设置OracleBI\oc4j_bi\j2ee\home\applications\analytics\analytics\res\s_oracle10\b_mozilla_4[系统配置]几个重要的配置文件:安装后的目录很干净,就两:OracleBI, OracleBIData。
BIEE与WEB 接口本文主要内容为:1.建立BIEE报表。
2.将BIEE报表相关数据保存在数据库。
3.从WEB程序根据具体条件过滤相关的报表,并显示过滤出的报表列表。
4.从过滤列表链接到报表(可根据报表参数制定报表,并打印报表)。
一、建立BIEE报表:根据ORACLE数据库自带的DEPT、EMP表格制作三个报表:部门表、员工表、部门员工表。
具体制作方法参考以前相关文章。
二、数据库的设计:1.报表信息表:将相应的信息录入表格(手动):2.报表参数表:将相应的报表参数录入表格(手动):三、从WEB应用程序中过滤报表:在Jdeveloper中建立REPORTS表的视图,并建立查询标准。
然后根据报表所在的具体位置过滤报表。
具体过滤程序如下:public void findReportsByLocation(String location){ DCBindingContainer bc = ADFUtils.getDCBindingContainer(); AppModuleImpl am =(AppModuleImpl) bc.findDataControl("AppModuleDataControl").getDataProvider(); ViewObject vo = am.findViewObject("ReportsView1");ViewCriteria vc = vo.createViewCriteria();ViewCriteriaRow vcr = vc.createViewCriteriaRow();vcr.setAttribute("Location",location);vc.add(vcr);vo.applyViewCriteria(vc);vo.executeQuery();}过滤后的REPORTS在页面上的具体显示:<af:table value="#{bindings.ReportsView1.collectionModel}"var="row" rows="#{bindings.ReportsView1.rangeSize}" emptyText="#{bindings.ReportsView1.viewable ? 'No rows yet.' : 'Access Denied.'}" fetchSize="#{bindings.ReportsView1.rangeSize}" selectedRowKeys="#{bindings.ReportsView1.collectionModel.selectedRo w}"selectionListener="#{bindings.ReportsView1.collectionModel.makeCurre nt}" rowSelection="single" id="reportsTable"binding="#{viewScope.reportsListBean.reportsTable}"><af:column sortProperty="ReportId" sortable="true"headerText="#{bel}" rendered="false"><af:outputText value="#{row.ReportId}"><af:convertNumber groupingUsed="false"pattern="#{bindings.ReportsView1.hints.ReportId.format}"/></af:outputText></af:column><af:column sortProperty="Name" sortable="true"headerText="#{bel}" rendered="false"><af:outputText value="#{}"/></af:column><af:column sortProperty="Type" sortable="true"headerText="#{bel}"rendered="false"><af:outputText value="#{row.Type}"/></af:column><af:column sortProperty="Location" sortable="true"headerText="#{bel}" rendered="false"><af:outputText value="#{row.Location}"/></af:column><af:column headerText="#{bel}" rendered="false"><af:outputText value="#{row.Alias}"/></af:column><af:column sortable="true" headerText="报表"><af:commandLink text="#{row.Alias}"actionListener="#{viewScope.reportsListBean.linkReport}"/></af:column><af:column sortable="true" headerText="操作"><af:commandLink text="移动"actionListener="#{viewScope.reportsListBean.moveReportListener}"/> </af:column></af:table>四、从过滤列表链接到报表:从三可知:界面上显示了报表,以及对报表的操作:1.链接报表:链接报表linkReport方法具体如下:public void linkReport(ActionEvent actionEvent) {//取所选行的报表的参数JUCtrlHierNodeBinding tableRef = (JUCtrlHierNodeBinding)this.getReportsTable().getSelectedRowData(); Row row = tableRef.getRow();int reportId = Integer.parseInt(row.getAttribute("ReportId").toString()); DCBindingContainer bc = ADFUtils.getDCBindingContainer(); AppModuleImpl am = (AppModuleImpl)bc.findDataControl("AppModuleDataControl").getData Provider();ViewObject vo = am.findViewObject("ReportparametersView1"); ViewCriteria vc = vo.createViewCriteria();ViewCriteriaRow vcr = vc.createViewCriteriaRow();vcr.setAttribute("ReportId",reportId);vc.add(vcr);vo.applyViewCriteria(vc);vo.executeQuery();AdfFacesContext afc = AdfFacesContext.getCurrentInstance();afc.addPartialTarget(this.getPopupPrintReport());this.popupShow(this.getPopupPrintReport());}从以上程序可知:根据所选择的报表,过滤其定义的参数,并在对话框中显示,提示用户输入相应的参数。
然后根据具体参数调用报表,调用报表程序如下:public String goReport() {JUCtrlHierNodeBinding reportTableRef = (JUCtrlHierNodeBinding)this.getReportsTable().getSelectedRowData(); Row reportRow = reportTableRef.getRow();int parametersCount = this.getParametersTable().getRowCount();int pSum = 0,pCount = 1;//记录报表参数个数和P指针StringBuffer pStr = new StringBuffer();String url;for(int i=0;i<parametersCount;i++){JUCtrlHierNodeBinding tableRef = (JUCtrlHierNodeBinding)this.getParametersTable().getRowData(i);Row row = tableRef.getRow();if(row.getAttribute("AliasValue")!=null){pSum++;pStr.append("&P"+(pCount++)+"=eq"+"&P"+(pCount++)+"="+row.getAttribute("Name")+"&P"+(pCount++)+"=1+"+row.getAttribute("AliasValue"));}}if(pSum>0){url = ReportContants.bieeUrl + reportRow.getAttribute("Name") + ReportContants.bieeUser + ReportContants.bieePassword + ReportContants.bieeAction + ReportContants.bieeOptions +"&P0="+pSum+pStr.toString();}else{url = ReportContants.bieeUrl + reportRow.getAttribute("Name") + ReportContants.bieeUser + ReportContants.bieePassword + ReportContants.bieeOptions;}this.setReportURL(url);return "go report";}由以上程序可知:主要是构造报表的链接地址url。