System Architect
System Architect
overview======
Dev Studio
Co-develop solutions
To help these two groups work together, Pega Platform enables a co-
development approach that embraces the strengths of each group.
Citizen developers and business analysts can use these tested and
proven rules to reduce development time for later releases.
Application developers can switch between App Studio and Dev Studio as
needed to configure rule behavior.
The upper-left corner of each studio contains a menu listing all the
studios available to the user.
To switch to another studio, select the studio name from the menu.
In addition, from App Studio, you can open specific rules in Dev
Studio.
The following table illustrates some common App Studio elements and the
different names used for those elements in Dev Studio.
App Studio
Dev Studio
Field
Property
Goal and deadline
Service Level Agreement (SLA)
Process
Flow
Data relationship
Page
Developers can switch between App Studio and Dev Studio as needed to
configure rule behavior.
Developers can use Dev Studio to combine rules into solutions such as
completed views or processes for use in App Studio.
Developers in App Studio and Dev Studio configure the same rules, but
Dev Studio provides more configuration options.
Checking out a rule does not prevent an application from running the
rule.
Checking out a rule only prevents developers from updating the rule
until you check in the rule.
===================================================================================
===================================================================================
=================
========================Creating a rule===========================
Rules describe the behavior for individual cases, such as how the user
interface is displayed and when work urgency increases.
Pega Platform uses the rules you create to generate application code in
the background.
Pega Platform provides many rule types to use as templates for creating
a rule.
The rule type determines the type of behavior modeled by the rule.
Each rule type models a specific type of behavior, such as automated
decisions or UI design.
For example, to model a process you use a specific type of rule called
a flow rule.
For example, when you configure a case type in App Studio, you use the
case life cycle and configuration panels to
add processes,
define steps, and
configure views.
In the background, Pega Platform creates and manages the rules that
define
Delegation
without submitting a
change request for the application.
Reuse
While you can create rules manually in Dev Studio, rules are also
created in the background when working in App Studio.
A ruleset identifies, stores, and manages the set of rules that define
an application or a significant portion of an application.
Ruleset versioning
Pega Platform™ manages the creation of rules and identifies the ruleset
and version in which to store rules for applications created in App Studio.
a major version,
a minor version, and a
patch version.
Major version
Minor version
Patch version
Ruleset stack
The ruleset stack determines the order in which Pega Platform looks
through rulesets to find the rule that is in use.
Each entry in the ruleset stack represents all the versions of the
specified ruleset,
starting with the listed version and working down to the lowest
minor and patch version for the specified major version.
If you need more control over how a rule is created and reused, you can
create the rule in Dev Studio.
When you create a rule in Dev Studio, the New Record form prompts you
to provide four pieces of information:
>rule type,
>identifier,
>class, and
>ruleset.
You can access rules from the Dev Studio navigation menu by clicking
Records and selecting a rule type to display a list of rules of that rule type.
Rule type
The rule type determines the type of behavior modeled by the rule.
Each rule type models a specific type of behavior, such as automated
decisions or UI design.
Identifier
The identifier, or ID, identifies the purpose of the rule.
Class
The class identifies the scope of the rule. You specify the class of a
rule in the Apply to field.
The class you select determines the extent of how you can use the rule:
within one case type, or across case types.
Ruleset
The ruleset is the container for the rule.
The ruleset identifies, stores, and manages the set of rules that
define an application or a major portion of an application.
Pega Platform creates an instance key — stored using the property .pzInsKey —
to identify each rule on the system uniquely.
Identifier: StandardApproval
Apply to class: MyOrg-MyApp-Work-CaseType
Note: Some rule types extend the instance key with additional elements.
Method
Information specified on the New Record form\
If the name of the rule is provided in the reference, the label and
identifier for the rule are also specified.
Open an existing rule and click Save As The rule type,
application context, ruleset, class, label, and identifier are specified by
default.
Pega Platform returns an error when you click Create and open.
Identifier
Class
Ruleset
The application context impacts the choices available for class and ruleset
when creating a rule but is not used as part of the instance key.
The rule type helps to uniquely identfiy the rule on the system by
identifying the function of the rule.
For example, an SLA rule performs a different function than a
flow rule.
The class that is applied to the rule helps to uniquely identfiy the rule on
the system by identifying the applicable scope of the rule.
Changing the class of a rule allows you to specialize the rule
for a specific class and any child classes.
The ruleset acts as a container for a rule but is not used to generate the
instance key for the rule.
The name of the rule helps to uniquely identfiy the rule on the system by
identifying the intended use of the rule.
For example, an SLA named Approval codifies the goal and deadline for case
approvals, while an SLA named Claim adjustment codifies the goal and deadline
for an adjustor to estimate the cost of covered
damage for an insurance claim.
To select a class name that is not a case or a data type, click the View all
link.
Note: The Production Rulesets option appears as the first option in the stack
if your current access group has production rulesets defined.
Choosing this option restricts the Add to ruleset field only.
Inheritance methods
Pattern inheritance
Directed inheritance
This process repeats until the system reaches the last class in the
class hierarchy, called the ultimate base class or @baseclass.
If the system cannot find the rule after searching @baseclass, Pega
Platform returns an error.
Classes
>The Work class contains the rules that describe how to process a
case or cases, such as processes, data elements, and user interfaces.
>The Integration class contains the rules that describe how the
application interacts with other systems, such as the integration assets that
connect
Note: When you create a rule in App Studio, App Studio identifies the
appropriate class for you.
You can focus on what you want the rule to do, rather than on how to
create the rule.
If you need control over the class, you can use Dev Studio to create
the rule.
One reason for switching to Dev Studio is to create a rule that you
plan to reuse in a different application.
The Data class is a type of class that contains rules that describe the
data objects used in the application.
The Work class is a type of class that contains rules that describe how
to process a case or cases.
A class can also contain other classes. A class that contains another
class is a parent class, while a class that is contained by another class is a
child class.
A child class can reuse or inherit any of the rules defined for its
parent class.
The Work class contains a child class for each case type in your
application.
Each case type child class contains all of the rules unique to a case
type, such as an auto insurance claim.
The Data class contains a child class for each data type.
Note: View the classes in your application and their relationships from
the App Explorer, which is accessed from Dev Studio.
Parent class
A class that contains another class is a parent class.
Child class
A class that is contained by another class is a child class.
By the definition of class inheritance, the child class can use
all of the rules that are defined for the parent class.
Class hierarchy
When attempting to identify the rule to use at run time, Pega Platform
starts with the most-specific class and expands the search to increasingly general
classes.
The name of each class identifies the position of the class within the
class hierarchy. Consider the TGB-IT-Work class.
A hyphen separates each level of the class hierarchy (-). So, TGB-IT-
Work is a child of the class TGB-IT, which is a child of the class TGB.
Case type classes
A case type class describes a specific case type, such as expense
reports or auto insurance claims.
The rules associated with case type classes are unique to the
corresponding case type and are not reused elsewhere in the organization.
Work classes
Work classes contain all case types in an application.
In a Pega Platform application, all case types in an application are
associated with a work class.
While integration and data classes can occur at any level of the class
hierarchy, work classes are generally the most specific of the three classes.
Application classes
The application layer contains the required work, integration, and data
classes for a single application and allows for sharing common rules among these
classes.
Organization classes
The organization layer contains all the classes for applications across
an entire business or organization.
The organization layer often contains data and integration classes that
can be applied across the entire organization.
Base classes
Pega Platform provides base classes. These classes contain rules that
provide basic functionality for case processing.
For example, the Pega Platform provides data elements that record who
created a case and the time needed to complete an assignment.
Based on the class hierachy, the ABCInc-HR class is a parent class to the
ABCInc-HR-Hiring class. The ABCInc-HR class has a work class, integration class,
and data class.
While integration and data classes can occur at any level of the class
hierarchy, work classes are generally the most specific of the three classes.
===================================================================================
===================================================================================
=======================
Data transforms
Data transforms copy or manipulate data into the form you require.
Data transforms can be used to convert data from one type to another,
iterate over page lists, or page groups and copy entire pages at a time.
You can use data transforms to convert data from one type to another
type. For example, to complete the checkout process in the purchasing application,
the customer must provide their card number in the payment gateway.
Use a data transform to copy and convert the stored string format
credit card information into the card number property.
Note: To convert the string into a number, open the expression builder,
click the Configure icon, and use the out-of-the-box (OOTB) functions available in
Pega Platform™.
In the credit card number example, you can use the toInt() function.
For data transforms that initialize cases, use the pyDefault name.
the Context section, specify the Pega Platform ruleset context for your
data transform
Data transform actions for Clipboard
When you configure a data transform using the Clipboard data model, you
select an action that you want to perform on the data.
Set
Sets the target to equal the source. You can set single-value
properties, top-level pages, embedded pages, page lists, and page groups.
You typically use this action to initialize properties.
If the target pages that you specify do not exist on the
clipboard, the Set action creates the pages.
Remove
Deletes the target and any associated values from the clipboard.
Update Page
Sets the context for setting properties on the target page. Use
to set properties on a page that is different from the primary page.
If the target page does not already exist on the clipboard, the
system creates the page.
If the source page is different from the primary page, from the
Relation list, select with values from, and then specify the source page.
Sort
Creates custom ordered lists. You can sort a page list according
to single-value properties in that page list.
You can specify a sorting order for each property as either
ascending or descending order.
In the Target column, click the View Sorting Properties icon to
specify the properties on which to sort and the sorting order for each property.
Comment
When
Otherwise When
Otherwise
Note: If you add When, Otherwise When, and Otherwise actions to your
data transform, the system performs only one of these actions,
depending on the first of these actions that evaluate to true.
Append to
Copies a page to the target. You can copy a page if the source
and the target are of the same class,
or if one of the classes
is higher in the class hierarchy in the inheritance path.
Adds a page to the target and maps properties and their source
values to the target properties.
The source and target can be of different
classes.
Stops the data transform at the row that contains the Exit Data
Transform action.
Note: You can also call a data transform automatically from a case life
cycle in a low-code way in App Studio.
===================================================================================
===================================================================================
=================
Unlike the goal and deadline intervals, you can configure the passed
deadline interval to repeat a fixed number of times, or repeat indefinitely until
the user completes the assignment.
You can continue to increase the assignment urgency and send an
escalation action each time the passed deadline elapses.
You can configure the passed deadline interval to repeat a fixed number
of times or repeat indefinitely until users complete the assignment.
===================================================================================
===================================================================================
=========================
Cascading approval
Approvals vary depending on the case type. An auto insurance case type
may need one approval from the company underwriter.
Some case types, such as a purchase request or an expense report, may
require a series of approvals — a cascading approval process configures a series of
approvals.
The two cascading approval models are reporting structure and authority
matrix.
Cascading approvals based on reporting structure require the approval
of a user's direct manager and higher.
You can also configure business logic to set thresholds to determine
the number of required approvals.
===================================================================================
===================================================================================
=============
====== Automating
decisions with decision tables========
Note: When Evaluate all rows is set to true, the Allowed to return
values setting is disabled.
The sequence of steps required for a case sometimes varies based on the
details of the case itself.
You can automate decision-making during a process by using a decision
table.
Two examples of using decision tables in a process are determining the
next step in a flow and routing an assignment.
Tip: When you specify the decision table for a decision shape, Pega
Platform™ automatically adds a connector for each decision result.
Route an assignment
The router uses the decision table logic to determine the appropriate
operator or workbasket for the assignment.
Orders over USD50 ship free by using a standard ground service, whereas
orders over USD500 ship by using an expedited shipping service.
You can configure a property value to be greater than and lower than
certain amounts.
At run time, your application processes all rows in the table and
performs all the results from the columns that evaluate to true.
===================================================================================
===================================================================================
==================
You can use decision trees to handle logic that returns a result from a
set of test conditions.
Decision trees can evaluate against different test conditions and
properties.
A true comparison can lead to additional comparisons.
Differences between decision tables and trees
Decision table
For example, a company uses the number of years at the company and
ratings on five employee evaluation metrics to determine bonus eligibility.
Decision tree
You can reference a decision table or decision tree on flow rules, declare
expressions, activities, or routers.
The line-by-line structure of the decision tree makes it easy for a business
stakeholder or low-code developer to configure and
update dependent conditions that evaluate
against different properties.
The table structure of the decision table makes it easy for a business
stakeholder or low-code developer to configure and update a decision that
evaluates against many of the same
properties.
Tip: Conflicts are reported as warning messages when you save the form and
displayed on the Guardrails landing page.
===================================================================================
===================================================================================
===========
Cascading approval
Tip: When using a decision table with an authority matrix, set the decision
table to Evaluate all rows to return a list of results.
Otherwise, the decision table returns only one
result.
===================================================================================
===================================================================================
================
======Creating and managing teams of users========
Teams of users
Operators and work queues are associated with business units in the
organization.
You can create work groups so that resources can be shared across the
entire organization, regardless of the business unit the operator is associated
with.
Note: Operators in Dev Studio are also called users and people in App
Studio.
A work group identifies a cross-functional team that contains a manager
and a work queue.
The work queue in a work group contains shared work.
Operators associated with a work group can share work among operators
in different business units.
Each work group contains one work queue that can be shared by operators
associated with the work group.
An operator must be associated with at least one work group and can
belong to more than one work group.
Associating operators to work groups allows businesses to manage how
individuals share work without affecting the organizational hierarchy.
A work group identifies one operator who is the work group manager.
The system can use manager information in a work group for notification
tasks and routing tasks.
Work groups give managers the flexibility to assign, monitor, and
report on work performed in each work group.
Managers use the User Portal to access the work performed in work
groups.
A user has access to the work queue for their work group.
When assigned to multiple work groups, a user can access the work queue
for each of their work groups.
A work group gives users access to a work queue shared among users from
different business units.
===================================================================================
===================================================================================
==========
Sources of case data include user input, calculations, system actions, and
integrations to external systems such as a database of registered motor vehicles.
While developing applications, you may need to review the application data to
check for correctness.
Incorrect information can cause errors that lead to undesired results for
cases.
While processing a case, these data elements remain in memory for use by one
or more users.
Some pages are created by the system to track user or session data.
The clipboard consists of all of the pages used to track the property-value
pairs that represent case and session data.
The clipboard receives its name because pages can be added to or removed from
memory as needed to track case or session data.
When a value is assigned to a data element, the data element and its value
are on the clipboard.
As you run a process, Pega Platform updates the clipboard, adding or removing
pages and properties from memory.
The Clipboard tool organizes and presents all the pages in memory,
listing all the properties on each page and the value of each property.
You can also use the Clipboard tool to update and add properties to
test features that rely on data not yet added to a case, such as decisions and UI
forms.
The Clipboard tool allows you to set a property value on data not yet
added to a case.
>User Pages
>Data Pages
>Linked Property Pages
>System Pages
User Pages
System Pages
pyWorkPage stores data that is generated during case creation and processing.
pyWorkPage is a specific page on the clipboard and stores data such as the
case creation date or the case ID.
Embedded pages within pyWorkPage store sets of case data as defined by a data
type.
When you open a child case, the clipboard also contains the page pyWorkCover.
The page enables you to copy data between the parent case and the child case
and confirm that any data mapped from the parent case to the child case is correct.
===================================================================================
===================================================================================
================
===============Validating data in Dev Studio=========================
>When a Canadian customer submits their address, the postal code entry
must conform to the standard format for Canadian postal codes.
>When an investor opens an investment account, they complete a
questionnaire to determine their experience level.
Only
individuals with extensive investing experience can add margin trading to their
account.
>When a person enrolls in a healthcare plan, the applicant must upload
a consent form to allow disclosure of medical information to third parties.
Validate rules
Validate rules ensure that the data that your users provide meets the
conditions that a case requires in order to go forward.
In Dev Studio, you can extend validate rules that are created
automatically in App Studio.
You can also create new validate rules in the Process category.
Edit validate rules are used for client-side validation, which means
that the value users enter is validated immediately without referencing the server.
Validation occurs when users make a change to the entered value.
===================================================================================
===================================================================================
=================
Default values
When a user creates a case, you may want to set default values for
properties that are already known.
Setting default values can reduce the time users spend entering data.
Pega Platform™ provides two types of data transforms that are used to
automatically set default property values and page properties when you create a
case:
>pyDefault and
>pySetFieldDefaults.
The first time you create a view for your case type, Pega Platform
creates the pyDefault and pySetFieldDefaults data transforms.
You can also create them manually. When a new case is created, the
pyDefault data transform is invoked by the pyStartCase process.
Note: To reference the OperatorID data page, you must add an entry to
the Pages & Classes tab.
Superclass feature
After identifying the highest parent class, the system uses rule
resolution to find the data transform that has the same name as the current data
transform.
Pega Platform comes with standard pyDefault data transforms in the work
classes from which the case types inherit.
The standard Work- pyDefault data transform sets property values that
are used in all case types.
Tip: You can override these default settings in the case type pyDefault
data transform.
For example, the Work- pyDefault work urgency value is set to 10.
If you want to prioritize cases in your
case type, you can change the default urgency value for all new cases to 40.
===================================================================================
===================================================================================
============================
Data pages
Ensuring the accuracy of sourced data reduces the chance for errors —
and undesirable outcomes — for cases significantly.
Note: Data pages created in versions of Pega Platform before 7.1 begin
with Declare_ instead of D_.
In Dev Studio, you can create data pages. When creating a data page, a
developer must provide four key pieces of information:
Structure
The structure of the page determines whether the data page can
contain one item or many items.
Object type
To set the object type for a data page, enter the class of the
object in the Object type field. The object type allows the data page to reference
any property defined for the class
Edit mode
Set the data page mode by selecting an option from the Mode drop-
down list.
Set the edit mode to Read-Only to prevent an application from
updating the data page except when loading and updating the contents from the data
source.
Note: If the data page mode is Editable, the Clipboard tool lists
the data page in the User Pages category.
Set the edit mode to Savable to configure a save plan that allows
the application to push the page contents back to the data source.
Scope
To set the page scope, select one of the supported options in the
Scope drop-down:
Thread,
Requestor, or
Node.
Data sources
Use the Data sources section of the data page form to specify how
Pega Platform populates the contents of a data page when an application references
the page.
Data transform
Activity
Connector
Report definition
Database lookup
Robotic automation
Robotic desktop automation
You must configure a data transform to map the response to the data
model for the case type or data type when:
If you must combine data from multiple sources to populate a data page,
select the Aggregate sources option.
Then, identify each of the data sources to query. Pega Platform
populates the data page from the specified sources in the listed order.
When data needs referenced from a data page, a Query field type is
used.
While most data objects created by Integration Designer will not have a
key or the other needed data pages to create a reference relationship.
A Query field does not store any key values within itself, so any
parameters to the data page are external to the field.
The first time users access a data page, Pega Platform™ populates the
page with up-to-date information.
Subsequent users access the same cached data, even if the source data
changes.
Refresh strategies
The refresh strategy for a data page defines one or more conditions for
testing whether the contents of a data page are considered stale and need to be
reloaded.
When a user accesses a data page, Pega Platform checks the refresh
conditions configured for the data page.
In a data page record, the Load management tab provides developers with
three options for configuring a refresh strategy for a read-only data page.
The Reload once per interaction option updates the contents of the data
page each time a user accesses the page in memory.
This option is available only for pages with the scope set to Thread or
Requestor and cannot be combined with any other refresh option.
Select Reload once per interaction to update the data page every time
the customer accesses the page, to ensure that the seating information is as
current as possible.
After the interval ends, the data page contents are considered stale,
and the next attempt to access the data page causes Pega Platform to update the
data page.
Pega Platform never refreshes a data page more than one time per
interaction, regardless of how the data page refresh options are configured.
Page autopopulation
To autopopulate pages with data, Pega Platform™ provides you with the
option to refer to or copy data that is stored in another system or application.
The option you choose impacts the storage and refreshing of data in a
case.
Refer to the data page when you always need the most current data from
an external system or application.
Use this option to ensure that the data displayed in the Pega Platform
application is up to date.
The data reloads according to the refresh strategy specified on the data
page. The property (page or page list) always points to the current version of the
data page.
Whenever a data page parameter is updated, a new data page is created. The
property then points to the new page.
Copy data from a data page
Copy data from the data page to a case when you need data from a
specific point in time.
Once you copy the data to the case, the data is not retrieved from the
source again unless the request parameters change.
When you populate a list with data from a data page, only the
selected value is copied to the data model of a case.
The value copied to the case does not need to match the value
displayed in the list.
When you populate a list with data from a data page, the items in
the list update according to the refresh strategy specified on the data page.
===================================================================================
===================================================================================
================
You can use savable data pages to save a page or page list of data
specified in a data page back to its system of record (SOR) regardless of whether
the SOR is Pega Platform™ or another system like an external database.
The data save plan for a savable data page details how saves are
performed.
You specify the data save plan in the data save options section
of the savable data page.
You can specify multiple save options, where each save option is
associated with a when rule that determines when that save option is used.
Note: When you want to commit to multiple data tables at a time, you
can use when conditions in the data save plan.
Whenever the when condition evaluates to true, then the data commit is
performed.
Database save
The Database save option saves a single page of data to a single
database row in the configured system of record.
You can configure a data transform to source the information to write
back to the system of record.
How the data page applies changes to the data is dependent on the data
access settings on the property holding the data.
This option maintains transactionality within the save operation when
the data is saved.
The Database save option is available for data pages with a page
structure only.
Connector
The Connector option saves and persists data to an external SOR by
using a REST connector.
Only REST connectors are allowed for use in a save plan. Other
connector types, such as SOAP, cannot be used in a save plan.
Robotic automation
The Robotic automation option uses a Robotic Process Automation (RPA)
to write data to an external system of record.
Activity
The Activity option calls an activity to save the data.
You can use this option to access a connector for pages managed by an
external SOR or for a local save to the Pega Platform database.
You can use any supported integration connector option.
Unlike the Database save option, the Activity option does not guarantee
transactionality.
You can trigger the save plan for a savable data page in one of three ways.
When triggering the save from a flow or a flow action, Pega Platform
automatically manages the transaction.
If you trigger the save from an activity rule, you can choose whether to save
the data in conjunction with the rest of the transaction or independently as a
separate transaction.
Database save – Use this option to save data to the system of record.