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_MyUserWorkListsourced 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(){
vardp = pega.ui.ClientCache.find("D_CounterPage");
if(dp){
varval = pega.ui.ClientCache.find("D_CounterPage").get("counter").getValue();
pega.ui.ClientCache.find("D_CounterPage").get("counter").setValue(parseInt(val) + 1);
}
}

Published April 25, 2017 - Updated July 5, 2017


0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.