LSA Data Excellence: Webinar, Questions & Answers

The Partner Technical Enablement team at Pegasystems launched its ongoing Continued Excellence Enablement series with the LSA Data Excellence (as of Pega 8.4) webinar delivered by Diane Smith-Knowles and Braam Smith, with Dion Lammers fielding all the Q&A.

We had - literally - hundreds of questions come in over the course of these webinars. Whilst we are not able to answer each question individually, we’ve categorized the key themes of the questions and will be posting their answers to Collaboration Center in due course.

Favorite or Subscribe to this post, as we will update with links to new Discussion items as more Questions get their Answers published. Feel free to comment on to the individual Q&A discussions to share your experiences or continue the discussion, Favorite those you might need to look up later, and Subscribe to those whose discussions you want to track.

Click on Show more below to see the full set of Themes & Discussions.

Theme Discussions
Webinar Replay
- Watch the Webinar that was delivered
Methodology
- How to handle changing requirements around the data design and model?

- How to design data when you need to deliver your first MLP in 30 days?

- Whose responsibility is the data design (LSA, LBA or a client data steward)?

- Is data design part of sprint 0?

- What do I do if I don’t understand the client’s entire enterprise data model before we start? What if the client doesn’t understand their data model?

- Can I still deliver a Low Code App Factory build in 2 weeks whilst adopting these data design recommendations?
Savable Data Pages
- What are the use cases for Savable Data Pages over ‘normal’ Data Pages?

- Can I use Savable Data Pages to create a new instance?

- How do I instruct my Savable Data Page to use POST vs. PUT/PATCH for updates to REST APIs?

- Can I use Savable Data Pages to delete an instance or remotely purge an instance from another System of Record?

- I’m saving multiple Savable Data Pages on completion of the one Flow Action. What are the considerations for transaction management, data integrity, error handling, commit and rollback?

- Can I use Savable Data Pages multiple times in a flow?

- Can I use Savable Data Pages to save related Pega data in BLOB tables?

- Can I use Savable Data Pages to save multiple instances in a Page List?

- What approaches are available to detect whether a page has changed and needs to be saved?

- Can I use a Savable Data Page with an Activity-based Save Plan that enqueues the save to be performed via background processing?

- Can I use a Savable Data Page that saves its data across multiple Systems of Record?

- Can I implement a Save Plan for a Savable Data Page that loaded its data using “Aggregate Sources”?

- Further resources on Pega Community that discuss Savable Data Page usage?


Data Pages:



General


- Why would I use an Auto-populate (Refer-to or Copy-From Data Page) Property when I can also reference the Data Page I need directly?

- What are the considerations for loading Data Pages via asynchronous or parallel processing?

- What are the considerations for loading Data Pages of large data sets?

- What are the considerations for loading Data Pages that perform stored procedure calls?

- I can use a Lookup to populate a List-structure Data Page now?
The Response Data Transform must be important!

- I can use a Report Definition to populate a Page-structure Data Page now?
The Response Data Transform must be important!

- What are the guidelines on storing embedded page (or page list) data in case vs. storing this data as separate instances and using auto-populate?


Data Pages:



Error handling


- How should errors be presented when loading a Data Page from its Data Source(s)?

- How should errors be handled when saving a Savable Data Page according to its Save Plan?

- What are the responsibilities of the Response Data Transform in error handling for Data Page loading and saving?


Data Pages:



“Aggregate Sources” Data Source


- When using the “Aggregate Sources” Data Source, how can variations between data formats of different Systems of Record be managed?

- How best to de-duplicate data when records for the same entity are retrieved from multiple Systems of Record?

- Are the Systems of Record referenced in an “Aggregate Sources” Data Page contacted in series or in parallel? What are the performance considerations?


Data Pages:



Logical vs Physical Data Models


- What is the difference between using -Data- and -Int- classes?

- What are the implementation approaches for mapping between Logical and Physical data models?

- What do -Int- classes represent in today’s Pega?

- How is the REST wizard in App Studio different to the one in Dev Studio we’ve used forever?

- How do I accommodate changing the System of Record for my -Data- class from Pega to something else?


Data Modeling:



Encapsulation


- How to promote reusability of encapsulated rules that have minor variances?
For example, different Zip Code formats, different layouts of Address.

- When should I use App Studio or Dev Studio to build out assets on the subclass, such as what was shown for during the Polymorphism topic?

- Should case type data be a separate data type that the case type is composed of?


Data Modeling:



Inheritance


- What guidance is there on setting up to utilize Inheritance?
What are the considerations for choosing one design over the other?

- In what layers should the inheritable rules be placed?

- How do I inherit from two Classes from multiple reuse layers when pattern-inheritance is not appropriate for either?
(e.g. SomePegaApp-Address vs PegaData-Address)

- Can Data Pages for a Pega Class be used when I create a subclass of that Pega Class?

- Should we utilize Direct- or Pattern-inheritance of Pega Strategic Application (Framework) classes?

