Learn how to troubleshoot issues related to transient, base class, and optimized properties.
Applies to Pega 7.2 - Pega '24.2
Issue 1
Transient properties tend to get saved in the data base automatically. However, Save fails because no corresponding columns exist. The expected behavior is that the Transient properties must not get saved in the data base.
Scenario 1
When creating an internal data source, Pega randomly adds additional columns that cannot be removed. During the Test connectivity, errors occur in the px and py columns where the additional columns were added.
Scenario 2
Data Flow has failed records and it fails with an error indicating that it is unable to find the corresponding columns. The instance has transient properties which do not correspond to the pzDataFlowRecordContext, pzPosition, and pzPartition columns but attempt to save them.
Root cause
A defect in Pegasystems’ code or rules. Transient properties may be seen as permanent properties and the platform attempts to save the property for which no corresponding column exists, causing an error.
Issue 2
Base class properties of same name and different casing in a class hierarchy break the Property to Column mappings.
Scenario 1
A property, Message (with upper case M), is optimized for reporting. User wants to store the property in an exposed column instead of BLOB. A property, message (with lower case m), is in @baseclass and it affects the automapping of the Message property to the related column.
Error
Database-BadTableMapping-TooManyProperties Index-ABC-DEF-Int-WRITE-V2-GHI-JKLMN pegadata.pr_Index_ABC_DEF_Int_WRITE_V2_ PegaDATA MESSAGE
Root cause
Database-BadTableMapping error occurs if you do not have a BLOB column.
Issue 3
Optimized properties do not correctly map to their corresponding columns for a fully optimized class.
Scenario 1
Intent task displays as blank on Customer Service platform 8.8.3. The Name column is blank on the table and the user is unable to populate that with Revalidate and Save, Recreate the intent (actions/rules/class), and so on.
Root cause
A defect in Pegasystems’ code or rules. This is a sporadic platform issue where Property Inheritance fails causing an incorrect property to be chosen and mapped.
Solution
This issue is planned to be addressed in a future Pega Platform release. Issues are prioritized based on impact, severity, and capacity. The specific release for the fix has not yet been determined. This section will be updated with release details when the fix for this issue is available.
As a workaround, perform the following steps:
- Explicitly add the Column mapping property to the class rule.
- Run the Column Population tool if necessary.
Alternative approaches to resolve Issue 1 are as follows:
- Move the Transiency check out of the Commit step.
- Verify if the property was intended to be transient.
Best Practices
- If a property is required in multiple classes, define it in a location accessible to all the relevant classes. If the classes do not share a parent, then copying the property is acceptable.
- Reuse properties through inheritance.
- Avoid usage of the same property name with different cases while reusing properties. All properties of the same name in a class hierarchy should have the same casing.
Environment
Version found in
The issue is reported in the following environments:
- Pega Platform 8.6 - 8.7.4
- Pega Platform 8.7.5
- Pega Platform 8.8.3