|
Blogs by

xu lin

现象:      刷新webi报表时出现【com.businessobjects.rebean.wi.ServerException: 调用“processDPCommands”API 时出现内部错误。(错误:ERR_WIS_30270)】异常 原因:boe版本问题 boe3.1 sp3 方案:需要升级到 boe 3.1 sp3 fp3.2版本。

问题:Infoview中打开webi报表时出现【com.businessobjects.wp.om.OMDocument(Error:INF)】异常 原因: Whenever Catalina is shut down normally and restarted, or when an application reload is triggered, the standard Manager implementation will attempt to serialize all currently active sessions to a disk file located via

BO SDK是BO提供的编程接口技术,通过BO SDK,用户可以访问、调用BO各种组件的各种功能,这样就可以实现很多BO标准功能以外的东东。比如:封装BOE的各种功能,再造一个自定义的BO门户网站,在现实项目中,这是一个较常见的客户需求。(其实,BOE也是BO调用各种SDK做出来的,只不过它的界面比较固定,要想自定义界面,只能使用BO SDK)。 1 BO SDK 的主要内容   BO SDK的主要部分可以分成如下三个: 1)  BOE SDK:BOE的各种权限、计划、文件夹、报表等管理功能。 2)  Report Engine JAVA SDK:调用WEBI报表及相关各种功能。 3)  Views Java SDK:调用水晶报表及相关各种功能。   以下我们以最近实施的一个深圳实际项目举例(自定义BOE,重新打造BO门户界面),一瞥BOE SDK的庐山真面目。 2 BOE SDK的基本对象和基本知识 4)  BOE SDK中的最基本对象是Infoobject,它可以指代报表/用户/服务器/用户组等等 5)  如果需要从BO自带的数据库进行查找或提交,要先实例化一个InfoStore对象,再调用它的方法,具体用法是infostore.query(SQL) 6) 

      即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。          在数据仓库领域有一个概念叫Ad hoc queries,中文一般翻译为“即席查询”。即席查询是指那些用户在使用系统时,根据自己当时的需求定义的查询。即席查询生成的方式很多,最常见的就是使用即席查询工具。一般的数据展现工具都会提供即席查询的功能。通常的方式是,将数据仓库中的维度表和事实表映射到语义层,用户可以通过语义层选择表,建立表间的关联,最终生成SQL语句。即席查询与通常查询从SQL语句上来说,并没有本质的差别。它们之间的差别在于,通常的查询在系统设计和实施时是已知的,所有我们可以在系统实施时通过建立索引、分区等技术来优化这些查询,使这些查询的效率很高。而即席查询是用户在使用时临时生产的,系统无法预先优化这些查询,所以即席查询也是评估数据仓库的一个重要指标。即席查询的位置通常是在关系型的数据仓库中,即在EDW或者ROLAP中。多维数据库有自己的存储方式,对即席查询和通常查询没有区别。在一个数据仓库系统中,即席查询使用的越多,对数据仓库的要求就越高,对数据模型的对称性的要求也越高。对称性的数据模型对所有的查询都是相同的,这也是维度建模的一个优点。

今天项目请了一个移动BI的工具厂商 MicroStrategy (MSTR)讲解其在移动BI方面的应用,是一个售前的工程师,是一直在说他们的产品是多么的好,集成性是多么的高,借此机会也把现在市面上比较流行的几个BI工具做个比较,可以在宏观上把握以下。 BI工具国内有东南融通的BI.Office,用友的BQ,润乾等;外有IBM Cognos, SAP BO,MSTR等。 东南融通BI.Office 东南是国内BI的巨头,借助东南的市场地位,BI.Office在银行业很有影响力,据说70%大中型银行都用它。不过由于没怎么走渠道代理,有些人不了解。 BI.Office的移动版支持本地APP和浏览器,界面效果不错。       用友BQ 用友以前和BO合作推广BI产品,效果不怎么样。2010年收购了一个国内BI工具,近两年发展的还不错。最近推出了iphone版,功能还比较简单。    润乾 润乾把中国式报表做的还不错,国内有一定的市场份额。不过移动应用似乎没有受到重视,不仅iPad/iphone,Sybian,WM,黑莓统统没有。有点逆潮流。 Cognos 对于Cognos 8.4.1 或 Cognos 10,购买Cognos Mobile Server就可以直接將PC上的内容在ipad/iphone上使用了。 不过Cognos没有ios的本地应用,都用基于浏览器的,iPad/iphone上的浏览器有很多IE的功能是无法使用的。 BO SUP工具可以开发Ipad/Iphone,Android和黑莓手机的移动应用,效果还行。 MSTR MSTR有ipad的本地APP,可以免费下载。感觉还可以。

