Support Article
Section is getting corrupted if restored from earlier version
SA-28012
Summary
When the user tries to restore the earlier check in version, the restored section gets corrupted, that is, the elements inside the dynamic layout are not visible in the designer studio.
At runtime all the elements of the section are displayed as expected, the issue is in the designer studio because the user can not see and perform any changes if required as the elements in the layout are not visible.
Error Messages
Not Applicable
Steps to Reproduce
1. Create a section S1.
2. Make some changes in the section like including dynamic layouts, and so on.
3. Check in the changes (V1).
4. Check out the rule and make some more changes.
5. Check in the changes (V2).
6. Go to the history tab of the rule S1 and restore the V1 changes.
Root Cause
A defect in Pegasystems’ code or rules.
When a rule is deleted, only the properties which have values are committed to database.
On restoring the rule, on the section XML, only committed properties are re-created, leaving the XML incomplete.
This happens in case of nested layouts. For layouts in the top level, there is code to handle the issue, example, the step containing Page-Merge-Into method in Rule- ! DisplayOldVersion Activity.
In the client side, it is expected that the XML is complete. When this incomplete XML is sent to client side, there are no null checks and Exception is thrown. This causes the layout to not render.
On restoring the rule, on the section XML, only committed properties are re-created, leaving the XML incomplete.
This happens in case of nested layouts. For layouts in the top level, there is code to handle the issue, example, the step containing Page-Merge-Into method in Rule- ! DisplayOldVersion Activity.
In the client side, it is expected that the XML is complete. When this incomplete XML is sent to client side, there are no null checks and Exception is thrown. This causes the layout to not render.
As part of fix, In pzpega_ud_gridlayout_structure JS, handled the non-existence of empty nodes and initialized them.
Resolution
Apply HFix-29142.
Published September 21, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.