Deactivation between constraints

Previous Next

The Rules Engine deactivates between constraints at compile time. This happens:

When flat files are created.

If you run from repository, the first time a particular set of constraints is loaded on the client as a result of row events.

In this process, the optimal order in which to examine pre-store constraints is determined.

Example

This illustration shows a situation in which the Rules Engine knows that if a constraint A results in a correction, constraint B no longer needs to be considered for the same record. Constraint B is deactivated by constraint A:

MR_clip0072

On the basis of such dependencies, the constraints that are most likely to deactivate the greatest number of other constraints are evaluated first.

In general, constraint X deactivates constraint Y in the following situations:

The postcondition of X and the precondition of Y are mutually exclusive. If X succeeds for the current row, Y can no longer be applicable to this row.

The postcondition of X and the postcondition of Y are equivalent. If X succeeds from the current row, then there is no point in evaluating Y since the result would be the same.

The preconditions of X and Y are mutually exclusive. If X applies to the current row, then Y cannot apply to it and vice versa.

 

See also

Deactivation between incoming data, preconditions and postconditions

Update-on-self sorting

Preconditions and postconditions

Constraint evaluation order