THE BPD Blog

From blogs to case studies to news, we love sharing our tips and tricks for asset management, cloud, IoT and smarter operations.

by | Jan 29, 2020

The ease and power of automation scripts in Maximo

Many of us in the Maximo space are appreciative of the power of automation scripts, however, might not be entirely familiar with various scripting languages like Javascript, Python and their API.

How is Python different to Java and Script?

Python created by Guido Van Rossum, was first released in 1991 and is currently powering big players like Netflix and Instagram. Guido compares Python to languages like Java or Swift but points out a critical difference between Python and the latter two. He contends that Java and Script are great resources for software developers and programming, but Python should be utilised by those who code to handle data.

~ Netflix and Instagram are both powered by Python ~

Jython – a product of Java and Python

Jython – a value-added version of Python is a language that runs on the JVM. Jython’s pivotal strengths include scripting as well as exploring and debugging code. Jython’s interpreted nature allows users to work simultaneously with Java without a compiler and manipulating live objects on the fly. Essentially, Jython has birthed from merging Java and Python together.

~ Jython is a product of Java and Python ~

One of the key advantages of using automation script is that it allows users to utilise the power of multiple languages. A simple example would be to check if an attribute in Maximo has been set. Sometimes when we call getString(“DESCRIPTION”) we receive a NULL value back and at other times we receive a blank string. In Java we must write both checks like getString(“DESCRIPTION”)!=null and getString(“DESCRIPTION”)!=””. In Jython, this process is simplified as we can just say mbo.getString(“DESCRIPTION”) and it will handle both scenarios.

Below are a few techniques in Jython that were used in a recent Maximo integration project.

1. DateTime formatting

The ‘external’ system would send their date in the format dd/MM/yyyy HH:mm, while Maximo’s MIF would only accept dates in the format yyyy-MM-dd’T’HH:mm:ss.
After conducting some research into this issue, we found that instead of using Python’s date time conversion API, we could use the good old Java’s SDF (Simple Date Format) in the script.

duedate = erData.getCurrentData(“TARGETFINISH”)
dateFormat = “dd/MM/yyyy HH:mm”
sdfServer = SimpleDateFormat(dateFormat)
cTime = sdfServer.parse(duedate)
erData.setCurrentData(“TARGETFINISH”,cTime)

Note that once I have parsed the string into date, all I had to do was set the value. I didn’t have to explicitly format it to yyyy-MM-dd’T’HH:mm:ss. What makes it possible to do that? Contact us for the answer

2. Split a string

The requirement was to split the value from Long Description field based on the sub-string ‘NOTES:’, and it was implemented using the split function of Python.

desc = erData.getCurrentData(“DESCRIPTION_LONGDESCRIPTION”)
desc1,desc2 = desc.split(‘NOTES:’,1)

3. Truncate a string

DESCRIPTION attribute of the object only accepts 100 characters, and hence the incoming value had to be truncated as below.

propdesc = erData.getCurrentData(“DESCRIPTION”)
propdesc = propdesc[:99]
erData.setCurrentData(“DESCRIPTION”,propdesc)

Automation scripting features in Maximo 7.6.1.1

A scripting editor has been embedded in automation script application. The latest version of Maximo has the following features:

  • Syntax highlighting and Line numbers for improved readability
  • Collapsible code blocks
  • JavaScript validations prior to save
  • Auto-complete reserved words, common functions, etc for Python and JavaScript
  • Supports some auto-completion of existing variables and methods
  • Tab will indent the code instead of taking you to the next Maximo Field
  • Supports Ctrl-z for Undo

If you’d like to learn more about automation scripting, here is an IBM link that gives you a list of web pages showcasing various other techniques. Any comments or further queries, please contact me via BPD Zenith.

Zoe Tattersall

Zoe Tattersall

Since 2013, we’ve been designing, creating and marketing things. And we’ve been business owners across a number of industries for far longer. That hands on experience allows us to provide that hard-to-find depth of real world knowledge. Whether you’re a growing business, a large brand looking for that bespoke touch or even an entrepreneur – we’ll help you thrive in today’s digital world.

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Maximo Inspection Forms extension for Procurement

Maximo Inspection Forms extension for Procurement

Since the release of Maximo Work Centers, Inspection Forms have gained popularity in the work management circles, however, this powerful tool seems to be under-utilized for Maximo’s purchasing module. The below is an attempt to harness the potential for procurement. A...

What’s new in IBM Maximo version 7.6.1.2

What’s new in IBM Maximo version 7.6.1.2

IBM released Maximo v 7.6.1.2 on July 24, 2020 to bring new and enhanced functionality to the user community of a leading, world-class asset management solution. IBM continues to assist the Maximo community optimise and enhance the performance of their assets while...

An Introduction to the Service Requests Work Center

An Introduction to the Service Requests Work Center

Service Requests Work Center The Service Request tool is used to create service requests, monitor the status of existing active requests as well as view completed requests. You have the ability to create SRs on your desktop computer, laptop computer, or mobile device....

Moving to Predictive Maintenance Today – For a Better Tomorrow

Moving to Predictive Maintenance Today – For a Better Tomorrow

Maintenance Strategy - Uptime and Reliability Focused For all asset intensive companies, regardless of industry vertical, maintenance strategy is key to achieving uptime and reliability targets.  While there are a number of methods of measuring the maturity of your...

Digitalization, Remote Operations and Smarter Maintenance  

Digitalization, Remote Operations and Smarter Maintenance  

As the effects of COVID-19 continue, it is reasonable to consider that the ‘new normal’ may be with us for some time. To preserve the long-term health of your organization in these unprecedented times, the value of data to inform activities cannot be overstated.  What...

Sign up to our free newsletter to explore emerging technologies, industry events and Maximo best practice.

Come with BPD Zenith to the future of Asset Management

Listen to your assets!

Most companies are aware of waste in their preventative maintenance efforts, but aren’t quite sure how to eliminate it.