10/03/2017

Disabling Status Changes With Records In Workflow

Technote (FAQ)


Question

In earlier versions of Maximo you could not change status if a record was in Workflow, does it work that way in versions 6 and 7?

Answer

Problem Definition
The implementer wishes to block any manual status changes when the current record is in workflow. In 5.2, manual status changes were always blocked. In Maximo Versions 6 and 7 it is configurable within a process design.

Solution
The solution lies in using two new actions in the process design to allow or disallow manual status changes. They are called OKSTATUS and NOSTATUS and are included custom actions.
By default, a process allows manual status changes in the owning application. This is a change from 5.2 and all previous versions of workflow which always blocked manual status changes for records in workflow.
To block status changes, you put the NOSTATUS action at an appropriate place in the process design. Typically you would place it on the arrow leaving the Start node so it will be in effect as soon as a record enters workflow. That remains in charge until its opposite action, OKSTATUS, is called, or until the process stops.
Once you put NOSTATUS on an action line you MUST have an OKSTATUS prior to the next status change within the process design. In other words, the NOSTATUS locks down the status completely from everyone, including the workflow itself, until you unlock it with an OKSTATUS action.

So, to accomplish a status change within workflow you want something like this hypothetical flow:

Start -- NOSTATUS action -->Nodes leading to a status change --->>
>>--Action Group---> Nodes continuing the workflow process---> Stop

The Action Group above should have this sequence:
1. OKSTATUS,
2. Your status change action, APPR etc.
3. NOSTATUS

For each place in the process you want to change a status you must use an Action Group starting with OKSTATUS. To re-lock the status, finish the Action Group with NOSTATUS. Action Groups are made in the Actions application.
For example, if your workflow process for workorders is going to have the ability to change the status on a workorder to APPR, INPRG, COMPLETE and CANCEL you would want to make 4 Action Groups, one for each status. The Action Group for APPR might be named WOAPPROK and be composed of these 3 actions:
OKSTATUS
WO APPR
NOSTATUS
And then use the Action Group WOAPPROK in the process wherever you would have used the action WO APPR. You would also make 3 more similar groups, perhaps calling them WOINPRGOK, WOCOMPOK, and WOCANCELOK.
Internally, when NOSTATUS has been set for a record in workflow, you will see in the Eventresponse table that the VALIDATEACTIONID column has an entry of PVSTATUS.

No comments:

Post a Comment