Support Article
Work Object Lock Lost On Parent and Child Opened In Multiple Tab
SA-8965
Summary
When a case has a parent or child case, thread lock is not implemented. On PRPC, a user is able to open a parent case on one thread and the child case on another thread. In a scenario where one of the cases go through a step and updates a property of the other, the changes will not be refected by the other tab (no clipboard reload). Application users will see or edit a stale value. There are no error messages displayed, but this problem puts data integrity at risk.
Error Messages
Not Applicable
Steps to Reproduce
1. Create a parent - child case structure. For one of the assignment of the child, set it to have a text box of the parent's property.
2. Create a case each and connect them to one another (if this is not setup to be done automatically).
3. From the Case Manager dashboard, open a parent case.
4. Go back to the dashboard and open a child case. Update the parent's property with the child's assignment screen.
5. Go back to the parent's tab and refresh the screen. It still displays the old values.
6. Click Save on the parent's tab. The most up-to-date value is overridden by the old value.
Root Cause
The root cause of this problem is defect/misconfiguration in the PRPC operating environment.
PRPC does not have a thread lock mechanism.
Resolution
Customize your application to prevent the parent case from displaying stale data.
Call an activity IsOutOfDate when a work area Tab receives focus.
If the data is old, the screen reloads and displays a Review harness instead of a Perform harness.
Apply HFix-20964.
HFix-20964 provides extensions to implement custom code on the tab's focus and close and disable the Reopen pop-up.
The extensions can be invoked on focusTab and closeTab in the application's work area. Another extension selectively skips the conflict dialog that is shown on replace of the same tab. The hotfix adds extensions customClose and customFocus in pega_desktop_harnessviewtabs.js and adds an extension to skip conflict dialog in pega_desktop_docgadget.js.
Use pega.composite.Tab.prototype.customFocus to override the custom focus extension.
Use pega.desktop.DocGadget.prototype.skipConflictDialog = true; to skip the workobject conflict dialog.
To implement custom code on tab focus, override the following JavaScript functions (from pega_desktop_harnessviewtabs.js).
pega.composite.Tab.prototype.customFocus
pega.composite.Tab.prototype.customClose
Disable the pop-up when a case is already opened and Obj-Open is called again.
Normally a pop-up is displayed, asking if you are sure you want to reload this work object.
pega.desktop.DocGadget.prototype.skipConflictDialog = true;
Published May 13, 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.