Troubleshooting field errors
To improve application quality, resolve the errors about the fields in your data model.
-
Your system prohibits changes to field types.
- Type of validation – Production level check
- Description – 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}. Check the fieldtypechange/productionlevel Dynamic System setting.
- Action to take – Contact your system administrator and request a change to the specified dynamic system setting, and then try again to change the type.
-
There is more than one version of the field.
- Type of validation – Multiple property definitions
- Description – You cannot change the type of {FieldLabel (FieldName)} field because it has multiple versions.
- Action to take – Define a new property with the correct type, and phase out the use of the old property.
-
The field uniquely identifies data records in another class.
- Type of validation – Used as a class key
- Description – You cannot change the type of {FieldLabel (FieldName)} field because it is used as a key in {ClassLabel (ClassName)} class.
- Action to take – Define a new property with the correct type, and phase out use of the old property. Update all dependent rules on the existing property.
-
An external class depends on the field.
- Type of validation – Optimized in an external class
- Description – You cannot change the type of {FieldLabel (FieldName)} field because it is optimized in {ClassLabel (ClassName)} class, which is externally mapped.
- Action to take – Ask your lead system architect to update to the external mapping for the type, and then try again to change the type.
-
A database depends on the field.
- Type of validation – Optimized in class mapped to DB2 database
- Description – You cannot change the type of {FieldLabel (FieldName)} field because it is optimized in {ClassLabel (ClassName)} class, which is stored in DB2 database.
- Action to take – Ask your lead system architect to 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.
-
A view depends on the field.
- Type of validation – Optimized in a class mapped to view
- Description – You cannot change the type of {FieldLabel (FieldName)} field because it is optimized in {ClassLabel (ClassName)} class which is mapped to a view.
- Action to take – Remove the property from the view, change the type, and then add the property back to the view.
-
A descendant class depends of the field.
- Type of validation – Optimized in a descendant class
- Description – You cannot change the type of {FieldLabel (FieldName)} field defined in {ClassLabel (ClassName)} class because it is optimized in descendant class {DescendantClassLabel(DescendantClassName)}.
- Action to take – Unoptimize the property in the descendant class where it is optimized, change the type, and then reoptimize the property.
-
Another class depends on the field.
- Type of validation – Optimized in another class
- Description – You cannot change the type of {FieldLabel (FieldName)} field defined in {ClassLabel (ClassName)} class because it is optimized in another class as {OtherClassLabel(OtherClassName)}.
- Action to take – Unoptimize the property in the class where it is optimized, change the type, and then reoptimize the property. Unoptimize the property in the descendant class where it is optimized, change the type, and then reoptimize the property.
-
The field is in a locked ruleset.
- Type of validation – Locked ruleset
- Description – You cannot change the type of {FieldLabel (FieldName)} field because it is in a locked ruleset {RulesetName}:{RulesetVersion}.
- Action to take – Unlock the ruleset, and then try again to change the property type.
-
Data records depend on the field.
- Type of validation – Records exist
- Description – You cannot change the type of {FieldLabel (FieldName)} field because it is used in class {3} ({4}) which has records.
- Action to take – Access the database, delete the record instances from the specified class, and then try again to change the type.
If your issue persists, delete the field, and then create a new field with the same name and a different type.