- the record in question is a column definition
- the state defined by the Customer Update 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
Open an Update Comparison (sys_update_diff) for a Dictionary update of type String where the current version has a larger max_length value than the update version.
Expected result: Column is shorter and still contains data.
Actual result: Column is shorter and data is lost. In some circumstances, the column has been renamed to u_columnname.
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 for only 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 Revert refuses to run on a Dictionary record, try this alternative approach:
- On the Update Comparison record, click the Update element's Info icon to open the Customer Update record.
- On the Customer Update record, click Show Related Record to open the Dictionary record.
- 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.
- 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: PRB678360