- Field Name based on a sigoption condition by a property label
- Section or Section Header Name using parameter values
- Table column label using "Label Source ID" and "Label Attributes"
Maximo Works
Collection of Maximo works by Suren. There are many people without whose help this blog would not have been published. I owe a special debt of gratitude to my Parents, friends Babin, Geet, Ragavan for inspiring me and other generous Maximo bloggers.
Sunday, March 10, 2024
Set Label Names Dynamically in Maximo
Wednesday, February 14, 2024
Maximo Average Calculation Methods for Continuous Meter readings
Average = (Sum of all delta readings - Delta reading of earliest date) /
Average =
(Sum of all delta readings for Sliding days range - Delta reading of earliest date) /
( Last reading Date – Earliest reading date from meter readings Set )
Meter Readings Range starts from values greater than 31-Jan-2024 18:00
Average =
Sum of all delta readings for N sliding readings - Delta reading of earliest date /
( Last reading Date – Earliest reading date from meter readings Set )
Let us find the Average for 5 Sliding readings.
Friday, January 19, 2024
Outbound Object Structure Integration Customization Functions in Automation Script
- Outbound Object Structure custom processing can be performed during the serialization of Maximo business object (MBO) data into a json or XML message
- Inbound Object Structure custom processing will happen in inbound json or XML message before it is mapped to MBO business object data
from psdi.util import HTML
def overrideValues (ctx):
if ctx.getMboName() == "PR" or ctx.getMboName() == "PRLINE":
# remove html tags from pr and prline description
ctx.overrideCol("DESCRIPTION_LONGDESCRIPTION",
HTML.toPlainText(ctx.getMbo().getString("DESCRIPTION_LONGDESCRIPTION")))
def skipCols(ctx):
if ctx.getMboName()=='PRLINE':
# remove extra fields from outbound message to reduce payload size
ctx.skipCol(['RL1','RL2','RL3','RL4'])
def skipMbo(ctx):
if ctx.getMboName()=='PR':
if ctx.getMbo().getMboSet("PRLINE").isEmpty():
ctx.skipTxn()
elif ctx.getMboName()=='PR':
# skip MBOs that are COMP or in history status
if ctx.getMbo().getInternalStatus() == "COMP" or ctx.getMbo().getBoolean("HISTORYFLAG") :
ctx.skipMbo()
Thursday, December 21, 2023
Maximo Filter data using LOOKUPS whereclause tag
- Export the LOOKUPS.xml from Application Designer
- Open the xml file and add/modify new table section
- Add whereclause attribute on the table tag
- We can't use greater than and lesser than symbol directly in the lookup.xml, so replace them with equivalent characters.
- Condition in whereclause runs from Item table, so use item.itemnum inside the subquery
References : limiting-lookups-using-whereclause
Saturday, November 25, 2023
Maximo server host name for hyperlink in BIRT report
What? get the server hostname of the environment where the BIRT report is running.
Maximo BIRT framework don’t support implicit variable :HOSTNAME. This variable is handy on getting the server host name inside Maximo applications like communication template.
Tuesday, October 24, 2023
Maximo MBO Change Status Based on Other MBO Conditions using Automation script
Maximo creates an Action record when we create an Action launch point script and populates its parameters [Script Name, Launch Point Name, Action Name].
Friday, September 22, 2023
Invoke Direct Print of Maximo BIRT Report using Automation Script
- Create a custom field "Is Print" on non persistent object RECEIPTINPUT
- Use this field to select the records for printing on the "Select Ordered Items" dialog
- Create a script with attribute launch point on this "Is Print ?" field validation class code receiptinput.isprint.val.py .ITEMNUM field from RECEIPTINPUT object will be collected and stored in a field in PO object.
- Create 2 attributes PRINTLIST and NPPRINTLIST (non persistent) in PO object to store the list of items selected to be printed
- On "Before Save" of PO object, copy the values from NPPRINTLIST to PRINTLIST on an automation script of launch point PO with event as before save
- On "After save" event of PO object, trigger direct print of a report based on the values selected on the "Select Ordered Items" dialog code po.directprint.obj.as.py
Courtesy: Madhavan