I think I already have the setup that you are suggesting. But its still not working.
As you pointed out the OOB initialize fires after the AutomationScript so whatever I do in the script gets overwritten.
We had to customize the OOB class to get rid of the default filter on Status. We would like to get rid of the Customization in MAS and instead use enhanced Automation Scripting. If its not possible to override the Initialize event would It be possible to bring over all the functionality from the Bean class into the AutomationScript?
Original Message:
Sent: 05-31-2026 12:59
From: Steven Shull
Subject: MSUG - Automation Scripts in Maximo Application Suite
This is an order of operations problem. To support the initialize event, the automation script is called via the DataBean class getMboSet() method which is triggered prior to the logic in the SelectMoreAssetsMoveBean class initialize setting their own QBE filter. If you set the script variables properly and have enabled bean scripting, your script should be firing, but it would be overridden by the bean class after. In most other events, you can intercept the event, call the out of the box logic as needed, and implement your own processing either before or after. But that's not possible with the initialize event.
In your scenario, I'd look at a custom event (either action launch point automation script or bean class event) that would launch the dialog and then override the value. IE instead of the menu calling selectmoreassets which loads the dialog, have it call an event you control (nvmselmoreassets). Then use that to launch the selectmoreassets dialog & override the QBE. It's not as clean but I think is the only option you have when you're trying to suppress a default filter
------------------------------
Steven Shull
Naviam
------------------------------
Original Message:
Sent: 05-29-2026 17:08
From: Gagan Deep Bansal
Subject: MSUG - Automation Scripts in Maximo Application Suite
Hi Steven,
Thank you for sharing great info on the Bean Scripts!
Can you please suggest why the below wont be working?
I have tried the below script to clear the default filter of Status="OPERATING" on the Select More Assets bean dialog. Class (psdi.webclient.beans.SelectMoreAssetsMoveBean)
It does not clear the Status filter.
I have confirmed that the script runs but the Status filter still remains on the dialog.
def initialize(ctx):
mboSet=ctx.getMboSetRemote()
mboSet.setQbe('status',None)

------------------------------
Gagan Deep Bansal
TAQA
------------------------------
Original Message:
Sent: 01-02-2024 10:23
From: Steven Shull
Subject: MSUG - Automation Scripts in Maximo Application Suite
I'm not sure I quite understand the use case of an action when there is no MBO in the dialog nor list tab. But regardless, without creating the signature option (because a signature option will lead to issues evaluating the signature option when there are no MBOs to evaluate) I tested this in the Asset application using the Maintenance Cost Rollup dialog since that is a dialog that can be opened with no records on the list tab. Next to the roll up all costs action, I added a new push button that invokes CUSTOMACTION.
My databean script looks like this:
def CUSTOMACTION(ctx):
ctx.setEventHandled()
ctx.closeDialog()
ctx.error("emx","test")
With the variables defined like this:

The push button in the dialog (NOTE: no signature options were configured in the advanced tab)

