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.
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.
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
|
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
This HTML does not cause any encryption. This native HTML feature is not
related to the
|
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 |
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
Users need not enter
|
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
As a best practice, use
|
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
For example, 000000 represents midnight and 120000 identifies noon. The value 235959 identifies the second before midnight.
Application users are not required to enter
As a best practice, use
|
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:
A
|
TextEncrypted
|
Select this type to implement encryption for the value. See
Implementing and using the TextEncrypted type.
The
|
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 the Pega Community 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:
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:
-
Select
Single Value
,Value List
, orValue Group
for the Property Mode field. (You cannot use table validation for properties of any other modes.) -
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. - 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:
-
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
- Save the Property form and click the Preview toolbar button to test the presentation and values of the property.
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:
- Type or select the value in the Input: area.
- 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.