Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

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.

Error Messages

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

Root Cause

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:
  1. Set .pyRuleSetVersion to ""
  2. Set .pzRuleSetVersionMajor, .pzRuleSetVersionMinor and .pzRuleSetVersionPatch to "-1"
  3. Update Page .pyToolBarSettings with substep Remove .pyVersionSecure
  4. Set .pxUpdateDateTime to @(Pega-RULES:DateTime).CurrentDateTime().
  5. Set .pxUpdateOperator to pxRequestor.pyUserIdentifier
  6. Set .pxUpdateOpName to pxRequestor.pyUserName
B) Create a custom activity applying to Rule-Access-Role-Obj doing the following:
  1. Set the activity to receive the AccessRole and AccessToClass as the parameters.
  2. 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.
  3. Applies the Data Transform created by step A.
  4. Saves (with "Write Now") the changed rule with Obj-Save. Again, Exit if the Obj-Save fails.
  5. Cleans up the clipboard by removing the clipboard page created at step B.2

Published June 12, 2015 - Updated October 8, 2020

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us