Issue
In a Constellation application, a Picklist field returns incorrect options when a user enters text in the field.
The issue occurs when the Picklist field is configured with an Identifier Field whose values are not unique. For example, several source records might have the same description, display name, category, or other business value configured as the Identifier Field.
Symptoms and Impact
Duplicate-looking and incorrect values appear in the result list.
Steps to reproduce
Configure the Picklist field’s Identifier field with a non-unique value.
- In a Constellation application, create or open a data object that contains at least:
- A unique field, such as RecordID.
- A non-unique field, such as DisplayName.
- Add at least two records with the same value in the non-unique field.
- Create a Picklist field on a case or data object.
- Configure the Picklist to source its values from the data object or its list data page.
- Configure the Picklist’s Display Field to use DisplayName.
- Configure the Picklist’s Identifier Field to also use the non-unique DisplayName field.
- Add the Picklist field to a Constellation form or view.
- Save and publish the changes.
- Run the case or open the form at runtime.
- Enter text input in the Picklist field.
- Review the matching options.
Options that share the same Identifier Field value are not reliably distinguished. The Picklist can display, or resolve an incorrect matching option.
Root Cause
Constellation uses a React-based, model-driven UI architecture. Its UI components are rendered through React components, and the quality of the underlying data model directly influences the UI behavior.
In this scenario, the Picklist’s Identifier Field is also used at UI runtime as the identity for the rendered list item. When different records have the same identifier, the UI cannot reliably distinguish those items. This can result in an existing UI item being reused or associated with the wrong source record during filtering or re-rendering.
This is therefore both:
-
A UI identity problem, because rendered options require stable, distinct identities.
-
A data-model problem, because a reference must be resolvable to one and only one source record.
The Picklist field's Identifier Field is used at UI runtime to generate the key for list item React components and must be unique. From a Pega data model perspective, the Picklist field's Identifier Field must also be unique.
Solution
Configure the Picklist field’s Identifier Field with a field that is:
- Unique for every source record
- Non-null
- Stable over the life of the record
- Returned by the list source
- Suitable for resolving one individual record