Support Article
Requestor scope data pages do not flush after application switch
SA-72531
Summary
Requestor scope data pages do not flush after switching applications.
Error Messages
Not Applicable
Steps to Reproduce
- Create the DMSample2 application.
- Create the DMSample:Administrators2 AccessGroup that refers to the DMSample2 application.
- Add to the operator both the AccessGroups, DMSample:Administrators and DMSample:Administrators2.
- Add the DMSample branch to the DMSample application. Add the DMSample2 branch to the DMSample2 application.
- In the main DMSample:07-10 RulesSet, create the D_DataPage (data page) Requestor Scope with an empty SetDataPage data transform.
- Create the SetDataPage data transform in the DMSample branch and set pyLabel=SetDataPage.
- Create the SetDataPage data transform in the DMSample2 branch and set pyLabel=SetDataPage2.
- Reference the D_DataPage anywhere in the UI or logic for initialization. The case consists of referencing the pyLabel on the UI and the preload activity in the layout that sets pyLabel = D_DataPage.pyLabel.
a. Log in with DMSample:Administrators on the UI. The correct label 'SetDataPage' displays. Switch the application to DMSample:Administrators2 on the UI. The correct label 'SetDataPage' displays.
b. Log in with DMSample:Administrators2 on UI. The correct label 'SetDataPage2' displays. Switch the application to DMSample:Administrators on the UI. The correct label 'SetDataPage2' displays.
Root Cause
An issue in the custom application code or rules.
Resolution
Perform the following local-change:
In Pega 7 Platform versions, all the clean-up occurs on the application switch. This is handled by the FreeClipboard activity.
This activity cleans up the PRThread and removes the Thread pages (User pages and Editable pages) in a Java step by iterating over and removing them from tools.getThread().getPageNames().
The ApplicationFreeClipboard extension point is available to add the clean-up logic to clear any named top level pages that are added.
Use either of the following:
- tools.removeDataPage(aPageName)
- boolean removeDataPage(String aDataPageName, ParameterPage aParamPage); for parameterized pages.
Published October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.