By default, each filter you write acts as a full filter. This means not only will the data not satisfying the Filter expression be filtered out of subsequent evaluations, but in cases where this data is a collection where no elements survive the filter, the parent entity will also be filtered out!

Here is the Testsheet with three juvenile drivers:

Figure 1. Ruletest for Full Filter

Notice two important things about this Ruletest's results: first, none of the Driver entities in the Input are older than 16, which means none of them survives the filter. Second, because the parent Policy entity does not contain at least one Driver that satisfies the filter, then the parent Policy itself also fails to survive the filter. If no Policy entity survives the filter, then rule Column 0 has no data upon which to act, so no Policy is assigned a startDate equal to today. The Testsheet's output, shown in the preceding figure, confirms the behavior.

Why would you want a Filter to behave this way? Perhaps because, if these are the only drivers seeking a policy, then there must be at least one driver of legal age to warrant issuing a policy. While you will probably find that the full filter behavior is generally what you want when filtering your data, it might be too strict in other situations.  If other rules on the Rulesheet act or operate on Policy, then a maximum filter gives you an easy way to specify and control which Policy entities are affected. 

Disabling a Full Filter

When testing, you might want to remove one filter. Instead of deleting the filter, you can disable it by right-clicking the rule and then choosing Disable, as shown:



After the filter is disabled, all applications of the filter are rendered in gray, as shown:



A disabled full filter is really no filter at all. You can perform the corresponding action to again Enable the filter.