Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7305883
  • 博文数量: 444
  • 博客积分: 10593
  • 博客等级: 上将
  • 技术积分: 3852
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-09 15:26
文章分类

全部博文(444)

文章存档

2014年(1)

2013年(10)

2012年(18)

2011年(35)

2010年(125)

2009年(108)

2008年(52)

2007年(72)

2006年(23)

分类: 系统运维

2009-06-03 10:53:01

Cognos学习之六:前端与服务器参数传递
前端与服务器参数传递
Cognos的内容一般作为网页中某一特定的帧或者一个新开的窗口来展现的。我们可以在外部统一的用户交互界面中收集用户递交的查询条件(一般用JSP实现),在检查完用户输入的有效性之后,把这些参数按照Cognos约定的标准,以POST(或者GET)的方式传到某一帧中的Cognos的网关。Cognos网关就会把用户查询的结果返回到该帧中。
根据后端服务器的不同(PPES和IWR),有两种参数传递的规则。
调用PPES上的内容(CUBE\PPX)
        主要用到的参数变量有
参数名称        解释
DC        报表的展示方式,Q为动态HTML,R为PDF
E        访问内容在PPES上的发布位置
DM        需要过滤的维度Code值
FC        过滤的维度对应过滤值的category code
ZZ        表示参数传递结束

下面是一个接口调用的实例:
        假设服务器名称为:servername
        ppx报表发布到enterprise server之后在enterprise server的根目录下,名称为:testreport
        如果我们要对这个报表进行访问,可通过如下url对报表进行调用: cgi-bin/ppdscgi.exe?DC=R&E=%2Ftestreport
如果用户要求访问的是一个可动态分析的cube,那么相应的url为
cgi-bin/ppdscgi.exe?DC=Q&E=%2Fcubename
其中:%2F是一个URL使用的转意符,它的原型是符号“\”。
如果报表或Cube是发布于一个文件夹test中的,那么相应的url为:
cgi-bin/ppdscgi.exe?DC=R&E=%2Ftest%2Ftestreport

通过以上的接口可以访问到任意发布到Powerplay Enterprise Server的报表或Cube。如果要向报表或Cube传递过滤条件,可采用下面的调用标准。
        例如在Enterprise Server发布有报表ICBC,该报表开放了四个传参接口(Years,Products,Locations,Channles)。用户可以选择向其中的某几个接口传参。
        如果选择“Products”为“Outdoor Products”则调用
       
        其中&DM=Products                                                          //表示要过滤维度Products
&FC=0%09Outdoor%20Products                                        //表示维度Products的过滤值
               
        如果是过滤两个维度,例如过滤“Products”和“Locations”则调用

其中&DM=Products%09Locations                                        //维度间用%09分开
&FC=0%09Outdoor%20Products%091%09Europe        //维度值从0开始标号

如果是过滤三个维度,例如过滤“Products”和“Locations”及“Channels”则调用

其中&DM=Products%09Locations%09Channels                        //维度间用%09分开
&FC=0%09Outdoor%20Products%091%09Europe%092%09Independent
//维度值从0开始标号
在每条Url后添加&ZZ=X,表示参数传递结束。
注意:维度名称和维度过滤值都必须用各自的code属性,而不是name属性。
调用IWR上的内容
        IWR接受参数的网关是/cognos/cgi-bin/imrap.cgi,接受的参数可分为两类:
1)        报表参数:主要是指定IWR服务器,报表编号等
2)        条件参数:主要传递用户的过滤条件。

报表参数有
参数名称        解释
RID        这是 Report 的序号,从 IWR Server Admin 中可以查到
IU        这是保留参数,固定取值 IMRAP
CD        这是报表展现方式,R 是 Run,V 是 View
PSRV        这是保留字符串,可以从任意报表的 URL 中获得
       
条件参数一般根据IWR报表的用户prompt来订,一般需要和cognos PowerPrompts中Script Manager中的设定一致。

例如上面的Script Editor中<%GetUserVar(“t10”)%>,表示要向网关imrap.cgi传递条件参数t10,然后这个参数值会作为报表的Promptu值(通过语句SetPromptValue)来过滤报表的数据。
        下面是一个IWR参数传递的例子,为了说明问题,用一个HTML来传递需要的参数,实际环境中,往往是用JSP动态决定需要传递的参数。









PowerPrompts Interface Demo





       
         
  
         
  

          
       
         

  





阅读(2239) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~