- What strategies are available for rules on subclasses to delegate to or “wrap” the corresponding behavior from a superclass without copying it and creating a maintenance issue?


Data Modeling:



Polymorphism


- When should we use Circumstancing and when should we use the Polymorphism setup?

- How best to specify a dynamic class name at runtime for a Polymorphic setup?
What about guardrail warnings?

- Are regionally-specific address structures another Polymorphism use case?

- Can I use Polymorphism in Page Lists?

- Can you clarify how Pega acts on the runtime type of an instance when it is a subclass of the class used at design time?
For example, when saving that instance, what table does it get saved to?

- Does Polymorphism apply to Data classes only, or Work classes too?
- Answer: Polymorphism applies to any class in Pega

- What can I empower my Delivery Team to do in App Studio to implement my Polymorphism-oriented design?


Data Modeling:



Placement of Rules


- Creation of Data Classes from a reuse perspective: Enterprise/Organizational layer? Separate Component? How do I choose a Ruleset within a layer?

- Where to put a class when you don’t know how reusable it is, and be able to adapt when more is known?

- What are the triggers for subclassing from reuse layers to specialization layers?


Data Classes:



Defining


- How to set up application layers to promote inheritance of data classes from Pega applications (or Client layers)?

- Should class design focus on Pega data models or the client’s data model?

- Can a Data Class include self-referencing properties (like an Employee class including a Manager of type ‘Employee’)?

- What practices should be followed when embedded page data needs to be duplicated to the top-level for reporting purposes?

- Customer Decision Hub encourages a flattened data model (for performance). How do the Data Modelling principles in this webinar reconcile with this?

- How should I approach defining Pega application classes if the data model of the existing System of Record doesn’t adopt the principles in this webinar?


Data Classes:



Creating


- Can I adopt existing business data models the Client has available?

- Should I create Data Classes to make connectivity to a System of Record easy, or match the business data model of the Client?

- Can we use the Integration Wizard to set up Data Classes using JSON samples?


Data Classes:



Concrete vs Abstract


- Should Data Classes be Concrete or Abstract?
- Should new Data Types always have a Database Table?


Data Classes:



Using Pega OTB classes


- Should we use Data Classes and Properties available from Pega?

- How to handle implementing specializations of existing capabilities from Pega classes?

- How strong the need is to create layer-specific classes that inherit from Pega classes?
Components
- What is the ideal scope of a Component? What does it include and how many rulesets should it be comprised of?

- Are Components a candidate for reusable data models across application layers including Framework and Enterprise layers?

- If I need to target specific Ruleset from App Studio when I create a rule, does that mean I should be building a Component?
Miscellaneous
- What can we expect in Pega Academy as a follow-up to this webinar?

- Are these data modeling principles not being adopted in practice?

- What are the effects of Data Design & Modeling guidance from this webinar on Report design?


App Studio adoption:



App Studio or Dev Studio?


- What is the longevity of Dev Studio?

- When do I as the LSA use App Studio or Dev Studio?

- Some advanced UI configuration options aren’t available in App Studio, shouldn’t I just do everything in Dev Studio to be sure I can get the job done?

- What other App Studio capabilities do I need to be aware of as a LSA who has only ever known Dev Studio?


App Studio adoption:



How to … in App Studio


- How can Citizen Developers see and use inherited rules, including Properties?

- How can I get App Studio to follow Pattern inheritance when creating Data Types?

- How can data classes created in Dev Studio be made available in App Studio for Citizen Developers to use?

- How do we reuse OOTB data types like Address via App Studio to capture address details like what was shown in the webinar?

- How do we prevent Citizen Developers creating rules in all kind of RuleSets and Layers?


App Studio adoption:



Using Branches … in App Studio!


- What do I need to know about using Branching in App Studio?

- If there are multiple open branches, what do I need to be mindful of when using default Branch settings in App Studio?

- How does App Studio choose the ruleset to use for a new rule?

- How do we maintain DevOps best practices when using Branching in App Studio?


App Studio adoption:



UIs, Views & Templates


- Should I create customer-specific templates, or stick with out-of-the-box templates?

- Is App Studio dependent on Design Templates?

- Some advanced UI configuration options aren’t available in App Studio, shouldn’t I just do everything in Dev Studio to be sure I can get the job done?
General questions
- Are there bulk options to mark Properties as Relevant Records?

- What to keep in mind from a performance perspective when designing the data model?

- What are the performance considerations for data retrieval in modern Pega applications?

- Where to place the client Enterprise layer in the built-on application stack when Pega applications are in use?

- How do I learn more on the latest features in Pega Infinity?

- Can you point me to the latest naming guidelines?

- Scope of data model classes: UI Layer vs Process Layer vs Integration Layer?

- How to encapsulate capabilities required by some, but not every application?

- Should I always look to eradicate Guardrail Warnings incurred from advanced data design techniques?

- Should existing applications be refactored to adopt the data design principles from this webinar?