In a previous post on How to schedule a date parameter report, I included in a footnote on the example report I used that the report would be classified as a Type 3 report.
5. This report fits the Type 3 definition (see pg 28), so make sure to check the box ‘Use Where Clause’.
I got several follow up questions on what is a Type 3 report and what other types of reports are there. The report types actually comes from IBM KB document IBM Maximo Asset Management / Designing v7 Reports. In the document, IBM describes three types of reports:
- Type 1 - Parameterized Reports
- Type 2 - Application Reports
- Type 3 - Paramter & Application Reports
Type 1 - Parameterized Reports
Type 1 reports require the user to enter parameter value(s) into the request page for the report to run. The parameters may, or may not, be required and could include values like SiteID, Person, record status, date fields, etc. Once the values are collected, the report will use the parameter values to filter results against the entire Maximo database. This occurs even if the user has run a query, or entered a custom Where Clause, in Maximo to limit the record results.
For example, in the Inventory Adjustment Transactions report, the parameters are passed from the request page and then used to modify the [Where] parameter itself:
Example of Type 1 reports: Security Group Access, Inventory Adjustment Transactions,
Type 2 - Application Reports
Type 2 reports have no parameter values and will utilize any selected records, or custom Where Clause statements from the Maximo application, and pass these back to the report for the records that will displayed.
For example, in the Work Order List report, the report just uses the conditions passed from the Maximo application to the [Where] parameter.
Example of Type 2 reports: Work Order List, Purchase Order List, QBR reports. [1]
Type 3 - Paramter & Application Reports
Type 3 reports utilize a parameter and the selected records to help filter report results. To do this, the report will have the ‘Use Where Clause’ flag checked when the report is imported into Maximo.
When the ‘Use Where Clause’ is checked, Maximo enables the report to use both the parameter value(s) and the Where Clause that is passed from the Maximo application. A report has to have at least one parameter before Maximo will allow the ‘Use Where Clause’ checkbox.
Example of Type 3 reports: Custom BIRT reports or modified OOB reports.
Parameter Impact
One way to see this in action is to show what [Where] parameters are used in a report. QBR reports do this happens automatically, but you can add this to a custom BIRT report, or modify an existing report, with the following:
On the report footer create a new Data element, with a String data type.
In the Data element’s Expresssion copy/paste the following expression:
if (!BirtStr.trim(params[“where”]).equalsIgnoreCase(“1=1”)) { params[“where”]; }
Save the report and import it into Maximo.
Now when the report is run, the footer will include any dynamic clauses that were passed from Maximo, to the BIRT report, when the final output of the BIRT report is generated. So going back to the example report in the How to schedule a date parameter report, if I use the following Where Clause in Maximo:
(historyflag = 0 and siteid = 'BEDFORD' and getdate() - orderdate > 90)
The report will pick up that filter and use it when the report is run, as shown in the report footer.
Reference Information
More information can be found in the following documents:
- IBM Maximo v7 Report Planning Guide
- IBM Maximo v7.1 Report Development Guide
- IBM Maximo v7.5 Report Developement Guide (BIRT 2.3.2)
- IBM Maximo v7.5 Report Developement Guide (BIRT 3.7.1)
- IBM developerWorks - Dynamic Date Range Paramgters
- IBM devloperWorks - Parameterized Reports
Got any questions? Feel free to hit me up on Twitter at @MyGeekDaddy.
-
QBR Reports not using a Filtering field. ↩