What are abstract and concrete classes?
- - Classes are containers for rules
- >Properties, Sectons, Flows, etc.
- - Can be ABSTRACT:
- >Cannot be instantiated
- >Define containers in which re-usable rules are saved
- >Names should end in Hyphen
- - Can be CONCRETE:
- >Can be instantiated
- >Names must NOT end in hyphen (e.g., -InsCorp-FW-PA-Work-Quote)
- >Inherit rules from Parent Classes
How does inheritance work in the class structure?
- Rules' position in the class structure defines the scope of its re-usability
- Rules in a parent class may be accessed from a child class
- Rules in parent class may be overridden by defining the rule in a child class
What is Dual Inheritance Mode?
- - A Class possesses 2 inheritance mechanisms
- - Both types of inheritance are used to locate rules
- >Classes SHOULD have a parent
- >Classes MUST have a directed parent
- Pattern inheritance established by class name (e.g., InsCorp-FW- inherits from InsCorp-
- Direct inheritance is specified on the class rule form
How is Rule Resolution achieved?
- - Locates the right rule at the right time by searching the class heirarchy
- >First = Pattern (has precedence)
- >Second = Directive
- Continues Pattern-Directive-Pattern-Directive iteration from the initial root node all the way up to @baseclass
- Locates potential rules on the way up
- Pattern and directed inheritance from the foundation of rule resolution
What 2 purposes does a ClassGroup serve?
1) Define a workpool (collection of worktypes/workclasses)
2) Identify a physical database table to store work objects
- 3) Store name of the property that will become the Work Object unique identifier (primary key)
- >Must directly inherit from Work-
What does Work- contain?
- Rules to be used by class group and work objects
- Rules to be used as examples
- Rules to be used as stubs
How do you define a Class Group?
- To create a class group, identify the class as a class group and supply the primary key
How do you define a Work Type?
- A work type is defined by a work class
- To create a work class, specify that the class belongs to a class group and select the class group name
What are the 2 types of Re-usability/
1) Application - Assets are specific to an application and common to more than one business unit
2) Enterprise - Assets common across multiple divisions or applications
Application Design - What is the Framework Layer?
- Defines a common foundation for specific implementations
* Pega Solution Frameworks (Such as Smart Investigate, CPM, etc.) contain most rules in Framework classes for re-usability.
What is the Implementation Layer?
- - Defines a specific, non-reusable application
- >e.g., Purchase Request app in Fast Track
- Work Objects, Assignments, and Report Output are from one implementation class.
Can one Framework layer support multiple implementation layers?
- Requirement - need to reuse the assets from one part of the company in another
- Solution - Framework layer creates a reusable class structure
- Purpose - to define a common foundation
- Requirement: A need to make use of the common assets developed for a company's line of business (homeowner's quotes, automobile quotes, etc.)
- Solution: Implementation layer extends a reusable class structure for a specific implementation
- Purpose: To extend the common foundation
How do you access the Class Inheritance Diagrams?
- - From Application Explorer
- > Right Click "Class Name"
- > Choose "Inheritance"
What does the Class Structure Viewer display?
- Displays and allows user to explore inheritance relationships among all classes in an app
- Click "Individual Classes" to expand heirarchy
- Can display or hide work-Data- or domain level (InsCorp) classes
- Application>Class Structure>Right click on class and select structure
What is a Rule Set?
>What are they used for?
- RuleSet is a container for related classes and rules
- - Rulesets are used for:
- >Access Control
- >Migration (Deployment)
- >Rule Versioning
How should you name your RuleSets?
- - RuleSet Name
- >Max 64 characters, mixed-case letters, no spaces
- >Something to reflect the classes it contains
- - RuleSet Version
- >3 dash-delimited numbers starting with 01-01-01 major-minor-patch
Where are Rules created?
- Rules are created in RuleSet versions
- RuleSet versions are developed, locked, and migrated to test and production environments
- Operators are granted access to RuleSet versions
How is access to RuleSet provided?
- Access can be granted up to and including listed major, major-minor, major-minor-patch versions
- The operator profile displays the RuleSets the operator has access to
What does an operator's RuleSet list use?
- Personal RuleSet list (if check-in/check-out is selected)
- Production RuleSet (from Access Group)
- RuleSets listed in Application rules
- Pega-AppDefinition, Pega-ProCom, Pega-IntSvcs, Pega-WB, Pega-Rules (PegaRules Application Rule)
If Access Group is not listed in Operator ID record, Access Groups or additional RuleSets are searched in which 2 locations?
- Division Membership
- Organization Membership
Can an operator belong to one or more Access Groups?
Can Access Group list one application and possible additional RuleSets?
What do Applications list?
Can Applications be built on other Applications?
- e.g.: Application 1
- >RuleSet 1
- >RuleSet 2
- Application 2
Can multiple operators belong to one Access Group?
- Yes: multiple operators can belong to one access group
- System Administrators create operator IDs that reference Access Groups
What do Access Groups reference to construct a RuleSet list?
- Application Rules
- Production RuleSets
What is an Application Rule?
- Defines an ordered set of RuleSets that together identify the component of a Process Commander application
- Built on other application rules to create a 'chain' of RuleSets
Identifying Class and RuleSet membership
>What does the Rule Form show? (2 things)
- - RuleSet Form shows:
- >Class this rule is applied to
- >RuleSet this rule is a member of
What tool in PRPC creates RuleSets based on established best practices?
- Enterprise Application Accelerator
Is it a best practice to use a RuleSet? (Why?)
- - Yes - best practices include using a RuleSet
- >To combine related abstract classes (e.g., InsCorp- and InsCorpFW-_
- >To contain a WorkPool (Class Group and Work Classes)
- >To contain a framework
When would you consider building additional RuleSets?
- The RuleSet has a reasonable chance of holding rules
- Certain rules will be deployed separately (e.g., rules for a specific Division)
- Rules need to be versioned independently in an application
- Different parts of the Application will be secured independently (Managers have access to an App)
Why do you lock RuleSet versions?
- RuleSet versions can be locked to prevent new rules from being added and existing rules from being updated or deleted.
What 2 steps need to be taken when locking RuleSet versions?
1) All rules checked in
2) Password created for unlock
>>>For Production, RuleSets should always be locked in production
What are RuleSet Pre-requisites used for?
- Used during development to enforce rule dependencies
- When saving Rule A, the pre-requisite verifies that PolicyAdmin 01-02-01 RuleSet exists
- When migrating InsCorpHome 01-02-01 the import files or target system must contain PolicyAdmin 01-02-01 RuleSet
RuleSet Pre-Requisites Include:
- RuleSet Pre-Requisites are daisy chained
- During development, a rule in the InsCorp 01-01-01 RuleSet refers to a rule in Pega-Rules:05-05-01. Pega-ProCom:05-05-01 must be in the pre-requisite list for InsCorp:01-01-01 to gain access.
- Rules created in InsCorp:01-02-01 have access to Pega-Rules:05-05-01 because of pre-requisite chain
RuleSet Pre-Requisites Continued:
- Best Practice: When creating the RuleSet pre-requisite chain, mirror the pattern and direct inheritance structure for a given class heirarchy
- Some RuleSets may have more than one pre-requisite
What does PRPC use Rule Resolution for?
- To decide which of a number of possible rules will be used in a particular situation.
What are the 10 steps in the Rule Resolution Process?
- 1) Check Cache
- 2) Selected by Type and Name
- 3) Discard availability = No?
- 4) Discard inapplicable RuleSets and RuleSet Versions
- 5) Discard rule not in class heirarchy
- 6) Rank (Class, RuleSet, Circumstance, Date)
- 7) Set Cache
- 8) Find best instance
- 9) Availability = Blocked?
- 10) Security?