Configuration Concept: Custom History Tracking
- Thomas Pham
- Mar 27
- 4 min read
Updated: Apr 1
In Maximo, there are several out of the box configurations that are meant to assist users with keeping track of their data history:
· Enabling E-Auditing to track when certain fields get changed.
· Work Logs to help note the details of a record such as a Work Order.
· Status History on records to record their progression.
Although each of these configurations are useful for their individual use case, they can be fairly restrictive in their implementation. E-Auditing stamps when a field is changed, but that history is often hidden in a database table and may not be easily discernible for a typical user. Work Logs are a convenient way for users to record their own notes, but that applies to the whole record, not just to a specific field. Status History is not available for custom records or records that are not status-enabled.
In this blog, we will present a rather simple Configuration Concept that we have implemented, which helps users to keep track of history in an accessible and versatile way.
Let’s start with, and expand on, an out of the box use case: Changing the Priority on a Work Order and recording the associated Priority Justification
In the native Maximo configuration, the Priority field on a Work Order can be updated to a new value at any time, and the user can optionally record a Priority Justification to describe why the Work Order has that Priority value. This justification can either be a single comment-like line, or an entire Long Description. If a user updates the Priority multiple times, the Priority Justification only reflects the most current state, and the history is then lost (or obfuscated in the E-Audit database table).
Applying our concept of Custom History Tracking for the Work Order Priority involves leveraging a fairly simple Automation Script in order to use the Justification Priority’s Long Description to automatically house the entire history of the Work Order’s Priority and its Justification. This is achieved by having an Autoscript automatically “stamp” the long description, appending the new Priority and Justification into the detailed history.
The result looks like this:

We can see that on the Work Order screen, the most recent Priority and Justification are shown in their respective fields (just like before). However, we can also now open up the Long Description on the Priority Justification and see the full history of the Work Order Priority. The Autoscript we put into place automatically “stamps” this history with the date and time the change was made, who made the change, and what changes were made. The changes are listed in descending order with the most recent changes listed at the top. In the example shown, the record started with a Priority of 0 because it was routine maintenance work. Since that time, it was escalated to Priority 1, and then de-escalated back to Priority 0 due to external circumstances which were noted. We can see from the example just how simple the solution is to use. For the users, they fill out the data as they have before, but now they also get to easily see the history of the field with the click of one button right next to the field.
For those keen on technical details, the Autoscript code to accomplish this is very simple and straightforward, leveraging a little bit of HTML formatting to make the history look nice in the dialog window. Here is the most basic subroutine example that performs this history tracking:

This mechanism can be easily adjusted to perform history tracking on any number of key fields as Maximo allows any field to be a “Long Description Owner”. Since we are leveraging an Autoscript to do the “stamping”, we can also be flexible with what information exactly gets recorded for each field being tracked.
Besides performing history tracking on key fields, we can also naturally extend this functionality to track the history of records themselves as well. This can be useful in cases where you may have records that are not status-enabled to have the convenience of a Status History.
Here, we have built a hypothetical custom Time Sheets application where users would record their hours worked. Naturally, a Time Sheet needs the ability to be submitted, approved, rejected, etc.. Below is an example of how we could leverage the same mechanism to record the history of a Time Sheet record as it moves through its different stages (like a status history).
Here, a supervisor is rejecting a timesheet that has been submitted to them and is noting the reason why:

Afterwards, the original user who created the timesheet has fixed the issue, making a corresponding comment when they re-submitted their timesheet. The “Comments” field on the Time Sheet shows the most recent note that was made for it, and we can open up the Long Description to see the full history of this record, similar to how we saw the history of the Priority field in the earlier example.

As we can see, this is a versatile mechanism and is flexible enough that it can be tailored each time to match the use case. In each implementation, the goal is to give users ease of access to the historical data that is crucial to their effective functioning.
If you are interested in discussing or need support with implementing this Configuration Concept for your Maximo instance, feel free to reach out to us at info@nxterainc.com.
Comments