More about Properties
Standard properties—meaning all the properties in the Pega-RULES, Pega-IntSvcs, Pega-WB, and Pega-ProCom RuleSets—have names that start with px, py, or pz.
These three prefixes are reserved. You cannot create new properties using these prefixes; however, you can override these standard properties with a custom property of the same name (without changing the property mode or type ).
Prefix | Meaning |
---|---|
px | Identifies properties that are special, meaning that the values cannot be input by user input on an HTML form. |
py | Properties with names that start with py are not special, meaning that values can be input by users on an HTML form. |
pz | Properties with names that start with pz support internal system processing.
Users cannot directly manipulate pz properties. Your application
may examine these values, but do not set them. The meaning of values may change with
new product releases. |
Updating properties
If you update or override a property of mode Single Value
, Value
List
or Value Group
, you can change the type, but only to a
narrower type. This does not cause any runtime conversions of property values.
The following table shows the changes that are allowed.
To type |
Date Time
|
Date
|
Time of Day
|
Integer
|
Decimal
|
Double
|
True or False
|
Text
|
From type | ||||||||
DateTime
|
||||||||
Date
|
||||||||
Time of Day
|
||||||||
Integer
|
||||||||
Decimal
|
||||||||
Double
|
||||||||
True or False
|
||||||||
Text
|
Revalidating after property updates
If you override or update a property, you must ensure that saved instance data (if any) conforms to the revised property definition. This might require a once-only conversion activity.
In addition, if you override or update a property by changing any of the following fields, certain rule types that reference the property might not automatically reflect the change at runtime.
- Property Mode on the General tab
- Property Type on the General tab
- Table types or contents on the General tab
- Expected Length on the Advanced tab
- Page Class on the General tab, for page list or page group properties
- For properties with Property Type of
Decimal
and the pyDecimalPrecision qualifier, the decimal precision
The impacted rule types are validate rules and most stream rules (harness, section, paragraph, flow action, HTML, and HTML Fragment). Use the following procedure to update rules that reference the updated property.
- Open and save the rules that reference the property, if the rules are not in a locked ruleset.
- If the rules are in a locked ruleset and they are non-stream rules such as activities,
data transforms, and so on, reassemble the rules either using the reassemble API or by
truncating the assembled classes table.
To use the reassemble API:
- Obtain the pxinsid and pxobjclass for the rules by viewing and searching the XML for the calling rule.
- In Admin Studio, click .
- In the System management section, click the reassemble API.
- In Parameters section, enter the pxObjclass and pxinsid.
- Click Try it out!
- If the above procedure does not work:
- Create the
fua/invalidation/filter/PropertyChange
prconfig.xml setting and set it to false. - Clear the temporary directory and caches, and restart the server(s).
- Create the
To truncate the assembled classes table:
- Truncate
pr_assembledclasses
.If you do not want to truncate the entire assembled classes table, you can delete the targeted stream assemblies that reference this property as follows:
Delete from
pr_assembledclasses
wherepzpackage in (‘com/pegarules/generated/corr’, ‘com/pegarules/generated/flowaction’, ‘com/pegarules/generated/html’, ‘com/pegarules/generated/html_fragment’, ‘com/pegarules/generated/html_harness’, ‘com/pegarules/generated/html_paragraph’, ‘com/pegarules/generated/html_property’, ‘com/pegarules/generated/html_section’ , ‘com/pegarules/generated/xml’)
- Delete the PRGenJava directory on all nodes.
- Restart all nodes.
- For stream rules, use the procedure for truncating the table above.
Password types and encryption
Properties of type Password
correspond to the HTML element <INPUT
TYPE="PASSWORD" >, and so do not echo when typed into a browser form. However, on the
clipboard, the value of a property of this type may be in clear text or encrypted, depending
on how the value was set.
Normal assignments to a Single Value
or Java Property
property of type Password
by the Property-Set similar methods create a
clear-text value on the clipboard. To store an encrypted value, use the property of type
TextEncrypted
.
Deleting properties
Do not delete a property that is referenced in other rules. Check whether a property is the target of a Declare Expressions rule before deleting it.
Large property value storage
Your application does not restrict the length of property values. However, you can set the size limit for a property value by setting the Max length field on the Advanced tab of the Property form. Long properties, especially if you have thousands of them in memory, can affect performance, including memory and database traffic. The JVM memory limit for the system must be large enough to handle the number of long properties that are processed.
In addition to performance considerations, you might not be able to expose properties with long values as database columns, depending on your database software's aggregate size limit for exposed columns. If a property exceeds your database's aggregate size limit, making the property too long to expose as a database column, consider dividing the property and storing it as a number of shorter properties.
If your property is exposed, set the property value size in the Max length field to equal the maximum size of the database column to ensure that your data fits into the column.