如何调用已发布到Enterprise server的ppx报表(参数传递)
Cognos的内容一般作为网页中某一特定的帧来展现。我们可以在外部统一的用户交互界面中收集用户递交的查询条件(一般用JSP实现),在检查完用户输入的有效性之后,把这些参数按照Cognos约定的标准,以POST的方式传到某一帧中的Cognos的网管。Cognos网管就会把用户查询的结果返回到该帧中。
下面是一个接口调用的实例:
假设服务器名称为:servername
ppx报表发布到enterprise server之后在enterprise server的根目录下,名称为:testreport
如果我们要对这个报表进行访问,可通过如下url对报表进行调用:http://test/cognos/ cgi-bin/ppdscgi.exe?DC=R&E=%2Ftestreport
如果用户要求访问的是一个可动态分析的cube,那么相应的url为
http://test/cognos/ cgi-bin/ppdscgi.exe?DC=Q&E=%2Fcubename
其中:%2F是一个URL使用的转意符,它的原型是符号“\”。
如果报表或Cube是发布于一个文件夹test中的,那么相应的url为:
http://test/cognos/ cgi-bin/ppdscgi.exe?DC=R&E=%2Ftest%2Ftestreport
通过以上的接口可以访问到任意发布到Powerplay Enterprise Server的报表或Cube。如果要向报表或Cube传递过滤条件,可采用下面的调用标准。
例如在Enterprise Server发布有报表ICBC,该报表开放了四个传参接口(Years,Products,Locations,Channles)。用户可以选择向其中的某几个接口传参。
如果选择“Products”为“Outdoor Products”则调用
http://test/cognos/cgi-bin/ppdscgi.exe?DC=R&E=%2Ficbc&DM=Products&FC=0%09Outdoor%20Products&ZZ=X
其中&DM=Products //表示要过滤维度Products
&FC=0%09Outdoor%20Products //表示维度Products的过滤值
如果是过滤两个维度,例如过滤“Products”和“Locations”则调用
http://info/cognos/cgi-bin/ppdscgi.exe?DC=R&E=%2Ficbc&DM=Products%09Locations&FC=0%09Outdoor%20Products%091%09Europe&ZZ=X
其中&DM=Products%09Locations //维度间用%09分开
&FC=0%09Outdoor%20Products%091%09Europe //维度值从0开始标号
如果是过滤三个维度,例如过滤“Products”和“Locations”及“Channels”则调用
http://info/cognos/cgi-bin/ppdscgi.exe?DC=R&E=%2Ficbc2&DM=Products%09Locations%09Channels&FC=0%09Environmental%20Line%091%09Europe%092%09Independent&ZZ=X
其中&DM=Products%09Locations%09Channels //维度间用%09分开
&FC=0%09Outdoor%20Products%091%09Europe%092%09Independent
//维度值从0开始标号
在每条Url后添加&ZZ=X,表示参数传递结束。
注意:维度过滤值必须用该维度节点的code