Process Execution
READY State Handling When a Queued activity is placed in a READY state, the activity is placed in a queue named after the queued activity and containing activities with the same name from multiple process instances. Client applications access the queue, and accept the highest priority activity on the queue. The priority ordering of activities in a queue can depend on the value of a queue prioritizing process attribute. If so, the queue is dynamically reordered whenever an activity is added to the queue and whenever the prioritizing process attribute changes value.
Transition to ACTIVE State The engine places a queued, READY activity in an ACTIVE state when a client application accepts the activity, then removes the activity from the top of the queue. When a client application accepts an activity, the engine evaluates the corresponding session against the activity’s assignment rule to confirm that the client application is eligible to perform the activity.
The engine provides the client application with the associated application dictionary item (a reference to the application or service needed to perform the activity, a description of the work to be performed, and any required process attribute data). The engine ensures that any required process attributes are locked so that no other session can access it during performance of the activity.
ACTIVE State Handling The engine performs any work specified in the OnActive method (if one exists in the process definition).
The client application that accepted the activity is responsible for completing the work associated with the activity. When the client determines that the work is complete, it informs the engine, which removes the activity from the session’s activity list and places the activity in a COMPLETED state.
The client can abort work by requesting that the engine place the activity in an ABORTED state, or the client can also reset the activity to a READY state (discarding any work performed on the activity, including changes in attribute values).
Subprocess Activities
Transition to READY State In this case the activity skips READY state and is placed directly in an ACTIVE state.
READY State Handling A subprocess activity passes directly from a READY to an ACTIVE state without being assigned to sessions.
Transition to ACTIVE State In the case of a subprocess activity, the engine places the activity directly in an ACTIVE state from a PENDING state. It skips a READY state altogether.