Maximo Open Forum

 View Only
  • 1.  MSUG - Automation Scripts in Maximo Application Suite

    Posted 24 days ago

    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
    ------------------------------


  • 2.  RE: MSUG - Automation Scripts in Maximo Application Suite

    Posted 24 days ago

    There were a couple of questions I didn't get to answer on the call so I wanted to try and respond to them below.

    1) Question: Can we also import a pdf file as it is to attachments without converting the file to byte data?
    Answer: I believe this question is whether the REST API supports uploading a file without needing to convert it into base64. You can post an attachment in its native form (such as pdf) without doing a base64 conversion but it requires making a unique request per file. If you want to set data attributes on the record or upload multiple files simultaneously, then you need to use the documentdata feature which requires converting the file contents into base64. Our documentation on REST API and attachments and both examples can be found here: https://ibm-maximo-dev.github.io/maximo-restapi-documentation/attachment/attachment

    2) Question: Is there a place we can go to review these details? & Can you provide the URL for the wiki?
    Answer: Our wiki https://ibm-maximo-dev.github.io/maximo-autoscript-documentation/ is where we want to keep all this content. Some of this content hasn't been published to the wiki yet but I plan to add it. 

    3) Question: What about how to create logs for REST API?
    Answer: I don't know the entire context of what you're looking to track. We added the capability to track REST API requests in message tracking and document how to enable it here: https://www.ibm.com/support/pages/message-tracking-synchronous-requests. If there is more to the request of something specific you want to track that we don't let me know. Generically across the REST API, it would be difficult to add your own logging. But if you're trying to add additional logging to a specific object structure or REST API action we can talk about how to do that.

    4) Question: Does APPBEAN.APPNAME work for data bean as well or only App Bean?
    Answer: The script name for the appbean events will follow this format. However, if you are trying to intercept an event on a different data bean, your script name will be DATABEAN.SOMEUNIQUENAME. Then you need to define two script variables for beanid & beanapp. beanapp will be the uppercase value of the app (such as ASSET) and the beanid will be the ID where the datasource is referenced. Example:


    Trying to control the fetch of MBOs could look like below. 

    def initialize(ctx):
        mboset=ctx.getMboSetRemote()
        mboset.setQbe("metername","FIRE")

    Question 5: (I rephrased this to make the question clearer). How do you configure the automation script attachment functionality?
    Answer: We have documentation on it here: Creating scripts to manage attachments

    Ibm remove preview
    Creating scripts to manage attachments
    Maximo Manage can read or write attachments from any store that is registered with Maximo Application Suite.
    View this on Ibm >





    ------------------------------
    Steven Shull
    IBM
    ------------------------------



  • 3.  RE: MSUG - Automation Scripts in Maximo Application Suite

    Posted 21 days ago

    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
    ------------------------------



  • 4.  RE: MSUG - Automation Scripts in Maximo Application Suite

    Posted 18 days ago

    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
    ------------------------------



  • 5.  RE: MSUG - Automation Scripts in Maximo Application Suite

    Posted 17 days ago

    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
    ------------------------------