Support Article
Data page sourced from JS populator doesn't refresh
SA-37025
Summary
When data page D1 is sourced from another data page D2 using JS populator, D1 does not refresh when data in D2 data page changes.
Error Messages
Not Applicable
Steps to Reproduce
1. Define case type C, set it as offline enabled.
2. Add property to C, for example, boolean property IsImportant.
3. Create first step of C, in this step allow to set IsImportant property.
4. Create second step of C, this step should be routed to offline mobile user.
5. Extend pyUserWorkList OOTB report so it JOINs also WO, add IsImportant to be available in record fields.
6. Extend pyDashboardMyWorkList so IsImportant column is displayed for PC version.
7. Create MyUserWorkList as a copy of pyUserWorkList, add filetr so only records where IsImportant==true are displayed.
8. Create D_MyUserWorkList sourced from MyUserWorkList, D_MyUserWorkList must be parameterized.
9. Modify pyDashboardMyWorkList so list for offline device is sourced from D_MyUserWorkList, set parameter value to "dummy".
Reproduction:
1. From Designer Studio create C instance C1, set IsImportant flag to false.
2. From Designer Studio create C instance C2, set IsImportant flag to true.
3. Login from PC as user@offline3 - see both Assignments: C1 and C2.
4. Login from device as user@offline3 - see only Assignment related to WO with IsImportant flag set to true: C2.
5. From Designer Studio create C instance C3, set IsImportant flag to true.
6. From device force data sync them refresh worklist, you still see only C2 instance while C2 and C3 should be visible.
Root Cause
An issue in the custom application code or rules.
Resolution
Perform the following local-change:
Include a property which should be updated every time the new WO is created and set this property value as datapage parameter value.
Additional information
To update the dp parameter value, create a data page (D_CounterPage) and initialize the property counter and the same property is set as 'D_MyUserWorkList' parameter value in the section 'pyDashboardMyWorkList'.
And the D_CounterPage.counter is updated in runscript action before the refresh section is called.
The below script is used to update the counter:
function changeDPParam(){
var dp = pega.ui.ClientCache.find("D_CounterPage");
if(dp){
var val = pega.ui.ClientCache.find("D_CounterPage").get("counter").getValue();
pega.ui.ClientCache.find("D_CounterPage").get("counter").setValue(parseInt(val) + 1);
}
}
Published July 5, 2017 - 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.