Table of Contents

Article

Troubleshooting validation errors when changing the type of an existing field

When you modify the type of an existing field on the Data model tab of a case type or a data type, the validation check performed by the Pega 7 Platform might fail. The following table describes the possible messages that might displayed for validation errors and how to troubleshoot each situation.

Validation check Error message that is displayed How to troubleshoot
Production level check You cannot change the type of {FieldLabel (FieldName)} field because current production level is {CurrentProductionLevel} and changing the type of field is not allowed beyond production level {MaxAllowedProductionLevel}. You can check setting 'fieldtypechange/productionlevel'. Contact your system administrator and request a change to the specified Dynamic System Setting, and then try again to change the type.
Multiple property definitions You cannot change the type of {FieldLabel (FieldName)} field because it has multiple versions. Define a new property with the correct type, and phase out the use of the old property.
Used as a class key You cannot change the type of {FieldLabel (FieldName)} field because it is used as a key in {ClassLabel (ClassName)} class.

Define a new property with the correct type, and phase out use of the old property.

Also update all dependent rules on the existing property.
Optimized in an external class You cannot change the type of {FieldLabel (FieldName)} field because it is optimized in {ClassLabel (ClassName)} class which is externally mapped.

Update the external mapping for the type, and then try again to change the type.

This update should be performed by a lead system architect because of the advanced nature of the change process.
Optimized in class mapped to DB2 database You cannot change the type of {FieldLabel (FieldName)} field because it is optimized in {ClassLabel (ClassName)} class which is stored in DB2 database.

Delete the column containing the specified type from the table in the DB2 database, change the type, and then create a column with the new type in the DB2 database table.

This update should be performed by a lead system architect because of the advanced nature of the change process.
Optimized in a class mapped to view You cannot change the type of {FieldLabel (FieldName)} field because it is optimized in {ClassLabel (ClassName)} class which is mapped to a view. Remove the property from the view, change the type, and then add the property back to the view.
Optimized in a descendant class You cannot change the type of {FieldLabel (FieldName)} field defined in {ClassLabel (ClassName)} class because it is optimized in descendant class {DescendantClassLabel(DescendantClassName)}. Unoptimize the property in the descendant class where it is optimized, change the type, and then reoptimize the property.
Optimized in another class You cannot change the type of {FieldLabel (FieldName)} field defined in {ClassLabel (ClassName)} class because it is optimized in another class as {OtherClassLabel(OtherClassName)}. Unoptimize the property in the class where it is optimized, change the type, and then reoptimize the property.
Locked ruleset You cannot change the type of {FieldLabel (FieldName)} field because it is in a locked ruleset {RulesetName}:{RulesetVersion}. To fix this you can unlock the ruleset. Unlock the ruleset, and then try again to change the property type.
Records exist You cannot change the type of {FieldLabel (FieldName)} field because it is used in class {3} ({4}) which has records. Access the database, delete the record instances from the specified class, and then try again to change the type.

Published March 11, 2016 — Updated June 27, 2016


50% found this useful

Have a question? Get answers now.

Visit the Pega Support Community to ask questions, engage in discussions, and help others.