最近在一篇博客文章上看到可以在webi报表中动态的选择度量,很好用,先把博客的文章记录下来,留待后用! 这篇文章之前发在sdn的英文blog,现译成中文并发在中文的企业blog,供参考。 原文及相关评论请见http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/20426 我们都知道Web Intelligence具有高级的分析功能,是一个非常灵活的报表工具。在这篇文章里,我会演示一个使用Webi实现动态选择度量对象的方案。首先解释一下什么是”动态选择度量”:例如我们有多个度量对象,包括销售数量,销售收入,折扣数量,目标销售输入等,用户想动态的选择哪些度量在报表上显示,哪些不显示。这个业务需求的背景是,有些报表的度量太多,比如今年销售金额,去年销售金额,增长额,增长率等等,如果报表显示所有度量,那么报表也许会看起来太臃肿且不方便使用。所以用户想选择性的查看他关注的那几个度量。 通过Webi强大的交互功能,用户可以拖拽维度和设定格式,但对于那些连Excel都不太会的用户,我们需要更简单的交互方式。所以我们创建一个简单的格式化报表,通过简单的交互界面,复选框,来选择你想要看到的维度。下面是报表的的示例,用户通过在左边的面板中选择维度,右面的报表区域中的维度会相应的隐藏或显示 使用了如下技术来实现以上效果:1.         Webi交叉表2.         Webi输入控件(XI 3.1 SP2之后的新功能)3.         Universe 派生表通过以下简单的步骤可以完成上面的示例报表:1.         通过eFashion的连接建立一个简单的universe,添加一个”measure_names”的派生表,SQL语句如下:select distinct ‘Sales Revenue’ as mname from outlet_lookupunionselect distinct ‘Sales Quantity’ from outlet_lookupunionselect distinct ‘Margin’ from outlet_lookup2. 基于派生表中唯一的那个字段,创建一个维度对象,universe结构如下所示:3.使用此universe创建一个webi报表,使用如下对象:State,Measure Name,Margin,Sales Revenue和Sales Quantity。注意universe中的派生表并没有和其他表进行连接,因此此查询将会产生一个笛卡尔积的结果,这正是我们所需要的。4. 查询结果如下:5.        

基于HTTP协议的Connector: protocol=”HTTP/1.1″ protocol=”org.apache.coyote.http11.Http11NioProtocol” protocol=”org.apache.coyote.http11.Http11AprProtocol” protocolHandlerClassName=”org.apache.coyote.http11.Http11Protocol”  默认 protocolHandlerClassName=”org.apache.coyote.http11.Http11NioProtocol” protocolHandlerClassName=”org.apache.coyote.http11.Http11AprProtocol” 如果有安装APR 基于AJP协议的Connector:(基于该协议可以和其它server集成使用) protocol=”AJP/1.3″ protocolHandlerClassName=”org.apache.coyote.ajp.AjpAprProtocol” protocolHandlerClassName=”org.apache.coyote.ajp.AjpProtocol“,支持executor,但不支持压缩 protocolHandlerClassName=”org.apache.jk.server.JkCoyoteHandler” 默认,不支持executor

