Sunday, January 28, 2024

Maximo Workflows – Basics: Part 1

Lot of organizations have set of processes defined to cater to their business. In bigger organizations these processes are generally automated by means of some tools/applications but in smaller organizations these could be completely manual. IBM Maximo has provided a very powerful application called “Workflow Designer” to design and automate such processes. Workflows can be very simple for smaller processes, but they can become quite complex depending upon the business scenarios. Simple or Complex, Maximo workflows has capabilities to handle all sorts of complexity levels and still make the workflows readable and configurable so that it can be maintained in future. In this series of blogs, we will discuss about what are the capabilities of this application, what components it has and how to configure it.

Workflow – High level:

Maximo workflows are used to set up the approval processes, send notifications, perform actions, display instructions to the users, re-assign your work etc. Workflows are easy to configure with drag and drop functionality. With a little technical knowledge, even business users can easily create simple workflows and tests. Maximo has lot of applications, and the workflows can be configured for each of them (like workorder, assets, locations etc.). Workflows are configured at application level.

Workflow has two major applications, “workflow designer” and “workflow administration”. Workflow designer is where we configure/update the workflows. Workflow administration is used to perform admin functions such as stop/start the workflow, change the existing assignment of the workflow. Every workflow has a set of nodes configured for a specific task. Workflow creates assignments for a single or multiple users on which users can take an action and complete their assignments.

There are two types of workflows in Maximo. A main workflow (which is always enabled and activated) or a sub-workflow (called as sub-process in Maximo which is always enabled ONLY and not activated). Sub-processes are part of the main workflow. Each application can have ONLY ONE main workflow but can have multiple sub-processes. Sub-processes are generally configured for situations like:

·       You want to have a separate workflow for a specific department/site/unit.

·       Main workflow is too complex, and you want to structure it properly based on certain conditions/parameters e.g. “if condition 1 is true follow sub-process 1 otherwise follow sub-process 2”.

 

Any change in business requirement may need a change to be made in the workflows (main or sub-process depending upon the requirement). This can be done easily by creating revisions of the workflows and then activating/enabling the latest revision. This way workflow versions are also maintained, and a history can be seen around the changes made in the various workflow versions. In a nut-shell workflows are very simple to develop, update, test and put into the system to accomplish any business tasks.

 

In the next blog we will discuss workflow designer application and its related technical details. 

Request all the readers to provide your comments/feedback and let me know what would you like to see in upcoming blogs :-)

Thanks,
Suhas

Monday, January 22, 2024

Maximo - Automation scripts vs Java, what is better?

There always has been an open discussion around whether we should choose automation scripts in Maximo or write a java class to achieve the functionalities. IBM has done lot of work around the automation scripts and lot of enhancements have been incorporated lately, especially around bean classes, in Maximo Application Suite, adding support for the app and data bean classes. For more information you can check below URL:

https://moremaximo.com/discussion/msug-automation-scripts-in-maximo-application-suite

You will see lot of posts around this which helps you take some decisions around this and most of them are inclining towards use of automation scripts.

This makes sense since most of the functionalities now can be achieved through automation scripts instead of a java class where you must have a set up ready to write java classes (eclipse IDE or any other tool), testing requires build and deploy which adds downtime efforts etc. However, with these advantages over java, should scripts be always considered as the primary option for any developer?

Below are some of the pros and cons which I thought would be helpful for taking a decision.

Area

Automation Script

Java Class

Environment Set Up

Not Required. IBM Maximo has a built-in editor.

Need to set up Eclipse IDE or like tool for writing a class.

System Downtime

Not required. System reflects the changes automatically as soon as script is saved.

Need to build Maximo ear and deploy. Deployment requires server downtime.

Code Versioning

No tool is available as such for versioning automation scripts.

Lot of tools (Git Hub) available in the market for maintaining java class versions.

Complex business logic

Complex logic requires complex code and possibly a lengthy one. Code readability could be an issue if the code is lengthy. Even though you can write functions just like java, it is still difficult to read and debug a complete transaction at one go.

Complex business logic can be handled in one or more java classes by writing methods. It is also easier to navigate through the code and debug any complete transaction.

Simple/Medium implementation

Less code, better readability.

Less code, better readability but comes at a cost of downtime.

Control over development

Developers can add many scripts at will without giving much thought at times. Code versioning tool unavailability also makes it difficult to track the scripts and changes.

Better control over development since the availability of code version tools where code reviews can happen and approved before moving them up the stack.


Considering the above possibilities, automation scripts are a great way to handle most of the configurations in Maximo but java classes still needs some attention, especially, for complex business logic and development control where scripts may not be that efficient.

Thanks,

Suhas

Maximo Integration: Design Considerations

IBM Maximo Integration Framework (MIF) is a very powerful tool included as a part of Maximo product which helps in data exchange between Max...