Printing Class Details When Debugging in Maximo

Sometimes when I am asked to look into some issue or I have to debug some out of the box functionality in Maximo, I start wondering where to start.

Logs are one good place to start debugging. Turning the logger level of appropriate loggers to debug prints lots of information in the system out (which can be a performance overhead also so be cautious).

To print more specific details of the class that is writing these logs there is a tweak that can be done in the logging application.

In the logging application, in the Manage Appenders dialog in the select action, select the console appender. In the table details, update the Conversion Pattern to

–CLASS -> %C LINE -> %L %d{dd MMM yyyy HH:mm:ss:SSS} [%-2p] [%s] [%q] %m%n

Logger - Manager Appender

This will print the classname and the line number for all the log entries made in the systemOut.log and maximo.log, which will look something like this –

Logger - SystemOutLog

This can be the starting point for your debugging. If you created custom appenders, this tweak can be implemented on the custom appenders leaving the console appender as it is.

Lookup With WhereClause

Did you know that you can create lookups in Maximo (in the lookups.xml) with whereclause and attach it to an attribute in application designer. The attribute doesn’t require a domain to be attached to it to show the data in the lookup .

Lookup_WhereClause

The lookup will simply query the object mentioned in the mboname with the whereclause and display the result. The only drawback to this approach is that there is no validation on the attribute – any value entered in the field would be accepted without any validation.

The where clause also accepts run-time variables such as :user.

This is useful in places such as report request pages where a parameter needs to be passed to the report with a lookup which shows much filtered data then is usually shown in the lookup in the application.

For instance this asset availability report request page has a parameter as Tool which only shows items of type tool and not all the items.

ReportRequestPage_ToolLookup

Configuring Download Limit in Maximo

Did you know that there is a property in Maximo to limits the number of records downloaded from the list tab, dialogs and tables. The webclient.maxdownloadrows in system properties can be used to achieve this. The default value for this property is set to -1.

webclient.maxdownloadrows

A setting of -1 will result in unlimited download records from the List tab, however it will result in any download from a lookup dialog to default to the out of the box limit of 200 rows.

Note that the same limit of 200 rows will apply to the tables in the application (table like Subassemblies table in the Spare Parts tab of the Asset application)

A setting higher than 200, for example 500, will result in the limit being set at all the places – list tab, dialogs and tables.

This property is Live Refresh enabled so it doesn’t require a server restart to take effect.

Caution – Setting the limit to too high a value may result in performance issues and sometimes the JVM may go out of memory specially if the table being downloaded has lots of related columns (columns shown using relationship).