在tomcat6的server.xml里边可以看到ajp和apr,nio相关配置信息。话说ajp1.3(Apache JServ Protocol)是定向包协议,跟http1.1那样是一种协议来的,使用二进制格式来传输可读性文本。如果WEB服务器通过TCP连接和servlet容器连接。为了减少进程生成 socket的花费,WEB服务器和servlet容器之间尝试保持持久性的TCP连接,对多个请求/回复循环重用一个连接。一旦连接分配给一个特定的请求,在请求处理循环结束之前不会在分配。换句话说,在连接上,请求不是多元的。这个是连接两端的编码变得容易,虽然这导致在一时刻会有很多连接。   而APR(Apache Portable Runtime)是一个高可移植库,它是Apache HTTP Server 2.x的核心。包括访问高级IO功能(例如sendfile,epoll和OpenSSL),OS级别功能(随机数生成,系统状态等等),本地进程管理(共享内存,NT管道和UNIX sockets)。这些功能可以使Tomcat作为一个通常的前台WEB服务器,能更好地和其它本地web技术集成,总体上让Java更有效率作为一个高性能web服务器平台而不是简单作为后台容器。 所以呢,apr是可以和ajp,http结合使用的。   nio(new io)又是什么,它早在jdk1.4就被引入了,一直以来好像也不是很多人关注这个。主要作用就是用来解决速度差异的。举个例子:计算机处理的速度和用户按键盘的速度。这两者的速度相差悬殊。如果按照经典的方法:一个用户设定一个线程,专门等待用户的输入,无形中就造成了严重的资源浪费:每一个线程都需要珍贵的cpu时间片,由于速度差异造成了在这个交互线程中的cpu都用来等待。这nio是怎么做的?无非就是非阻塞,谁要给谁,用模式话语就是观察者模式了。所以nio和ajp,http也是没冲突的。   这么搞起来,io的方式就有apr,nio,普通io等,协议就有ajp,http等等,再加上带不带连接池什么什么的,在tomcat里边就有n多种io+protocol组合可供选择了。至于那种方式比较好,也没什么定论,nio也不一定比no好,要不早就流行了。以前也试过nio,性能反而下降了,还是要具体情况具体分析呀。tomcat6默认的配置是apr+http1.1,感觉这个配置还是相当合理的。呵,在这里也并不想比较哪个好点,只是希望有新同学再看到这些概念的时候不会乱了分寸。 浅析tomcat的nio配置 Tomcat 6.X实现了JCP的Servlet 2.5和JSP2.1的规范,并且包括其它很多有用的功能,使它成为开发 和部署web应用和web服务的坚实平台。        NIO (No-blocking I/O)从JDK 1.4起,NIO API作为一个基于缓冲区,并能提供非阻塞I/O操作的API 被引入。        作为开源web服务器的java实现,tomcat几乎就是web开发者开发、测试的首选,有很多其他商业服务 器的开发者也会优先选择tomcat作为开发时候使用,而在部署的时候,把应用发布在商业服务器上。也有 许多商业应用部署在tomcat上,tomcat承载着其核心的应用。但是很多开发者很迷惑,为什么在自己的应 用里使用tomcat作为平台的时候,而并发用户超过一定数量,服务器就变的非常繁忙,而且很快就出现了 connection refuse的错误。但是很多商业应用部署在tomcat上运行却安然无恙。      

在BO相关的报表开发项目中,一般使用BusinessObject Enterprise SDK来进行开发,这样可以更方便、快捷、高效。    BusinessObject Enterprise SDK(SDK分.NET和JAVA两个版本,本文介绍JAVA版本)是SAP公司提供的一套用来开发BO相关项目的一套API,可以实现与InfoView相似功能的开发。可以实现认证、用户和对象安全、计划、发布、服务器的管理和审计(Audit)、管理报表文档及各种对象的功能,还可以实现多个BO Server之间的协作,具有丰富的本地化语言包。本文主要讲述,如何使用BusinessObject Enterprise SDK进行开发,可以使用这种方式集成到WEB项目中。如果想实现其它更丰富的功能,请使用相关的SDK:     •Enterprise SDK – With the Enterprise SDK, you can create Java, .NET, or ASP web portal applications, view all report types, use report creation and

What is SAP HANA?SAP High-Performance Analytic Appliance (HANA) is a data warehouse appliance for processing high volumes of operational and transactional data in real-time. HANA uses in-memory analytics, an approach that queries data stored in