Pega Constellation – Refresh Issue with Page List Component and Dropdown

Hi Team

I am working on a Pega Constellation application where I have a Page List component containing multiple records. For example, the component may contain three records, each with a different name.

My requirement is to display the names of all records currently present in the Page List in a Dropdown/Picklist in another section of the same form.

When I select a name from the Dropdown, I need to populate the corresponding data from the selected Page List record into another section containing approximately 6–7 fields.

For example:

Page List Component
-----------------------------
Record 1 → Sohan Reddy
Record 2 → Rahul Kumar
Record 3 → John Smith

Dropdown
-----------------------------
Sohan Reddy
Rahul Kumar
John Smith

When "Rahul Kumar" is selected:
→ Populate Rahul Kumar's corresponding data
  into the other 6–7 fields.

Issue

I am facing an issue with the refresh behavior:

  1. When I click the Add button in the Page List component, pyRefreshData is triggered as expected.
  2. However, when I select/change a different record name in the Dropdown, pyRefreshData is not triggered.
  3. Similarly, when I update any field value within an existing Page List record, the updated value does not appear to be reflected on the Clipboard immediately.
  4. The updated values remain the same on the Clipboard until I perform Save for Later or Submit.
  5. Because of this behavior, I am unable to reliably retrieve the latest Page List data when the user changes the selected name in the Dropdown.

Main Requirement

My requirement is:

  • Display all the names of the records currently present in the Page List component in a Dropdown/Picklist.
  • When the user selects a name, identify the corresponding Page List record.
  • Populate the selected record’s data into the other 6–7 fields.
  • When the user changes or updates data in the Page List component, the Dropdown and the corresponding fields should use the latest/current values.
  • I would like to achieve this without requiring the user to click Save for Later or Submit.

Could anyone please suggest the recommended approach in Pega Constellation to achieve this

Other Approach would be to keep the selected record and the Page List data within the Constellation view/data model and use the selected Page List item directly to populate the 6–7 fields. I have recently tried this for a use case of populating street names based on the country dropdown.

Assuming that your page List component is a Data Reference data type. You can make use of Auto Complete dropdown to select the records and also display the additional view that contains 6 additional fields for the selected record. Can you please confirm the platform version?

Hi @RameshSangili Application is running on Pega Constellation version 25.1.3

Thanks for the suggestion. I understand the approach of keeping the selected record and the Page List data within the Constellation view/data model.

However, my first requirement is to populate the Dropdown itself. I have an Embedded List containing multiple records, and I need to fetch the current list data and display the Full Name of each record as Dropdown options.

Once a name is selected, I need to use the selected Page List item to populate the other 6–7 fields.

Constellation has no control-level “on change, run data transform.”

Refresh logic comes from Flow Action → Form refresh settings, which only support scalar (work-page-level) properties — not Page List / embedded properties.
That is a documented gap.

Also, pyRefreshData only runs when the UI actually issues a refresh request and Pega only sends that when the UI has a dependency to track (typically a visibility/When condition on at least one field).

By design in the stateless DX-API, only fields visible and editable in the UI get pushed to the server in a patch call. Clipboard is also just a static snapshot.

Could you try-

  • Give each Page List record a stable unique key. don’t use Name as the key.
  • Create a List Data Page sourced from a Data Transform that iterates your Page List and maps each row into pxResults with Value = .PersonID and Label = .Name.
    Reload strategy: “Reload once per interaction.”
  • Bind a Picklist to a scalar .SelectedPersonID, sourced from that Data Page
    value = .PersonID, display = .Name.
  • In Flow Action → Form refresh settings, add .SelectedPersonID as a refresh-trigger field and run a data transform that finds the matching record and sets your 6–7 fields.
  • Make those 6–7 fields editable and present in the view, or set them in the flow action’s post data transform.

To force pyRefreshData to fire for the Page List scenario, add an always-true visibility condition on a field so the UI issues the refresh request, then extend pyRefreshData in your case-type class.

For Add/edits, open the Page List editing in a modal dialog and clear/repopulate dependent fields in the modal’s post-processing.

It is always recommended to source dropdowns from a DP rather than binding directly to a Page List. True real-time reflection of unsaved row edits into a server-side dropdown before Save/Submit isn’t fully supported by the standard form model. Cleaner UX is to make the 6–7 fields part of the selected row’s own edit view, or require an explicit Apply/Refresh-draft action first.
For non-scalar refresh edge cases, pxC11NPublishDatapageUpdate can notify the UI to refresh an outdated list/data page.

Hope this helps!