Monday, 22 June 2026

Due Date Calcuation in Maximo Using Formula

In this blog, let us see how to calculate due date without any automation script or class files.


In Maximo, there is configuration that can be used for calculation purpose. The configuration is "Formula" present in the database configuration application.


Now let us see using the formula, how to calculte the Overdue Dates.


1. Create  a non-persistent attribute. In our example, we have created non-persistent attribute in the Work order object.

2. Now create a formula for that non-persistent attribute. From the Select More Action menu of the Database configuration application. Click on the Add/ Modify Formula for Attributes.

Sample Foumla:

(now() -SCHEDSTART)/ (60*60*24*1000)

To calculate the elapsed date from Schedule Start date.













3. Now display the attribute in the application designer. As this is a non-persistent and calculcated field, we need to make sure that field is read only.















Result:


Tuesday, 31 March 2026

Remove HTML Tags in Maximo using Automation Script

In one of our previous articles, we explored how to remove HTML tags from Long Description fields in Maximo using regular expressions.

Maximo Script to Remove HTML Tags Using Regular Expression

In this post, we’ll look at a much easier and cleaner method using Maximo’s out-of-the-box utility library.

Maximo stores rich text (HTML) in Long Description and work log fields. However, in some cases, you may need,

  • Plain text for integrations
  • Clean output for reports
  • Simplified data for processing or validation

The below python automation script removes HTML tags and converts content into clean plain text,

from psdi.util import HTML

longDesc = mbo.getString("DESCRIPTION_LONGDESCRIPTION")
print(longDesc)

longDesc = HTML.toPlainText(longDesc)
print(longDesc)

Input:

<div>Item </div><div>Long </div><div>Description <br /></div><!-- RICH TEXT -->

Output:

Item Long Description

Saturday, 28 March 2026

Automatic Integration Error Reprocessing Using Automation Scripts

In IBM Maximo, integrations play a critical role in connecting external systems through the Maximo Integration Framework (MIF). However, it’s common to encounter transactions that get stuck in ERROR / HOLD status within the Message Tracking and Message Reprocessing applications.

Some of the common reasons for integration failure include:

  • Temporary network issues during outbound communication
  • Incomplete or delayed data from external systems
  • Timing issues between integrated systems

Interestingly, many of these transactions can be successfully processed later upon retry without any changes to the payload.

By default, Maximo attempts to automatically reprocess failed transactions up to 5 times, depending on the configuration.

However:

  • Some transactions may require more time (minutes or even hours)
  • The default retry limit may not be sufficient
  • This leads to manual reprocessing, which is repetitive and inefficient
Instead of manually retrying transactions, we can automate the process using an Automation Script + Cron Task.


Automation Script (Vanilla Script – No Launch Point)

Script Name: MAXINTERR_REPROCESS
Language: Python

from psdi.server import MXServer
from psdi.security import UserInfo

mxServer = MXServer.getMXServer();
userInfo = mxServer.getSystemUserInfo();

maxIntErrorSet = mxServer.getMboSet("MAXINTERROR", userInfo);
maxIntErrorSet.setWhere("status='HOLD' AND DELETEFLAG=0 and EXTSYSNAME = '<<External System Name>>' and IFACENAME = '<<Interface Name>>'");
maxIntErrorSet.reset();

if (maxIntErrorSet is not None and not maxIntErrorSet.isEmpty()):
	maxIntErrorSet.selectAll();
	maxIntErrorSet.processSelected(maxIntErrorSet.getSelection(), False);
maxIntErrorSet.close();

Replace the following with actual values:

<<External System Name>>

<<Interface Name>>

 

Cron Task Configuration

To automate execution, configure a Cron Task:

  • Create Cron Task

Cron Task Name: MAXINTERR_REPROCESS

Class Name: com.ibm.tivoli.maximo.script.ScriptCrontask

  • Create a new Cron Task Instance
  • Set the schedule (based on need)
  • Add Parameter

Script - MAXINTERR_REPROCESS