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. |