Property form: Completing the General tab - Value modes

Use this topic to Complete General tab fields that appear when you create a property of mode Single Value, Value List or Value Group. For information on choosing a property mode, see Completing the General tab — Choosing a mode.

  1. About
  2. New
  3. General
  4. Advanced
  5. More...

Selecting the Property Type

The Property Type determines the kind of data that values of the property represent, and can affect the format and allowable characters in the value.

Note: Choose the Property Type carefully. After you save a property, you cannot later change its type except in a few special cases, even if no instances or pages have a value for the property. See Changing Property Types and Revalidation is necessary after certain property updates in More about Properties .
Type Description

Text

Select Text to allow the property to hold text strings that can contain tabs, carriage returns, and line feeds.

When you use an activity or an HTML form to set the value of the property, the value can contain any graphic characters in addition to tabs, carriage returns, and line feeds.

Use the Text Property Type if a user may enter the value in a text area of an HTML form.

Identifier Select Identifier to allow the property to hold a text string that does not contain double quote, tab, carriage return or line break characters.
Note: Do not confuse the Identifier type with the more restricted Java identifier values. To limit the values of a property to those that the Pega Platform accepts as Java identifiers, set the Type to Identifier and also set the Validate field (on the Advanced tab) to JavaIdentifier. See How to enter a Java identifier.
Password Select Password to allow the property to hold a password.

The values of properties with this Property Type are always encrypted when stored in the database. When on the clipboard, the values may appear as clear text (not encrypted), until the page containing the property is validated.

The value can contain only legal graphic characters. Tabs, carriage returns, and line feed characters are not allowed.

Note: Do not confuse the Password type with the TextEncrypted type, which has encrypted values even when on the clipboard; clear text values are visible only if a Rule-Access-When rule evaluates to true. See Implementing and using the TextEncrypted type.

You can prevent any text field from echoing when typed into an HTML form using the PASSWORD input type:

<INPUT TYPE="PASSWORD" NAME=...>

This HTML does not cause any encryption. This native HTML feature is not related to the Password Type.

Integer

Select Integer to allow the property to hold an integer.

When you specify the value in your later configuration, use any sequence of digits for the value. You can precede the digits with a plus sign (+12) or a minus sign (-12).

Double

Select Double to allow the property to hold a 64-bit floating point value.

Decimal

Select Decimal to allow the property to hold a decimal quantity.

Your property can reference the standard property qualifier named pyDecimalPrecision to fix the number of digits the system keeps after the decimal position in values of this property.

DateTime Select DateTime to allow the property to hold a UTC (Coordinated Universal Time) value. The value is essentially the same as Greenwich Mean Time (GMT), used for the synchronization of computers on the Internet.

Internally, a DateTime value is stored in the format YYYYMMDDTHHMMSS.QQQ GMT where T and GMT are literal characters, YYYY represents a year, MM is a month, DD is a day, HH is an hour value between 00 to 23, MM is a minute value between 00 and 59, SS is a second value between 00 and 59, and QQQ is a millisecond value between 000 and 999. See Understanding the Date, Time of Day, and DateTime property types for more about this type.

Users need not enter DateTime values in this format, as shortcuts and alternative entry formats are available.

Date Select Date to allow the property to hold a calendar date. Internally, a date is stored as an eight-digit text value, in the format YYYYMMDD. For example 20171123 represents November 23, 2017. No time zone is implicitly associated with a date.

Application users are not required to enter Date values in this format, as many shortcuts and alternative entry formats are available.

As a best practice, use DateTime rather than Date for properties that are part of work items, assignments, or other persistent objects in your application. Avoid using Date property types in persistent objects, such as work items or assignments, even if your application is used in only a single time zone, unless a time zone value is also stored in another property of the object. See Understanding the Date, Time of Day, and DateTime property types for more about this type.

TimeOfDay Select TimeOfDay to allow the property to hold a time of day at the seconds level, not associated with a time zone.

Internally, a TimeOfDay value is stored as six digits in the format HHMMSS, with two digits for the hour, two digits for the minute, and two digits for the second.

For example, 000000 represents midnight and 120000 identifies noon. The value 235959 identifies the second before midnight.

