A Single Value
property that is visible as a column in a database table is said to be exposed. Aggregate properties, properties within an embedded page, and properties that are not exposed are contained in a specially formatted Storage Stream or BLOB column. Most PegaRULES database tables contain a Storage Stream column named pzPVStream.
Which properties are exposed affects the record selection operations in list view and summary view rules. In many cases, your database administrator can cause a property previously stored only inside the Storage Stream column to become a separate exposed column.
Only top-level Single Value
properties can be exposed. If your application needs a column corresponding to an embedded property values, the values can be copied to the top level or exposed indirectly through instances of an Index- class.
Don't confuse an exposed property with an indexed database column. For example, the property Work-.pyID is an exposed property in the table pc_work
. However, if this table contains several million work items, a list view search for a .pyID value of "W-135" causes an expensive database table scan. Creating database indexes can speed database operations in such situations. Ask your database administrator to create database indexes.
A top-level Single Value
property that is not exposed as a column is sometimes called an unoptimized property, indicating that its values are not easily available to be referenced in report definitions. When the Display Unoptimized Properties in Data Explorer checkbox is enabled (on the Data Access tab of the Report Definition form), report users can choose to include such properties in reports, as column data or row selection criteria.
Exposing too many properties in a table may speed reporting and searching operations, but make insert and update operations slower. The tradeoff and relative impact depends on hardware and software; no general guidelines exist.
The Column Inclusion field (on the Advanced tab of the Property form, for Single Value
properties), contains one of four values (blank, Optional
, Required
, Requested
) that indicates the judgement or opinion of the developer who created or updated the property. This value is advisory only; it does not affect any runtime behavior of the property. However, using the Database Class Mappings landing page tab, you can compare the values in this field with the current schema, identifying properties marked as Required
which are not exposed.
You can use any of these tools to expose a top-level Single Value property as a column: