Skip to main contentCarbon Design System

All about Maximo scripting

Scripting was introduced in Maximo 7.5 based on the feedback from the user community who wanted to have a simpler yet effective way of customizing the product without having to go through system downtime and a steep learning curve.

While Maximo provides multiple customization points, most of them need JAVA coding skills to do any meaningful or logic -based customization. It would also require a deep knowledge of Maximo APIs as well as the Maximo internal architecture. That can often be a difficult task even for an experienced programmer.

Maximo scripting helps ease some of these concerns. Maximo scripting is primarily based on the Java Specification Request (JSR) 223 specification, which is a part of JAVA 6. This JSR allows a JAVA application, which is Maximo, to host script engines compliant with this specification. The engines that are supported in Maximo by default are:

Script Languages
Nashorn (JavaScript) which ships with IBM/Oracle JDK
Jython (2.7.2) which is included as part of Maximo

You can use either of these scripting languages to customize Maximo using the Maximo scripting framework. There are other popular JSR 223 compliant scripting engines like JRuby/Groovy and it should be fairly simple to add support for these by adding these engines [jars] to the Maximo application classpath. The scripting framework is able to detect those jars from the classpath and show them as available languages in the scripting application. However, currently Maximo has only been tested with the Nashorn-JavaScript and Jython engines and you may face issues implementing some of those JSR223 compliant engines.

In addition to the JSR 223 compliant engines, the scripting framework is extensible to support other custom engines as shown in the following architecture diagram:

Script Driver architecture

There is support for Maximo Business Rules (MBR) script driver, which can invoke MBR scripts. This is a non-JSR driver written to handle a custom scripting language (MBR) created just for Maximo. This shows the extensibility of the framework.