Application users are not required to enter TimeOfDay values in this format, as shortcuts and alternative entry formats are available.

As a best practice, use DateTime rather than TimeOfDay for properties that are part of work items, assignments, or other persistent objects in your application. See Understanding the Date, TimeOfDay, and DateTime property types for more about this type.

TrueFalse Select TrueFalse to allow the property to hold values representing true or false. When you specify the value in your later configuration, you can enter true, false, or any of these values:
  • 1, -1 or Y for true
  • 0 or N for false

A TrueFalse property with a null value ("") can be saved into the PegaRULES database, but this is not a desirable practice. To avoid possible confusion and errors, choose a value "true" or "false" when initializing a TrueFalse property using a data transform or through other means, as appropriate to the business situation.

TextEncrypted Select this type to implement encryption for the value. See Implementing and using the TextEncrypted type.

The TextEncrypted type is differnt from the Password type. For TextEncrypted values, clear-text values are visible only if a Rule-Access-When rule evaluates to true.

Using Linked properties

For a Single Value mode property of type Text, you can link the property to a single instance of a different, concrete class. The information on this tab describes how the Pega Platform forms a key to that instance from the value of this property and possibly the value of other properties. The other concrete class is known as the target.

In many rules, use of linked properties can improve runtime performance by eliminating multiple requests to the PegaRULES database to retrieve the target instance. Use of a linked property can also eliminate the need for an activity to open the target instance. For a configuration example, see PDN article How to use linked properties to display data from related objects.

The relationship defined by the property and the target fields is similar to an SQL JOIN or foreign-key relationship among database tables. The relationship allows the Pega Platform to retrieve (for display only, without a lock) the target object at run time.

In property references on sections, harnesses, and flow actions, you can include values of properties from the linked object, using property references of the form:

.LinkPropertyName.TargetPropertyRef

where .LinkPropertyName is the Property Name field of the linked property, and PropertyRef is any property reference in the Linked Class class. These values must be read-only.

Do not reference properties of the target in reports, activities, or data transforms.

Field Description
Linked Property Select to indicate that this property is a linked property, with values that correspond to all or part of the internal key of a unique instance of a concrete class.
Linked Class For a linked property, identify a concrete class, one instance of which is to be accessed through the value of this linked property.
CAUTION:
Do not link to a rule (any instance of a concrete class derived from the Rule- base class.)
Linked Mapping Identify one or more properties (in the Source Property column) that at run time contain values that together define all parts of a key to a single, unique instance of the objects in the Linked Class class. To assist in defining this mapping, the form identifies the properties that form the key to the linked class in the Linked Class Key column.

If each value of the linked property forms the entire key to the instances of the linked class, enter the property name (the value you entered in the New dialog) in the Source Property column. If the values of the linked properties form only part of they key to instances of the linked class, complete the Source Property column by identifying the properties that supply the other key parts.

Example

Organization Divisions (instances of the Data-Admin-OrgDivision class) have two key parts, defined by properties pyOrganization and pyOrgDivision.

Property Work-.pyOrigDivision is a linked property that identifies, as source properties, two other (not linked) properties available on every work object:

  • Work-.pyOrigOrg contains a value identifying an organization
  • Work-.pyOrigDivision contains a value identifying the second key part of a division within the pyOrigOrg

As a result, any section derived from a Work- class can display (read-only) the Division Cost Center using the notation:

.pyOrigDivision.pyDivisionCostCenter

Using linked properties can reduce or eliminate the need to create activities in your application.

Runtime operation

At run time, the system retrieves the target object to evaluate any property reference within it. The retrieved pages become part of the requestor's clipboard and appear in the Clipboard display within a grouping named Linked Property Pages .

If a second request for the same page occurs soon after a first request, the page may be still on the clipboard, eliminating a database access. All linked property pages are removed from the clipboard when your requestor session performs a Commit operation (which need not be related to the form containing information from the linked page).

If debugging is necessary, you can enable the Tracer options Linked Page Hit and Linked Page Miss . These options cause Tracer output to include a row for each hit and miss, identifying the referring page (containing the linked property) and the page containing the target object.

Completing the Control fields

