我已经开发了一个报告,我可以在Eclipse BIRT上运行,无需任何问题进行预览。但是,当它导入Maximo并尝试运行它时,我得到以下错误:
There was an exception on the server. Check your report parameter values, or contact your system administrator, who can find additional details in the server log.
我检查了应用程序服务器日志,那里没有相关信息。我还在DEBUG级别的Maximo上启用了birt报告记录器,但我仍然没有收到任何错误。
我怎样才能找出阻止它在Maximo上运行的问题?
有时报告不能在多个浏览器上运行。尝试使用特定版本的Mozilla-Firefox。
如果您通过使用可以从Maximo服务器获取的Tivoli模板开始报告,我会很好奇。这些模板应始终与您将部署到Maximo中的新报告一起使用。它们包括Maximo将需要的必需参数和库链接,以及默认的DataSource。如果您没有使用模板开始,我建议您将这些项目从模板中复制到新报告中。
发现问题,事实证明Maximo不喜欢查询中的别名:/
是的,使用ALIAS
可以在SELECT
中使用字段名称,但不能在FROM
和表名中使用。
Maximo和BIRT通过隐藏参数相互交谈。其中两个参数是'where'和'appname'。当报表在应用程序之外执行时,'appname'用于确定要使用的MAXOBJECTNAME
,并使用'where'参数将信息传递给报表。因此,从StartCenter为WORKORDER
运行的报告将使用'appname'WOTRACK
来检索主表WORKORDER
在'where'中传递元素,如siteid,orgid。该报告采用此方法并在查询WHERE as workorder.siteid= ‘xxxx’ and workorder.orgid=’xxxx’.
中使用
如果SQL的主表是别名,则查询将失败,因为BIRT不知道该表已成为FROM workorder wo的别名
可以通过更改Maximo传递的位置来完成在from和to中使用别名的解决方案。例如,接收应用程序传递matrectrans,因此我们只需用别名替换对象名称并使用myWhere。 var myWhere = params [“where”]。replace(“matrectrans”,“m”); -W