
Business objects often have an associated state specified by their property values (e.g., the Task object has Task.Status, which can be NotStarted, InProgress, etc.).
While this state can easily be changed by modifying corresponding property values, managing state transitions in a uniform way is not that simple.
With the State Machine, you can:
- Define a set of states and corresponding transitions, and associate them with a business class. You can do this in code or at runtime, as the State Machine module comes with predefined Views for state and transition management. The property whose values specify different object states can be either an enumeration-typed property or a reference property;
- Define Conditional Appearance rules and associate them with particular states.

When creating a state machine, specify its name, the target business class, and a property whose values represent the state of a business class instance.
This can either be an enumeration property or a reference property.
Property values are used as state markers.
Different states must use different marker values. Y
ou can now create states and transitions.

When creating a state, specify its caption and corresponding value of the marker property.
You can optionally specify a criteria that an object must satisfy in order to obtain the current state.
If the object does not satisfy the target object criteria, and a user tries to execute a transition to the state, the user is warned and the transition is canceled.

Finally, specify transitions allowed for the current state and, optionally, the appearance rules associated with the current state.
The specified appearance rules will be in effect while an object is in its + current state.
Finally, specify transitions allowed for the current state and, optionally, the appearance rules associated with the current state.
The specified appearance rules will be in effect while an object is in its + current state.


You can optionally check the Expand Actions In Detail View checkbox. In this instance, the target objects type’s Detail Views will contain separate actions corresponding to available state transitions.