- the record in question is a column definition
- the state defined by the Push and Pull Version record is a shorter column than what is in the current system
- the column contains data longer than the newly defined length
For further information, see KB0594807, "Write Audit landing page."
Steps to Reproduce
Set up Team Development with a second instance registered as the Parent instance.
Push or Pull a change that contains a string column with a length less than 4,000 characters.
The Pushes and Pulls table now has a record of the push or pull, and a Push and Pull Version of the string column change. This is the version that you will try to back out to later.
Navigate to System Definition > Dictionary and edit the definition of that string column.
Increase the Max length of the field by up to 4,000.
Navigate to Team Development > Local Changes and select the checkbox for that Dictionary record.
At the bottom of the table, click the Actions on selected rows select list and choose Back Out.
Note that the column is shorter and data is lost. In some circumstances, the column has been renamed with a u_ prefix.
We have implemented an Instance Analyzer script for the Fuji family of releases that blocks the most common scenarios that can cause data loss.
For instances on which the Instance Analyzer script has not been run
To prevent data loss, avoid use of the Back Out feature until you are able to upgrade to a fixed version listed in the Fixed In section below. If you must execute a Back Out before the instance can be upgraded, try the following two recommendations:
- Perform the Back Out on a sub-production instance and validate the results.
By validating on a sub-production instance, any issues can be uncovered before customers are affected.
- Review the difference between the previous Pushes and Pulls Version and the current version to ensure the current version did not increase the max_length or internal_type of the column.
For instances on which the Instance Analyzer script has been run
To prevent inadvertent data loss, we have limited the following features in all Fuji releases. When a user clicks on either of the following UI actions, we analyze the Update Set:
- Back Out and Revert are refused only for Dictionary records on the following actions:
- Local Changes - Back Out (KB0594820)
- Update Version - Revert to this version (KB0594798)
- Application Metadata - Revert to store app (KB0594819)
- Update Comparison - Revert (KB0594817)
- Upgrade Details - Back Out (KB0594816)
- Upgrade Details - Revert to Out-of-box (KB0594818)
- Upgrade Details - Reapply Changes (KB0594822)
- Push or Pull Version - Use Pulled Version (KB0594812)
If Back Out refuses to run on a Dictionary record, try this alternative approach:
- Click the Dictionary record in the list to open its form.
- On the form for the column in question, click the context menu ( icon) and choose Show File Properties.
- Ensure that the Versions related list is sorted by the Created column, with the most recent version at the top.
- In the Versions related list, locate the version you are attempting to back out to.
This is the most recent version whose Source's name starts with System Upgrades.
- Right-click on that version and choose Compare to Current.
- If the comparison window displays changes to max_length, perform the operation on a sub-production instance and validate the results first. Data loss is likely.
- If the comparison window displays changes to internal_type, perform the operation on a sub-production instance and validate the results first. Data loss is possible.
- If the comparison window displays no changes to max_length and no changes to internal_type, click the Revert to this Version button to roll back the change.
Warning: If you see a message like the one that is circled, you will lose data. Click the Cancel button to avoid the change.
Related Problem: PRB678336