I also have another Page List property called Reviewers:
Reviewers()
.ReviewerName
For the ReviewerName field, I need a dropdown/picklist that displays the values from Approvers().ApproverName so users can select one of the previously entered approvers.
Expected dropdown values:
John Smith
Mary Jones
David Lee
What I Tried
Created a Data Page to source the picklist.
Attempted to pass the Approvers Page List as a parameter to the Data Page.
Used a Data Transform to populate the Data Page from the Page List.
However, I’m not sure what the recommended approach is in Constellation for exposing Page List values as a dropdown source.
Questions
What is the best practice for sourcing a picklist from a Page List within the same case?
Can a Page List be passed directly to a Data Page parameter, or should it be converted to another format first?
Is there a recommended Constellation approach for referencing values from Approvers().ApproverName in a dropdown for Reviewers().ReviewerName?
Any examples or implementation guidance would be greatly appreciated.
We reviewed the use case where the Reviewers().ReviewerName dropdown needs to display values entered in the case-level Approvers() Page List. In Constellation, the recommended approach is to source dropdown values through a Picklist field backed by a Data Page rather than binding the dropdown directly to a Page List. Constellation picklists support Data Pages as a source and provide a consistent, reusable pattern for dynamic dropdown values. [docs.pega.com], [forums.pega.com]
For this implementation, we recommend creating a Data Page that returns a list of approver options derived from the case’s Approvers() Page List. The Data Page can expose properties such as:
.Name
.Email
and the ReviewerName field can be configured as a Picklist/Dropdown using:
Property for value = .Name
Property for display text = .Name
The overall design would be:
Approvers()
.ApproverName
.ApproverEmail
↓
Data Page (Approver Options)
↓
Reviewers().ReviewerName Picklist
While it may be technically possible to explore passing data through parameters, passing an entire Page List directly as a Data Page parameter is generally not the preferred design. Instead, the recommended approach is to expose the approver values through a Data Page use that as the source for the Constellation picklist. This aligns with Constellation’s model-driven architecture and avoids Page List to scalar field binding challenges.
Additionally, if approver names are not guaranteed to be unique, we recommend using a unique identifier such as ApproverEmail as the stored value while displaying ApproverName to users.
Please let us know if you would like us to provide a sample Data Page and Data Transform configuration for this pattern.
I agree with @PraveenMankala . We generally recommend to source the dropdowns through Data pages. If the Approvers is an Embedded Data, then you can create a Data Reference property for Approvers and copy the data from Embedded Data to Data Reference to display it as a dropdown. If the Approvers is already a Data reference Property, then you can source it through Data Transform
For the Reviewer dropdown, configure the Data Page as the data source. The Data Page will call a Data Transform, which loops through the Approver Name Page List and populates the required approver names into pxResults.
The dropdown can then map the required fields from the Data Page’s pxResults to display the reviewer values.
Flow: Reviewer Dropdown → Data Page → Data Transform → Approver Name Page List → pxResults → Reviewer value.
However, you are not a member, if you can join then that will allow me to move this (only members can reply to User Experience posts, so you would no longer be able to reply).
I tried the approaches suggested above. I created a Data Page, referenced it from the picklist, and used a Data Transform to loop through the Approvers Page List and copy the values into pxResults.
The issue I’m running into is that, during Data Page execution, In Constellation the Data Transform is unable to access the case context. pyWorkPage or any other context page containing the work object data is not available on the clipboard at that point. As a result, the Data Transform cannot read the values from the Approvers Page List and the copied data is returned as null.