These fields determine the presentation of the property when it appears on an HTML form. (By definition, the read-write mode is never used for special properties; only the read-only mode is relevant.)

For developers: If a property's Control field specifies an auto-generated control, in FormBuilder-based forms, the system displays the property using the Default control when displaying that property in the FormBuilder-based form. Examples of this behavior are when such properties are displayed in the Decision Table rule form, Decision Tree rule form, and the Run Rule form. In harness-based forms, the system displays the property using the specified auto-generated control.

Field Description
Control

Optional. For Single Value properties, identify a control (auto-generated or non-auto-generated) to control the read-only presentation and read-write presentation of this property. Dozens of standard controls are available:

  • If there is no value, the system uses the control named Default.
  • Choose Default-NonNLS to use default presentations that do not reflect operator locale settings.
  • Choose PromptSelect (for a drop-down list) or RadioButtons (for a rectangular array of radio buttons) in most cases when Table Type has Local List, Remote List, or Prompt List selected.
  • Choose PromptFieldValue when Table Type has Field Value selected.
  • ShowTextEncryptedPropertyValue is the default if the property Type is TextEncrypted.
  • Do not choose SmartLabel, StartSmartField, SmartInfoBehavior, SmartInfo, ListView, ListToList or Chart; these are pseudo-controls with special, restricted use.
When you create a new single value property, the system enters an auto-generated control in the Control field based upon the property type as follows:
  • CheckboxpxTrueFalse
  • DatepxDateTime
  • DateTimepxDateTime
  • DecimalpxNumber
  • DoublepxNumber
  • IntegerpxInteger
  • PasswordpxPassword
  • TextpxTextInput
  • TimeOfDaypxDateTime
Note: This field is not meaningful for Value List or Value Group properties. Leave blank.
Configure If the control requires parameters and you want to specify them in this Property form, click the button and enter values as prompted.

When completing a Field panel (for a cell in a harness, section, or flow action), you can override the parameter values entered here with values that apply to that cell only.

This button does not work with auto-generated controls. You can customize an auto-generated control only in a section or harness that contains the control. To customize the control, specify the rule in the Control field on the Cell Properties panel and use the Gear icon next to the field to open the control's Parameters dialog.

Using the Table Type for input value validation

A property of mode Single Value, Value List or Value Group can use "table validation" to constrain the property's input value to one of a set of specified acceptable values, or to a pattern of values. At run time, the system verifies that the value matches one on the list, and validates the value is appropriate input for the property.

To use table validation:

  1. Select Single Value, Value List, or Value Group for the Property Mode field. (You cannot use table validation for properties of any other modes.)
  2. Select one of the values in the Table Type drop-down list (other than the None value). The appropriate fields for that type appear in the form.
  3. Complete the fields appropriate for the selected Table Type value. See Property form General tab — Completing the Table fields for descriptions of the fields.

See Property form General tab — Completing the Table fields — Basics for details about how the system compares the set of acceptable values to the input values.

After you have specified the table validation you want and completed the appropriate fields:

  1. In most cases, set the Control field to:
    • PromptSelect, to get a runtime presentation of a drop-down list of the acceptable values
    • RadioButtons to get a runtime presentation of a rectangular array of radio buttons for the acceptable values; this control requires parameters
    • PromptFieldValues when using the Field Value table type
  2. Save the Property form and click the Preview toolbar button to test the presentation and values of the property.
CAUTION:
If you update an existing property and revise the table details, additional steps may be necessary. See Revalidation is necessary after certain property updates in More about Properties.
Field Description
Table Type Select None, Local List, Field Value, Class Key Value, Remote List, or Prompt List :

Using the Preview toolbar button

For Single Value properties, you can preview the presentation and other aspects of the property.

Click the Preview toolbar button to see an approximate presentation of the property as it will appear in both input and display at run time. For properties not marked as Special , you can preview the representation of a specific value:

  1. Type or select the value in the Input: area.
  2. Click Show output to see the resulting display-only representation, in the Output: area.

The preview presentation does not reflect the pyMinimumLength property qualifier (when referenced on the Qualifiers tab) unless the Edit Input field contains pyMinimumLength-Enforce.

Note: You cannot preview a TextEncrypted property if your system does not include a cipher algorithm.