
MBOs in Automation Scripts: Changing Status
- July 29, 2021
- Alex
- No Responses
- July 29, 2021
- Alex
- No Responses
In our previous posts in this series, we talked about how an MboSet is a collection of Mbo objects. This is analogous to a spreadsheet of data representing an MboSet, and a single row within that spreadsheet representing an Mbo. This article will discuss how to change the status of an Mbo that is stateful.
There are a number of objects that are able to perform status changes. These status changes control the flow of the object through a lifecycle or business process. For example, a work order flows from Waiting Approval to Approved to In Progress to Completed to Closed. Each one on these stages is a status in the application’s terms. As a result of transitioning from one status to another, certain business rules may be invoked that update other parts of the system. As an example, when a work order is approved, all parts required for that work order are reserved in Inventory.
Objects that have the ability to change state implement the StatefulMboRemote interface.
To change the status of an object, the changeStatus() method is called through the Mbo. For example:
The MXServer.getMXServer().getDate() variable in the changeStatus() call above is a Java Date and represents the date at which the newly set status is to take effect. The third argument is a string variable which allows the user to include a short note about this particular status change. The memo argument is optional – a null value may be passed. If an error occurs at any point, an MXException is thrown. The caller does not need to understand what business rules are invoked within the object – the goal is to hide such details and make it easy to perform the status change operation. Depending on the business rules coded into the object, it may not be possible to perform certain status changes. For example, it is not possible to move from CLOSE to WAPPR. A list of available statuses for an object can be retrieved by calling the getStatusList() method.# Change the status as of the given date
from psdi.server import MXServer
mbo.changeStatus("APPR", MXServer.getMXServer().getDate(), "A reason or memo")
Share This
Alex
Related Posts

As an IBM Maximo mobile solution provider, A3J Group consistently improves the functionality and features...

Pretend you are going to take a real vacation, two weeks in Spain with no work laptop. You have planned...
No posts found
No comment yet, add your voice below!