Conversation
Pegasystems Inc.
PL
Last activity: 8 Dec 2025 8:01 EST
CRUD Operations for Operator Records via Landing Page
Purpose and Design Considerations:
Whenever a new Data Type is created in Constellation application, it is an easy process to configure a way to maintain records of this Data Type: the Data Pages to browse, query and save the records are already in place. The properties defined on the Data Type, are ready to be used in list views and landing pages. And OotB views for Create and Edit actions are in place.
For some of already existing classes – Operators, Work Queues, Organization etc. it is also possible but requires a few extra steps. In this article, we will show an example of configuring CRUD operations for Data-Admin-Operator-ID class, but similar approach can be employed for other objects as well.
Let’s consider a customer service setting, where business administrators need to quickly update operators' language or technical abilities. This will ensure that support tickets are routed to employees who are best equipped to assist customers, improving response times and customer satisfaction.
Platform Version: The implementation steps described below are based on Pega Infinity 25.1. We may need more configurations for the older versions.
Implementation:
Our goal is to configure a Landing Page where all Operators will be listed, and administrators will be able to create new records and modify the existing ones.
1. Add Operator class as an existing Data Type
To make the configuration AppStudio and Constellation ready, we need to add the Data-Admin-Operator-ID class as a Data Type to our application
This will result in the class being added to the Application definition as well:
2.Set properties as Relevant
We need to add properties we want to configure on the View to Relevant Records:
For our example, we will use First Name, Last Name, Operator ID, pySkills. As you can see, the Operator ID is added as User Reference and pySkills as Embedded Data:
3. Set Skills helper class and add Rule-Admin-Skill as Data Type
The pySkills property is a PageList property of class Embed-Data-Admin-Skill. Unfortunately, this class is not Constellation ready. In order to configure the Skills in AppStudio, we will need to introduce a new helper Data Type: CRUDSkills:
As you can see, the Skill name is a Drop-down property – using values from Rule-Admin-Skill product class. To re-use the existing skill list we need to add a PageList DataPage to this class:
Next, we add the class as an existing Data Type to our application – so that the class and DataPage become configurable in our CRUDSkills Data Type:
4. Set the Data Pages for browsing, lookup and modifying
Next, we need to create 3 Data Pages for Data-Admin-Operator-ID class:
1. PageList query DataPage: D_OperatorCRUDList
Sourced from a Report and with “Allow querying any column (Pega connection only)” enabled:
2. Lookup DataPage: D_OperatorCRUD
3. Savable DataPage: D_SavableOperatorCRUD
We will stop a bit longer on the Savable DataPage as it needs some additional work. Instead of the ootb Database operations in “Data save options”, we will leverage an existing pySaveOperatorDetails Activity:
You need to save it in your ruleset and comment out the first step to enable it.
Then Activity has two sets of actions – for Creation of new Operator and for Updating of an existing one. In each of them we need to:
- Add the properties that are not included OotB, but which we want to modify (i.e. First Name, Last Name)
- Populate pySkills based on our CRUDSkills values
Last, we need to add the newly created DataPage as default data sources in Operator Data Type Settings:
5. Configure Create and Edit views
With the Data Model and background processing ready, we can move to the front-end configuration.
The Create and Edit views are available in our Operator Data Type already. Now we need to configure it, so that First Name, Last Name, OperatorID and CRUD Skills are also included.
Notice, that the Operator ID is in fact a Label property – as mentioned earlier, the pyUserIdentifier is not a String, but User Reference type property. The pySaveOperatorDetails we’ve worked with earlier handles setting of this value.
In the CRUDSkills table, we can set up the Create/Edit actions – keeping in mind, that we have to set the edit mode in table, not in modal (our Operator creation will be also displayed in modal, and nested modals are not supported).
6. Configure List View
On the Operator Data Type we create a new List View “MyOperatorList” sourced from our D_OperatorCRUDList DataPage. Unfortunately, we cannot use the Operator ID property directly as a column in our authoring – it is not a scalar value. Fortunately, if we setup it as a Primary field, the UI will able to handle it and display both column and values correctly.
As the last step, we enable Create, Edit and Delete actions:
7. Create Landing Page
From the Channels tab in AppStudio, we open the Work Portal configuration and create a new Landing Page:
As a last step, we add the MyOperatorsList view to the landing page.
Let’s see how the functionality looks like in runtime: