Reputation: 870
I've developed a report that I'm able to run on Eclipse BIRT to preview without any issues. However, when importing it into Maximo and trying to run it I get the below error:
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.
I checked the application server logs and there was no relevant information there. I also enabled the birt report loggers on Maximo at the DEBUG level and I'm still not getting any errors there either.
How can I pinpoint what the problem is that's stopping it from running on Maximo?
Upvotes: 1
Views: 6756
Reputation: 111
You can code you report so as to permit the use of aliases for tables quite easily. Typically an application is expecting to run against the default table identified for the application:
Check the maxintbname value within the maxapps table for the specific application you want to link the report to. This is the table that the primary select statement will refer to, and the partial 'where' clause that maximo passes to the report will be constructed with this in mind. (e.g. for the Work Order Tracking application - WOTRACK - the primary table is WORKORDER)
The Open method for the primary select within the BIRT report will build an appropriate SQL Select Statement and will append the where clause passed by MAXIMO to the end. Thus if you use an alias for workorder - this will not match with the incoming where clause supplied by maximo. The way around this is to code an additional include statement
e.g. rather than use the following:
select ... from workorder mydetails
where $where;
use something like:
select ... from workorder alias ....
where alias.workorderid in (select workorderid from workorder where $where):
(workorderid is the unique column containing an integer value. You can determine the appropriate unique column by looking at the MAXTABLS entry for the table you are referencing and checking the uniquecolumn value)
So this permits you to code a report which will run no matter what where clause maximo passes from the Work Order Tracking application.
If you now register this report against the PM application - it will typically file to run because the where clause passed in will relate to the PM application and not the WORKORDER object. This is where the appname parameter comes in - you can use this to add conditional logic to perform slightly different things depending in the calling application.
Typically the Ticket List Report uses this value to add an appropriate title depending on whether the report is invoked from the Service Request application, the Incident application or the Problem application!
:)
Upvotes: 1
Reputation: 31
Sometimes the reports does not run on several browser. Try to use a specific version of Mozilla-Firefox.
Upvotes: 1
Reputation: 1
The solution to using an alias in the from and to can be accomplished by changing the where that Maximo passes. For example the receiving application passes matrectrans so we just replace the object name with the alias and use myWhere. var myWhere = params["where"].replace("matrectrans","m"); -W
Upvotes: -1
Reputation: 11
Yes, using an ALIAS
can be used in the SELECT
with the field names but not in the FROM
and the table names.
Maximo and BIRT talk to each other through hidden parameters. Two of those parameters are ‘where’ and ‘appname’. When a report is executed outside of the application the ‘appname’ is used to determine the MAXOBJECTNAME
to use and pass information to the report with the ‘where’ parameter. So a report running from StartCenter for WORKORDER
would use ‘appname’ WOTRACK
to retrieve the main table WORKORDER
passed elements in the ‘where’ like siteid, orgid. The report takes this and is used in the query WHERE as workorder.siteid= ‘xxxx’ and workorder.orgid=’xxxx’.
If the main table for the SQL is aliases the query will fail because BIRT does not know the table has been alias to FROM workorder wo
Upvotes: 1
Reputation: 870
Found the issue, it turns out Maximo doesn't like alias' in queries :/
Upvotes: 0
Reputation: 1
I would be curious if you began the report by using the Tivoli templates that you can get from the Maximo server. Those templates should always be used with new reports that you will be deploying into Maximo. They include required parameters and library linkage that Maximo will require, as well as the default DataSource. If you did not use a template to begin, I would recommend copying those items out of the template into your new report.
Upvotes: 0