Conversation
Pegasystems Inc.
GB
Last activity: 5 Feb 2026 12:19 EST
Abstract classes in Constellation are not a best practice
For sometime, circa Infinity version 8, Pega's wizards in App Studio and Dev Studio have only created Concrete classes, even if it did not have records, it has been a concrete class. With the introduction of Blueprint and the Blueprint Import capability, this practice has continued and we now see this question more and more. Where is the Abstract class? Why is it missing? @Kamil Janeczek , @BraamSmithCLSA, @PauloTonin and myself have long discussed if this was deserved of its own Constellation 101 - there are a few details out there but this tends to be hard to find, or lost in all the other features and docs.
Hopefully, this article highlights this important concept with our community.
Why? Delivering working software quickly.
Constellation follows a "Center-out" approach focused on business outcomes and customer journeys rather than traditional technical components. Concrete classes align better with this philosophy and the Case Designer's data modeling capabilities.
Abstract classes and Constellation
Abstract classes are not recommended in Constellation, utilising an abstract class will introduce several functional limitations that impact the user experience and data handling capabilities.
• No search and select support, which restricts data interaction
• Limited field support – only query fields work without manual configuration
• Breaks from Constellation's design defaults optimized for concrete classes
When is it acceptable? Migrating from Traditional UI
Only as a workaround when migrating an existing Data Model to Constellation. If absolutely necessary, you'll need a multi-stage configuration process including:
1. Creating the empty abstract class
2. Configuring it specifically for Constellation
3. Adding and configuring single-page Data Pages for single-record reference fields
4. Adding and configuring list Data Pages for list-of-records reference fields
See Defining abstract classes in Constellation
Conclusion
Use concrete classes for Data Objects. This is Constellation's default design pattern and provides full out-of-the-box support for all data model features.
See more details
Pega docs and expert circles.