Occasionally a rule needs to be deleted from a application, or moved to another class or RuleSet. If the rule is stored in an unlocked RuleSet version, it is easy to delete it (and recreate it in the appropriate place, if desired).
However, if the application has been moved to another system, however, or the rule is in a locked RuleSet version, it is no longer possible to change or delete that rule. Instead, the rule must be withdrawn.
To withdraw a rule, you create another rule, which is marked as a Withdrawn rule. You must create this rule in a higher RuleSet Version than the original rule to be deleted/blocked (so it is chosen first in rule resolution), and you must define it with the same characteristics as the rule to be withdrawn:
- same “defined-on” (Applies To) class
- same qualifiers (Circumstance Property, Property Value, Date Property, Date Property Value, Start Date, or End Date)
- same RuleSet name
- same major version
Creating the Withdrawn Rule:
1. Review the rule to be deleted.
The example rule below is defined as follows:
Rule name (“Flow type”): PortletBasicProcess
Defined on (class): PegaSample-Task
Defined in RuleSet: PegaSample-IntSvcs
Defined in Version: 05-01-01
The developer decided that this flow is incorrectly-defined; it should actually be defined on the class PegaSample.
2. Click the Save As icon on this rule. The following dialog box displays:
3. In the Save Rule Instance dialog, verify that the values in the following fields are the same as the rule to be deleted:
- All Key Fields at the top of the form (in this example, “Type” “Applies To” “Flow Type”)
- RuleSet Name
- Circumstance or Date Range (if applicable)
4. In the Version dropdown field, choose a higher version than the rule to be deleted.
5. In the Available dropdown field, choose
6. Verify that the Status field is blank.
7. Click the Save As toolbar button.
When this rule is created, the entire rule appears grayed out, to show that it is Withdrawn:
In the upper right corner, the Availability shows
8. If this rule needs to be recreated in another class or RuleSet, create the new rule.
- This is a two-step process. Although this process is sometimes referred to as “moving” a rule, you don’t actually move the rule in one step. Instead, you must withdraw the rule in one place and recreate it in another. Also, do not create a Withdrawn rule that is defined in the same place (version, class, etc.) where the new rule should go. You must “withdraw” the old rule (exactly as it is defined), and then create a new, separate rule in the correct place.
- Match the class of the rule to be withdrawn. If you created the new Withdrawn rule in the class PegaSample, the “bad” rule would not be withdrawn, even though PegaSample-Task inherits from PegaSample.
- Match the RuleSet of the rule to be withdrawn. If you created the new Withdrawn rule in the PegaSample RuleSet, the “bad” rule would not be withdrawn; it must be in the PegaSample-IntSvcs RuleSet, even though that RuleSet has a prerequisite of the PegaSample RuleSet.
- The RuleSet Version of the rule to be withdrawn must match to the major version, and must have a higher minor or revision number. So in the example, the RuleSet version of this rule is 05-01-01. The Withdrawn rule can be created in 05-01-06 (or higher revisions), or 05-02-01 (or higher minor versions). It cannot be created in 06-01-01, because then the rule in 05-01-01 will not be withdrawn.