Properties - Completing the Create, Save As, or Specialization form

Records can be created in various ways. You can add a new record to your application or copy an existing one. You can specialize existing rules by creating a copy in a specific ruleset, against a different class or (in some cases) with a set of circumstance definitions. You can copy data instances but they do not support specialization because they are not versioned.

Create a new property by selecting Property from the Data Model category.

  • Use Action > Create rather than Save As to create most properties, because after you save a new property, you cannot change the Mode or certain other values on the form.
  • To create several properties in a single class quickly, use the Create Properties wizard, available from the right-click menu on the Application Explorer.

Key parts:

A property has two key parts:

Field Description
Apply to Select the name of the class in which you are creating the property.

For a property of mode Java Property, enter Embed-Java- or a class derived from Embed-Java-.

The list of available class names depends on the ruleset that you select. Each class can restrict applying rules to an explicit set of rulesets as specified on the Advanced tab of the class form.

Identifier Enter a name that starts with a letter, and use only letters, numbers, and hyphens, forming a Java identifier. See How to enter a Java identifier.

Avoiding duplicate names

As a best practice for good runtime performance, choose property names that are distinct and unique throughout your application. For technical reasons, having several properties named Amount in one inheritance path, even if these have different RuleSets, can slow the initial assembly of rules that reference Amount. Choosing more explicit names — such as PrincipalAmount, AmountAtRisk, TotalOrderAmount — will both prevent this performance impact and also help ensure that developers use the appropriate property.

When you click Create and open or Save As, and a property of the same name already exists in the inheritance path, a warning message appears asking if you want to create the property anyway. Properties that are duplicates of other property instances have an effect on caching, which can have a negative effect on system performance.

Notes on names

Property names may contain up to 64 characters. However, if this property is of mode Single Value and may prove useful for searching and selection in your application, choose a name not longer than the maximum column name length allowed by the database software supporting the PegaRULES database. This avoids issues that may arise later if the property is to become exposed as a database column. See exposed property.

Except when overriding a standard rule in an upwards-compatible way, choose a name that does not start with px or py. Property names that start with these letters are reserved. In your application, however, use of standard properties with names starting with px and py is encouraged. Your application can set and test values in these properties.

The pz prefix identifies standard properties that support Pega Platform internal operations. Do not directly alter these in your application.

Don't choose a name that matches a reserved page name or keyword, such as Top, Parent, Local, Param, or Primary. See Understanding page names and reserved pages.

Additional creation options

Field Description
Data Type Select a data type to create a Single Value property and accept default values for all fields except Type .
Access When Select a when rule if you are creating a TextEncrypted property type. The access when rule test and automatic encryption (or decryption) occur only as users interact with a form. In all other cases, your application must explicitly call the functions.

Reporting

If you are creating a top-level Single Value property in a concrete class, you can choose to optimize ("expose") the property as a database column now, before the system contains any values for the property.

If you are uncertain, leave these blank; you can expose the property as a column, and populate the column with values later. (This feature is available only on systems with a production level of 1 or 2, requires specific database account capabilities, and requires that you hold the SchemaPropertyOptimization privilege. See Platform generated schema changes.)

Field Description
Optimize this Property for reporting on (class) Select the top check box to expose the property for the class only.
Optimize this Property for reporting on (class) and its descendent classes Select the second check box to expose the property for the Apply to

class and all classes derived from this class.

Rule resolution