No SQL, No Problem: How to Delete Multiple Records in Maximo
This blog post shows you how to combine Maximo's Application Designer, a simple Python automation script, Relationship, and a signature option to perform bulk deletions directly from the Maximo UI.
Hi folks, I am Vivek, an IBM Maximo developer. I just started to share Maximo's knowledge. Whatever I learn and whatever I have, I will encourage your support.
Have you ever faced the frustration of a Maximo escalation that just wouldn't process records, with no errors in sight? You're not alone. I recently encountered this exact challenge, and this blog post shares my journey of debugging a tricky escalation and building a custom configuration to clean up the mess it made.
The Problem: A Silent Escalation Failure
My goal was to create an action launch point script to handle a specific business requirement. The script worked perfectly when I tested it on an attribute launch point, which led me to assume it would function identically within an escalation. However, when the escalation ran, it failed to process any records. Even more puzzling, there were no errors in the UI or the session logs to guide my debugging efforts.
The Solution: Uncovering the Hidden Errors
To find the root cause, I needed to access the errors being generated by the script. Since I didn't have direct database access, I had do some adjustment. My solution was to leverage Maximo's database relationships to expose the hidden data.
I established a relationship between the WORKORDER
object and the ESCSTATUS
table. This ESCSTATUS
table is where Maximo stores the status of escalation runs, including any errors that occur. Using Application Designer, I brought this related data onto the Work Order application in a table format.
I could now see the errors in the Status Memo field for each record that failed to process since the mboSet is not getting fetched all sibling records of the work order but it was fetching on attribute LP. After a few adjustments to my script in setWhere, my escalation was working as expected!
A Clean-up Mission
My debugging process involved setting the escalation to run every 10 seconds. While it was great for testing, it also created over a thousand unnecessary records in the ESCSTATUS
table.
Since I didn't have database access for a bulk delete, I had to build a custom solution. This blog post will detail that solution, which can be invaluable when you have a similar requirement to delete multiple child records in bulk.
Here are the key Maximo components I configured to make it happen:
I used Application Designer to create a Signature Option and a Select Action Menu. Refer these Previous blog for detailed.
I set up a database relationship between the
WORKORDER
andESCSTATUS
tables.I wrote an Action Launch Point Script to handle the deletion logic.
Finally, I used a Security Group to control who could use the new feature.
Application Changes :
create New Signature option Application where you wanted to perform the delete activity. in these case i created on Work order tracking application
Option Name : DELETE_SELECTED_LINES Keep it consistent.
Create Select Action Menu in following Way
Table Properties For showing and select the selected records to delete.
Database Relationship: To Link the WORKORDER and ESCSTATUS Table.
Action Launch Point Script to Delete the line
Security Configuration - Grant Access to signature option.
Test Time:
Now it's time for the demo! In this walkthrough, I’ll show how the Maximo application configuration brings everything together. Using Application Designer, I’ve set up a table section to display relevant records, along with a multi-selection checkbox that allows us to select multiple entries at once.
I’ve also created a custom action that triggers an automation script designed to delete the selected records. This script handles the deletion logic efficiently, enabling bulk removal of entries directly from the Maximo Database. The result is a streamlined, user-friendly to cleaning up records with minimal effort in case we do not have the Database Access.