Pega provides two methods for creating new versions of an application. Each method preserves prior application versions. Application versioning is a way to differentiate current and past application configurations. Rule resolution can look through all the minor and patch versions for the current major ruleset.
Application components include the application ruleset stack — this contains the rules and data types used by the application. To version an application, you must version the application's rulesets.
The versioning methods are lock and roll and skimming. The act of using a version method begins a release cycle. Every major version, minor version, and patch version represents a release cycle. Both methods list the highest version, and offers to roll the ruleset to a still-higher version by default.
The person performing the lock and roll or skim must understand the application structure. A senior system architect (SSA) or lead system architect (LSA) is able to understand application structures.
Your choice of method depends on the type of application change. Lock and roll is best for incrementing patch versions. Skimming is better for minor and major versions.
Lock and roll
Small changes or patches are ideal for lock and roll. Application patches and minor updates usually involve updating rules. When using lock and roll, you create a new empty ruleset version. To update the configuration, you copy the necessary rules into the new ruleset version.
The rule in the higher ruleset version overrides the rule in the lower version. You specify the new version number and whether to update the application record and access groups to reflect the ruleset version.
Note: Minor and major versions require application record and access group updates. Patches usually do not need the updates.
If you roll 01-01-01 to 02-03-01, Pega will start at 02-03-01 and look back to all previous minor versions, 02-01-01, to find rules. As long as the rule is present in one of the versions, Pega can find it. If a rule is only in 01-03-05, rule resolution will not find it because it is in a different major version.
This graphic illustrates how a system architect (SA) would version an application. The lock and roll wizard creates an empty ruleset. The SA adds the appropriate rules to configure the new version.
In the previous example, an SSA ran lock and roll to create an empty 01-01-02 version. Then, an SA updated rule A in this version. When a user runs the application, they use the updated rule A and rules B and C from the 01-01-01 ruleset.
Then, an SSA ran lock and roll to create the 01-01-03 version. An SA copied rules B and C to this version to update them. Now, when a user runs the application, they use updated rules B and C from the 01-01-03 version and rule A from the 01-01-02 version. The copies of A, B, and C in 01-01-01 are all overridden.
Finally, the SSA ran lock and roll to create 01-01-04. An SA copied rule B to this version to update that rule again. So, when a user runs the application now, they use rule B from the 01-01-04 version, rule C from the 01-01-03 version, and rule A from the 01-01-02 version. The copies of A, B, and C in 01-01-01 are all overridden.
Note: In a production environment it makes sense to reserve some space between the patch versions e.g. to roll from version 01-01-01 to version 01-01-05. The three free versions could be later used for patches if needed. In the meantime the development could continue on version 01-01-05 and 01-01-02 , 01-01-03 or 01-01-04 could be used for urgent patches.
Skimming is the process of saving the highest version of a rule into a new, higher ruleset version. Skimming applies mainly to resolved rules. Skimming is useful when rule changes follow a logical sequence. The two types of skims are minor and major. The skim types correspond with the update types (major or minor/patch).
During a minor skim, rules are stored in a higher minor version, and during a major skim, rules are stored in a higher major version.
A rule's availability status determines if the rule is carried forward. This table defines the rules that are carried forward during a skim.
|Rule Availability Status||Carried forward?|
|Withdrawn||No - major update; Yes - minor update|
|No (not available)||No|
Blocked rules are carried forward because a blocked rule can block rules in other rulesets. You should maintain blocking relationships.
The key to skimming is you can start at a major version and skim all minor and patch numbers into a new version, or you can start at some minor version and work up from there.
Pega provides a skimming wizard. For each rule instance in a specified ruleset, the wizard identifies the highest-numbered version and creates a copy with the number you specify.
For more information on the ruleset wizard, view the Help topic About the Ruleset Maintenance wizard.