Then when I click the Custom Action it closes the dialog and throws the error (whether there are records or not).
------------------------------
Steven Shull
IBM
Original Message:
Sent: 12-31-2023 02:35
From: Amir Nadi
Subject: MSUG - Automation Scripts in Maximo Application Suite
Hi Steven,
Thanks for confirming this out.
I have a scenario that can't get it to work.
I have custom dialog built on top of custom none-persistent MBO using (mboname="MyCustomObj" ) . I have added an sigoption/action to PR application ( list tab) to open the dialog, note that the result table could have no MBOs at this stage. Now , I would like to execute a script to discard the dialog and do some business logic.
With the Action type automation script , this does not work so I was hoping for the bean/appbean script it could solve the issue, however, when assigning a custom event to the dialog button, it does not trigger the function in the bean script. the bean script is correctly configured as I am able to output some logs while initiating the dialog.
The dialog looks like below
<dialog id="CUSTOMDIALOG" label="Insert Into New Site" mboname="ZZ_CUSTOMOBJ">
<section id="CUSTOMDIALOG_SECTION">
<textbox id="CUSTOMDIALOG_SITEID" dataattribute="SITEID" lookup="site"/>
</section>
<buttongroup id="viewhist_2e">
<pushbutton default="true" id="viewhist_e2_1" label="OK" mxevent="CUSTOMACTION"/>
<pushbutton id="viewhist_e2_d1" label="Cancel" mxevent="dialogcancel" />
</buttongroup>
</dialog>
and the script DATABEAN.CUSTOMDIALOG is created with beanid and beanapp variables as below :
def CUSTOMACTION(ctx):
ctx.closeDialog()
ctx.setEventHandled()
Thanks in advance.
Amir
------------------------------
Amir Nadi
CCC
Original Message:
Sent: 12-28-2023 09:20
From: Steven Shull
Subject: MSUG - Automation Scripts in Maximo Application Suite
I tested it today and in fact, it is actually possible to add brand new events and fire even if there are no MBOs on the list tab.
Steps to recreate:
1) Create a new signature option (CUSTOMEVENT in my example) in the asset application. Do not change any of the advanced options like you would for a normal action based automation script.
2) Add the option created above to the Select Action menu.
3) Grant the newly created permission to your security group(s).
4) In the APPBEAN script (IE APPBEAN.ASSET in my example), define a method with the exact same name as your signature option.
def CUSTOMEVENT(ctx):
ctx.launchDialog("list_status")
ctx.setEventHandled()
This was a very basic example but confirmed it functions even if there are no records on the list tab.
------------------------------
Steven Shull
IBM
Original Message:
Sent: 12-28-2023 06:05
From: Amir Nadi
Subject: MSUG - Automation Scripts in Maximo Application Suite
I am too have the same requirements. :)
Thanks,
Amir
------------------------------
Amir Nadi
CCC
Original Message:
Sent: 11-21-2023 02:43
From: Andreas Brieke
Subject: MSUG - Automation Scripts in Maximo Application Suite
Hi Steven,
Sad, but not the worlds end :) I know that i can gain access to UI via service.webclientsession(), but i still need a mbo for it. I had a usecase in mind where i added an action to the list of an application, but this can't fire if no mbo is shown. Some of our users were confused when clicking on that button just did nothing and gave no answer. (This was an "Approve all SR" in VIEWAPPRSR)
------------------------------
Andreas Brieke
SVA System Vertrieb Alexander GmbH
Original Message:
Sent: 11-20-2023 14:50
From: Steven Shull
Subject: MSUG - Automation Scripts in Maximo Application Suite
These hooks are for the existing bean class events where you couldn't tie an automation script before. There's no need for this to add a new event. You can create an ACTION launch point automation script and interact with the dialog, call bean methods, etc. This is a poor example but this is an action launch point automation script example of how to get the databean from a dialog, determine the records selected in that dialog, copy them over to a field (in a real-world example, this should add to a one to many object), and then close the dialog.
session=service.webclientsession()
databean=session.getDataBean("emxselassets_table")
if databean:
assetSet=databean.getMboSet()
assetList=[]
selectedRecords=assetSet.getSelection()
if selectedRecords:
iterator=selectedRecords.iterator()
while iterator.hasNext():
assetMbo=iterator.next()
assetList.append(assetMbo.getString("ASSETNUM"))
mbo.setValue("EMXSELECTEDASSETS",",".join(assetList),mbo.NOACCESSCHECK)
service.closeDialog()
------------------------------
Steven Shull
IBM
Original Message:
Sent: 11-17-2023 03:48
From: Andreas Brieke
Subject: MSUG - Automation Scripts in Maximo Application Suite
Hi Steven,
many thanks for your presentation, there were some really interesting topics in it.
I have one question regarding the AppBean-Scripts i forgot to ask: If i have a script for e.g. ASSET APPBEAN.ASSET, can i only use/"overwrite" the existing functions like initialize or can we also create custom functions, like ... "cxAndreasWantsToDoAddACustomActionToUI"?
Regards,
Andreas
------------------------------
Andreas Brieke
SVA System Vertrieb Alexander GmbH