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:

    1. Obtain the pxinsid and pxobjclass for the rules by viewing and searching the XML for the calling rule.
    2. In Admin Studio, click Resources > APIs.
    3. In the System management section, click the reassemble API.
    4. In Parameters section, enter the pxObjclass and pxinsid.
    5. Click Try it out!
    6. If the above procedure does not work:
      1. Create the fua/invalidation/filter/PropertyChange prconfig.xml setting and set it to false.
      2. Clear the temporary directory and caches, and restart the server(s).

    To truncate the assembled classes table:

    1. 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 where pzpackage 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’)

    2. Delete the PRGenJava directory on all nodes.
    3. 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.