I am implementing a custom Landing Page in Pega 24 using Constellation. The requirement is to display a list of cases based on a user-selected “Branch” dropdown and date filters. I am facing challenges with property context for filters, setting default values, and ensuring the list refreshes automatically upon selection.
Current Setup:
Context: The Landing Page exists within the {Application}-UIPages class.
Filter Property: I have a custom property, Branch (sourced by a custom Data Page), defined in {Application}-UIPages.
Data Source: I have a List View configured with D_WorkbasketCases as the source.
D_WorkbasketCases belongs to the Assign-Workbasket class.
It accepts Branch and DateTime as parameters.
Logic: It retrieves relevant workbaskets for the branch, then uses a Report Definition to fetch cases within those workbaskets.
List View Configuration:
Created in the {Application}-UIPages class.
Source set to Data Page (D_WorkbasketCases).
“Override Parameters” is enabled to map parameters to the source.
The Issues:
1. Context & Promoted Filters:
I am attempting to add the Branch property (from UIPages) as a Promoted Filter on the Landing Page. The configuration UI does not list the local properties from {Application}-UIPages. It only displays optimized properties from Assign-Workbasket (the data source class). How can I use the local UIPages property as the filter input?
2. Default Values:
I need the Branch dropdown to preload with a specific default value (e.g., the current operator’s default branch) when the landing page loads. What is the standard Constellation pattern for initializing these values in the UIPages context?. I have tried using pyDefault datatranform to set the default values but it is not working.
3. Reactive Updates:
When a user changes the value in the Branch dropdown, the List View should automatically refresh using the new value as a parameter for D_WorkbasketCases. Currently, the dependency between the local property change and the Data Page parameter refresh isn’t triggering.
Question:
In Constellation, what is the best practice for creating a reactive “Search/Filter” panel in landingpages where:
Filter properties exist in the View’s context (UIPages) but drive a Data Provider of a different class.
Default values are set on load.
Changes to the filter immediately trigger a refresh of the list with the new parameters.
Any insights on the architectural approach for this data binding would be appreciated.
@robotvinay some good questions. Will try to give some more details below but as far as i am aware, there is no way to achieve all 3 requirements at once.
Filter properties exist in the View’s context (UIPages) but drive a Data Provider of a different class.
Promoted Filters and even view authoring will always be in the context of the datapages class. This is by design.
IF you want to tie other information, say from the current operator, then you can do that but only when you add Insights to a Landing Page
Changes to the filter immediately trigger a refresh of the list with the new parameters.
This should happen natively, whether you use Insights or List Views. The problem right now is you’re trying to tie information from two different classes, like we would of done with UI Kit and Action Sets / Report Definitions. Once you get your setup right, then you shouldn’t have to do anything here.
This may mean putting the branch inside your Assign-Workbasket class (if its a datapage, then you should be able to reuse that?)
As I said, I don’t believe you can tie all three needs together at once. Maybe someone else in the community can share, if they have done this. I would be looking at creating a landing page that has multiple tabs, or a single dashboard, that would allow the user to achieve the different outcomes they are asking for:
A tab to show work in my branch
another tab to show work in all branches
You can do some cool stuff with insights, like showing discrete numbers and even conditional formatting to highlight things they should be paying attention too. If you can drill down on they “why” and find what the business is trying to achieve then you might be able to do some other things here that will exceed their expectations there.
Thanks, @MarcCheong , for providing the detailed documentation.
I’ve already tried the suggested approaches, but I’m still running into a limitation: promoted filters currently display only optimized properties.
In my case, the Branch property is simply a placeholder used as a dropdown. When a value is selected, it is passed as a parameter to a ListView data page. This property is not part of the data page results, report definition, or any underlying database column. Its only purpose is to drive a secondary lookup—for example, retrieving the list of work queues for the selected branch, and then using those to query cases from Assign-Workbasket.
Even though I’ve created the Branch property in the Assign-Workbasket class, it still does not appear as an option when attempting to configure it as a promoted filter. I have also marked Branch as Relevant record
If there’s an alternate or recommended approach to achieve this, I would appreciate your guidance. This seems like a very basic requirement, and it used to be straightforward in Theme Cosmos.
@MarcCheong Please let me know the Constellation approach for the below usecase as we are trying to build simple listview with two joints.
Use Case Overview
We have an existing data page: D_WorkBasketCases
This data page accepts a parameter: Workbasket
When this parameter is passed, it correctly fetches only the cases belonging to the selected workbasket / work queue in Pega Constellation
The same data page is already being reused across:
Multiple assignment processing
Other case-related views and logic
Hence, changing or duplicating this data page is not desirable
We created a List View with this data page as the source.
Now, we want to build a simple landing page with:
A Workbasket filter (dropdown) at the top which shows all the application specification workbaskets.
Dropdown behavior:
Label → Workbasket Name
Value → Workbasket ID
On user selection:
The selected Workbasket ID should be passed to the List View’s data page parameter
The List View should refresh and display only the cases for that workbasket
This is essentially a basic reporting use case where users can filter cases by workbasket dynamically.
Challenge Faced
Inline dashboard filters work only when filtering within the existing data set, and do not allow passing values to data page parameters.
Only context-specific properties are exposed for filtering, and associated properties are not supported.
We explored multiple approaches, and the only working solution we could find involves significant limitations and workarounds, which we already demonstrated.
Given that inline dashboard pages are deprecated starting v26, this approach is not future-proof.
Guidance Requested
Given the above constraints, could you please advise:
What is the recommended and supported approach in Constellation to:
Pass landing page filter values (like Workbasket) to a parameterized data page
Dynamically refresh a List View based on that parameter
Whether standard list landing pages or Insights with promoted filters are expected to support:
Parameterized data pages
External filter controls driving the data source
If this use case is not currently supported, is there:
A documented limitation
Or a roadmap item addressing parameter-based filtering for List Views / landing pages
Our goal is to follow a clean, supported, and forward-compatible design, especially considering the deprecation of inline dashboards.
Looking forward to your guidance on how Pega recommends handling this scenario
@robotvinay these are good questions. I will do some investigation to see what we can offer.
However, as you’ve concluded, promoted filters are designed to filter the content in the existing report and use optimized properties (for good reason). Approaching this in a UI Kit way of building logic in the UI is not the approach required (Centre Out) for a stateless UI architecture. Insights can utilise associations to show more complex data, List Views can not, but in the end the data still needs to be in the context for filters to work. I believe you’d have to get the data right for this scenario to work with filters but will investigate.
If others in the community can share their experience here too, that would be great