warning when do do saveas of property in higher ruleset
I am using PRPC 7.2.1 When we have a property in a locked lower Ruleset and we want to make some changes in that property say add edit validate rule or amth else, and we do a saveas of that property in higher ruleset, PRPC gives a warning popup saying
"A property of this name already exists for the chosen applies to class. It is either inherited from a parent class or in a different ruleset than the one chosen. Duplicate property definitions can negatively impact system performance.
Do you want to create anyway?"
Why do this come and is there a better way to update that property in locked RS than overwritting it in higher RS?
***Updated by Moderator: Vidyaranjan| Included Categories***
ah, can't PRPC handle the rule resolution for properties as well as it does for other rules... as during devlopemnt its common to get changes in properties... and renaming property would lead to unnecessary properties and also need update in all places where the property is used... which can be a big task..
Is it not possible to change the property in the lower ruleset, by unlocking it? If there is a reason to keep the old one, then I would seriously consider that the same reason to create a new property name for clarity and to avoid subtle bugs.
>>> is there a better way to update that property in locked RS than overwritting it in higher RS
I would think the better way is to never unlock the RS in your "higher" environments such as qa and prod, but instead to unlock the RS in your "lower" environment such as dev, do a checkout of your property rule, make the desired change, and do a checkin of the property. Then, after testing, re-lock the RS and use a rule-admin-product to import it to your higher env.
Actually it is not permitted to unlock the ruleset which are locked, either in dev or in higher env... so the question is why pega do it different just for properties whereas for all other rules it takes care automatcically in rule resolution...
This is just a guess. Since properties are referenced almost all the rules and PEGA keeps looking on each property for Database Column mapping for each property created and the relation between them is also monitored by PEGA rules. This makes it complex for rule resolution to rule out the invalid Properties. This is the reason PEGA provides this Warning only for properties. Again it’s just a warning so you can save as the property to do the desired changes.
They key activity involved in displaying / forming the warning is onBeforeDisplay. It is having a copy in almost all the rule specific classes ( e.g Rule-Obj-Property, Rule-Obj-HTML etc )
Upon saving as any rule on higher ruleset version , PRPC first calls the rule class specific activity and then calls the @baseclass one.
I can see for property , the activity OnBeforeDisplay ( under Rule-Obj-Property ) has some additional steps which is perhaps responsible for showing the warning. However the same activity under Rule-Obj-HTML does not have all those steps and thats the reason may be the warnings are not displayed.
This is my thought. But I am not sure the motive behind doing such design . Anil Vanaparthy any thoughts ?
Properties are used to hold values considered as column in table or BLOB. Pega advices no major changes to the existing column/property in general, and so the warning. To eliminate warning you can choose Extension as Status in the Rule availability area.