Discussion

Pegasystems Inc.
BR
Last activity: 17 Sep 2025 15:19 EDT
How to Combining Embedded Data and Pick Lists (Reference)
Introduction
Pega offers several data access patterns—Embedded, Reference, and Query—each designed for distinct use cases. While these patterns are powerful individually, real-world scenarios frequently demand their intelligent combination to address intricate data structures.
This article delves into a common scenario in Pega Constellation: constructing an embedded data table that seamlessly integrates pick list values. We will explore a practical solution that demonstrates how to combine these data access patterns within a single embedded object, providing a robust and flexible approach to managing complex data relationships within Pega applications.
Context: Addressing Complex Data Relationships
This article challenge: designing an embedded data table where individual columns derive their values from different sources. The objective is to provide a solution for managing such hybrid data requirements within a Pega case, ensuring both data integrity and an intuitive user experience. The solution will demonstrate how to combine these patterns effectively to create a flexible and scalable data model.
Step-by-Step Implementation Guide
Detailed walkthrough of configuring an embedded data table with select fields in Pega Constellation integrating various data access patterns to address complex data entry requirements.
1. Define the Reference Data Object
First, we establish a data object that will serve as the source for our picklist. This object, named SkillSets
, will hold the available skill options and their associated levels.
As shown in the image above, the SkillSets
data object is configured with the following properties:
- pyGUID: A globally unique identifier, typically auto-generated by Pega.
- Level: An integer property representing the proficiency level for each skill.
- SkillName: A text (single line) property that will store the name of the skill, which will be displayed in the picklist.
The image below illustrates the records within the SkillSets
data object.
These records define the actual values that will populate the picklist in our embedded data table. For instance, skills like 'Canoeing', 'Martial Arts', 'Archery', 'Snowboarding', and 'Paragliding' are defined, each with a corresponding level.
2. Create the Embedded Data Type
Next, we define the TeamMembers
data type, which will be embedded within our main case. This data type will represent individual team members and include their name, age, and a skill selected from the SkillSets
reference data.
Image above displays the configuration of the TeamMembers
data object:
- Name: A text (single line) property for the team member's name.
- Age: An integer property for the team member's age.
- Skill: This is a crucial property. It is configured as a Picklist type, and its values are sourced from the
SkillSets
data object. This setup allows users to select a skill from a predefined list, effectively combining an embedded data type with a reference data pattern.
3. Embed the Data Type in the Case
Now, we integrate the TeamMembers
data type into our main case type, EmbeddedWithReferenceData
(This is the case name I created). This will allow us to capture a list of team members within a single case.
Image above shows the Data Model
tab of the EmbeddedWithReferenceData
case type. A property named TeamMembersList
is added and configured as an Embedded Data type. The specific data type for this embedded list is TeamMembers
, which we defined in the previous step. This creates a list of TeamMembers
objects within the case, enabling the capture of multiple team member entries.
4. Configure the User View for Data Entry
To allow users to input team member details, we need to configure a user interface (UI) view within the case life cycle.
Image below highlights the Configure view
option within the Organize Teams
step of the case life cycle. Clicking this option allows us to design the form where users will interact with the TeamMembersList
.
Image below presents the Edit View: Select team members
screen. Here, the TeamMembersList
(which is an Embedded Data type) is added to the view. The UI automatically renders this as a table, allowing for the entry of multiple team members.
Image below provides a closer look at the configuration of the TeamMembersList
within the view. It confirms that the Name
, Age
, and Skill
properties from the TeamMembers
data type are displayed as columns in the table. The Skill
column is correctly identified as a Picklist
, ensuring that users can select from the predefined SkillSets
.
Testing Procedures
To validate the successful implementation of the embedded data table with select fields, follow these testing steps. The provided images illustrate the expected behavior and outcomes.
1. Initial Case Creation and View Display
Upon creating a new case of the EmbeddedWithReferenceData
type and navigating to the Organize Teams
step, the system should present the TeamMembersList
table. Initially, this table will be empty, indicating no team members have been added yet.
As depicted in the image, the table displays columns for Name
, Age
, and Skill
, along with an "Add TeamMembers" button. This confirms that the UI is correctly configured to accept embedded data.
2. Adding a New Team Member
Click the "Add TeamMembers" button to add a new row to the table. This action should dynamically add input fields for a new team member.
The image shows a new row appearing with editable fields for Name
and Age
, and a dropdown for Skill
. The presence of the dropdown for Skill
is critical, as it verifies that the picklist functionality is correctly integrated.
3. Selecting a Skill from the Picklist
Interact with the Skill
dropdown in the newly added row. The dropdown should populate with the values defined in the SkillSets
data object.
The image demonstrates the dropdown displaying options such as "Canoeing", "Martial Arts", "Archery", "Snowboarding", and "Paragliding". This confirms that the Skill
property is successfully referencing the SkillSets
data type.
4. Populating and Submitting Team Member Data
Enter data for multiple team members, selecting a skill for each from the picklist.
The image illustrates the table populated with three team members: Alice Martinez (Martial Arts), Michael Smith (Snowboarding), and Fiona Miller (Archery). After entering the data, click the "Submit" button to save the case.
5. Verifying Data on the Clipboard
After submitting the case, it is essential to verify that the embedded data is correctly stored on the Pega clipboard. Navigate to the clipboard and inspect the pyWorkPage
.
The image shows the clipboard content, specifically the pyWorkPage.TeamMembersList
property. This property is a Page List, with each entry (TeamMembersList(1)
, TeamMembersList(2)
, etc.) representing an embedded TeamMembers
object. Expanding one of these entries, for example, TeamMembersList(3)
, reveals the Age
, Name
, and Skill
properties with their respective values (e.g., Age: 24, Name: Fiona Miller, Skill: 7a6e15ad-b6ab-4f83-b303-e72d27fb1dcd). The Skill
property stores the GUID of the selected skill from SkillSets
, which is the expected behavior for a reference-based picklist.
These testing steps confirm that the embedded data table with a picklist, referencing an external data type, functions as intended, providing a robust solution for complex data entry scenarios in Pega applications.
Conclusion
As demonstrated in this article, Pega Constellation provides robust mechanisms to handle intricate data access patterns by combining embedded data types with reference and query list fields. The solution presented addresses the common challenge of integrating diverse data sources and user input methods within a single, cohesive structure.
By embedding a data type that itself contains a picklist sourced, Pega empowers developers to build highly flexible and maintainable applications. This approach not only streamlines data entry for end-users but also ensures data integrity and consistency by leveraging Pega's declarative processing and data integration capabilities.
References
- Understanding Data Access Patterns: When to Use Embedded, Reference, and Query List Fields. (n.d.). Pega Support. Retrieved September 17, 2025, from https://support.pega.com/discussion/understanding-data-access-patterns-when-use-embedded-reference-and-query-list-fields
- Fields associated with Data Objects and when to use them. (n.d.). Pega Support. Retrieved September 17, 2025, from https://support.pega.com/discussion/fields-functionality-fields-associated-data-objects-and-when-use-them
- Embedded data fields. (n.d.). Pega Documentation. Retrieved September 17, 2025, from https://docs.pega.com/bundle/platform/page/platform/data-integration/journey-fields/journey-embedded-data-fields.html
- Configuring a list of records Embedded Data field. (n.d.). Pega Documentation. Retrieved September 17, 2025, from https://docs.pega.com/bundle/platform/page/platform/data-integration/journey-fields/journey-configuring-embedded-data-fields.html
- Adding a new picklist field. (n.d.). Pega Documentation. Retrieved September 17, 2025, from https://docs.pega.com/bundle/common-data-model/page/common-data-model/implementation/add-picklist-field.html
- Using an external data source. (n.d.). Pega Academy. Retrieved September 17, 2025, from https://academy.pega.com/topic/using-external-data-source/v3
- Source a dropdown from external system of record. (n.d.). Pega Support. Retrieved September 17, 2025, from https://support.pega.com/discussion/source-dropdown-external-system-record