Data page sourced from JS populator doesn't refresh
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.
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".
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 [email protected] - see both Assignments: C1 and C2.
4. Login from device as [email protected] - 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.
An issue in the custom application code or rules.
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.
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:
var dp = pega.ui.ClientCache.find("D_CounterPage");
var val = pega.ui.ClientCache.find("D_CounterPage").get("counter").getValue();
pega.ui.ClientCache.find("D_CounterPage").get("counter").setValue(parseInt(val) + 1);