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:
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).
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
Original Message:
Sent: 11-14-2023 07:23
From: MORE Community Manager
Subject: MSUG - Automation Scripts in Maximo Application Suite
Following the successful completion of the Maximo Solutions User Group (MSUG) event, we are pleased to announce that recordings from each session will be made available to the community for extended engagement and discourse. We invite members to submit any further inquiries they may have for the speakers in the space provided below.
Session: Automation Scripts in Maximo Application Suite
Presented by: @Steven Shull, IBM
Access the Recording: https://register.gotowebinar.com/recording/9000796134191766017
Summary: Steven discusses automation scripts, focusing on new functionality and features added to the Automation Script framework in recent years. He mentions the importance of serviceability and the potential issues that can arise from mistakes in script development. He highlights new system properties that can help handle these issues, such as automatically closing sets and deactivating all automation scripts for troubleshooting. Steven also discusses additional sources for attachments, the ability to interact with bean classes, testing automation scripts, and the warning framework that helps identify problems in scripts. He provides examples and mentions useful resources for further information.
#MaximoApplicationSuite #automationscripts
#MaximoUserGroups
#MORECommunityWebinar
#MaximoUserGroups
#MORECommunityWebinar
------------------------------
MORE Community Manager
MORE Maximo
------------------------------