|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我自己研究cognos的SDK,与自己的项目集成。想要实现将cognos数据立方体中的数据通过专业报表抽取的功能,并显示在自己项目前台。
我现在已经成功从以fm模型为数据源的专业报表数据抽取。如下:
public static void main(String[] args) {
CognosImplDao ws=new CognosImplDao();
HashMap htparams=new HashMap();
htparams.put("USER_TEL", "13335246657");
htparams.put("HOBBY_NAME", "股票行情");
//将报表包名、报表名、用户名、密码、命名空间、参数集,传入访问cognos报表的方法,在方法内以xml形式运行
//报表,返回xml格式字符串
String xmlStr= ws.sdk_m_visit("myy", "useruse4", "ky", "ky123", "opends", htparams);
test t=new test();
t.getxml(xmlStr);//自己的xml字符串解析方法
}
运行结果如下:
log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle).
log4j:WARN Please initialize the log4j system properly.
Logging on as ky in the opends namespace.
Running the report...
Report search path is:
/content/folder[@name='myy']/report[@name='uts']
...done.
程序调用cognos运行时间:938ms
程序得到数据时间:21265ms
...done.
<?xml version="1.0" encoding="utf-8"?>
<dataset xmlns="http://developer.cognos.com/schemas/xmldata/1/" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
<crosstab>
<values>
<value row="R1" col="C1">2</value>
<value row="R2" col="C1">21</value>
<value row="R3" col="C1">7</value>
<value row="R4" col="C1">2</value>
此处略去剩余xml内容。注意此报表用的数据源是fm建的模型。这样OK。
小弟我遇到的问题是:如果报表的数据源换成cube也就是数据立方体的话,我的方法就出问题了。。。
运行结果:
Logging on as ky in the opends namespace.
Running the report...
Report search path is:
/content/folder[@name='myy']/report[@name='useruse4']
获取字符串为:
org.dom4j.DocumentException: Error on line 1 of document : Premature end of file. Nested exception: Premature end of file.
at org.dom4j.io.SAXReader.read(SAXReader.java:318)
at org.dom4j.io.SAXReader.read(SAXReader.java:239)
at org.dom4j.DocumentHelper.parseText(DocumentHelper.java:215)
at cognos.test.getxml(test.java:47)
at cognos.test.main(test.java:40)
Nested exception:
org.xml.sax.SAXParseException: Premature end of file.
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.dom4j.io.SAXReader.read(SAXReader.java:302)
at org.dom4j.io.SAXReader.read(SAXReader.java:239)
at org.dom4j.DocumentHelper.parseText(DocumentHelper.java:215)
at cognos.test.getxml(test.java:47)
at cognos.test.main(test.java:40)
Nested exception: org.xml.sax.SAXParseException: Premature end of file.
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.dom4j.io.SAXReader.read(SAXReader.java:302)
at org.dom4j.io.SAXReader.read(SAXReader.java:239)
at org.dom4j.DocumentHelper.parseText(DocumentHelper.java:215)
at cognos.test.getxml(test.java:47)
at cognos.test.main(test.java:40)
小弟百思不得其解。。。。。。。。。。。。我就是换了个数据源而已,在Report Studio工具中运行正常,怎么在我的方法里就报错呢。。。
有用过此方法的前辈吗?如果有请赐教。是我的参数传递方法不对吗?
请高手指点,在此谢过!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|