Acess of Role to Object rules incorrectly bound to RS version
Access of Role to Object (ARO) rules created using Application Express wizard have been bound to specific ruleset versions on PRPC 7.1.4 and 7.1.5, when they are only supposed to have a ruleset name but not a version. This causes failure to any modification to those AROs. Since the ARO has a ruleset version, modifying it would mean having to do a save-as to an open or higher ruleset version. The save-as will fail because the validation considers there's already a ARO for that ruleset.
Upon creation of ARO - no error message but observed an incorrect behavior where a RARO has a ruleset version.
Upon saving of modified ARO - "Error: This instance already exists"
Steps to Reproduce
Create a new application using the Application Express wizard on Pega 7.1.4 or 7.1.5
Lock the ruleset and do a save as of the ARO to a higher ruleset
The root cause of this problem is a defect in Pegasystems’ Application Express wizard when creating a new application.
This bug has been addressed in Pega 7.1.6. Any ARO from previous version of PRPC (7.1.x) which was tied to a ruleset version, when they are migrated to 7.1.6 and being updated, the ruleset version information will be removed automatically upon saving of the ARO.
There is also a local change to remove the ruleset version by creating a custom activity and data transform as explained below for circumstances where upgrading to 7.1.6 may not be possible.
A) Create a data transform applying to Rule-Access-Role-Obj doing the following:
- Set .pyRuleSetVersion to ""
- Set .pzRuleSetVersionMajor, .pzRuleSetVersionMinor and .pzRuleSetVersionPatch to "-1"
- Update Page .pyToolBarSettings with substep Remove .pyVersionSecure
- Set .pxUpdateDateTime to @(Pega-RULES:DateTime).CurrentDateTime().
- Set .pxUpdateOperator to pxRequestor.pyUserIdentifier
- Set .pxUpdateOpName to pxRequestor.pyUserName
- Set the activity to receive the AccessRole and AccessToClass as the parameters.
- Opens a Rule-Access-Role-Obj instance that is known to be bound to a RuleSet Version with Obj-Open, passing the activity param as the pyAccessRole and pyAccessToClass. Exit if the Obj-Open fails.
- Applies the Data Transform created by step A.
- Saves (with "Write Now") the changed rule with Obj-Save. Again, Exit if the Obj-Save fails.
- Cleans up the clipboard by removing the clipboard page created at step B.2
0% found this useful