A precondition is a rule that must be met before an activity can become pending (manual activities) or progress (automatic activities).

A precondition is the last step to be evaluated before the node becomes pending; dependents and others are determined first. An activity with a precondition is a "waiting" activity.

For example, in the Loan Application process, set a precondition on the Transfer Money activity (for transferring a loan amount into the applicant's account) to allow the activity to become pending only after the Signed_Loan_Agreement event is raised and recorded.

Once the signed agreement is scanned into a third-party Document Management System, this event precondition is met and the Transfer Money task can become pending. In this scenario, you would use relevant API methods to let TotalAgility know that an external event has fired.

Important When a precondition is set for an activity, the activity goes into an Awaiting Events status. This is similar to the Pending status except that the activity does not appear on anyone's work queue and no activity notification is sent. Everything else is done based on the activity becoming pending. For example, milestones are updated if set up.

Preconditions can be defined using process events. Preconditions can be satisfied by raising internal or external events. Once the precondition is satisfied, the activity automatically moves on.

Creating preconditions for a process event is slightly more complicated than normal decision conditions because it combines both variables and events (which may have the same name).

A precondition is only available for activities; they are not available for decisions or embedded maps.

During the lifetime of a job you can reevaluate preconditions to reevaluate any activities in a job that are in an Awaiting Events status. For example, you may reevaluate a precondition when you have manually changed the precondition value after a job has started, and you need all activities in a job reevaluated against the new precondition value.

See Add preconditions.