Professional Documents
Culture Documents
1 – February 2016
a. Class
b. Ruleset
c. Circumstance
d. Circumstance Date
e. Date/Time
o Remove all candidates that are withdrawn or have the same class, same RuleSet major and the same qualifiers as the
withdrawn candidates.
1. Set the cache.
2. Find the best instance (and check to make sure there is not a duplicate rule).
3. Check that the Availability is not set to BLOCKED. (could cause error message to be thrown when called at runtime)
4. Security – Verify that the user is authorized to see the rule. (could cause error message when called at runtime)
* Availability settings:
Yes = “I’m OK to be executed.”
No = “I’m not OK to be executed, pick someone else.”
Withdrawn = “I’m not OK to be executed and neither are any of my earlier versions. Pick someone else.”
Blocked = “I’m not OK to be executed, but do not pick anyone else. Just don’t execute.”
* Ancestor Tree
The “ancestor tree” refers to a rule’s inheritance.
* Default Candidate
A default candidate is the first candidate (highest ranked) rule that has no qualifiers.
Rules with qualifiers that match are selected before the default.
* Inheritance
Inheritance is what allows a class to use rules from its parent as if they were its own.
Parents cannot access rules from their children, so Class B can only use the rules defined on B.
Inheritance is an Object Orientated Programing concept. Inheritance is defined as being “a kind of”. In most Object
Orientated Languages, we can only define one thing as being “a kind of” one other thing. Like a desk ‘is a kind of’ furniture, or
a poodle ‘is a kind of’ dog.
PRPC has the ability to define two kinds of inheritance, Pattern and Directed. By providing two paths of inheritance, we can
achieve multiple reuse patterns.
Pattern inheritance is checked before directed inheritance.
In order to see all the parents a class has, we just need to right click on the class and select Inheritance.
* Pattern Inheritance
Pattern inheritance is defined by the name of the class. For example, let’s look at the class:
o ADV-Purchasing-Work-PurchaseOrder
Anything before the last ‘-‘ is considered the classes parent. Patten inheritance continues to chain all the way up to the very
first class referenced in the chain. So for our class, the chain of parents is:
o ADV-Purchasing-Work
o ADV-Purchasing
o ADV
Our class can use any of the rules defined on any of these three parents.
* Directed Inheritance
Directed inheritance is how we explicitly specify an alternative parent for a class. We specify the directed inheritance on the
class’s rule form.
For our example, the directed parent is Work-Cover-. Directed parents also chain so if we were to open each of the class
definitions we’ll find that this classes parents are:
oWork-Cover-
o Work-
o@baseclass
2
CSSA Study Guide for Pega 7.1 – February 2016
So our class is also able to use any of the rules in these classes.
* Circumstancing
Circumstancing is a way we can create specialized copies of rules to use based on the evaluation of a condition
This helps us handle the outlier cases that go beyond the basic process
These are the kinds of outlier situations that exist in businesses today. Complex business rules vary from state to state; by
time, by demographic groups, and any and all possible combinations.
By using circumstancing, we can keep the processes streamlined, and allow the system to determine when to do things
differently based on the information available at the time the rule executes.
* Multivariate Circumstance
Multivariate requires Circumstance Templates and Circumstance Definitions and may span multiple properties and values.
There are four rules involved in this type of circumstance:
o The Base rule
o A Circumstanced Template (instance of Rule-Circumstance-Template) – defines which properties take part
o A Circumstance Definition (instance of Rule-Circumstance-Definition) - any number of rows and can contain any value
o The Circumstanced Rule
3
CSSA Study Guide for Pega 7.1 – February 2016
2. Class
3. Ruleset
4. Circumstance Value in alpha order (Multivariate circumstances rank by the order the properties are listed in Template)
5. Circumstance Date in descending order (largest first)
6. Time Qualified by end date, in ascending order (smallest first)
7. Time Qualified by start date, in descending order (largest first)
8. Non-Qualified
9. Version
Often one or more of these rules supersedes another.
* Class Specialization
Small amount of high level variants, and a LARGE portion of rules are specialized for them
Security - Class specialization is the only technique that offers control over security
Persistence - Can also be controlled only with class-based specialization
If two different variants of work objects must be stored in different tables, they must be in different classes.
Class-based specialization provides the most options, and should be considered first when assessing a particular requirement.
* Ruleset Specialization:
Management/Deployment: If the rules should be managed or promoted to production differently based on the specialization,
ruleset specialization is needed. RuleSets are really meant to facilitate deployment. They are not meant for specialization
within a given application. They do help specialize, but the specialization is very broad, to differentiate one application from
another. To specialize within an application, use either class or circumstancing.
Reusable feature set: Functionality used across applications, even organizations. The next question to ask is if the set of
features we are developing, while designed for a particular purpose, are reusable for almost any application. For example,
let’s say we are developing a “customer complaint” component for our insurance application, it is likely reusable.
If two rules are identical, except for the Ruleset, a user must login to a different application to switch from one to the other.
* Circumstancing Specialization:
Edge Cases: MANY variants, few rules specialized for each variant. In this case, circumstancing is very well suited.
4
CSSA Study Guide for Pega 7.1 – February 2016
Customer-specific Data: If the specialization depends on customer-specific data, rather than some predefined organizational
construct. Example: If insurance premiums depend on a combination of a customer’s age and address.
Dates and/or Temporary: If the specialization depends on dates, or is in some way temporary, use Circumstancing. These are
the key use cases for which circumstancing was designed.
* Understand the rules behind the Case Designer, and Process View
Open the starting process by clicking on the magnifying glass next to the starting process rule name. The starting flow usually
consists of only one utility shape (“pzInitializeStage”) if the case utilizes stages.
In the process tab of the Case Type rule, we can have multiple starting processes. For each starting process, there is an entry in
the “Create” menu for the end users.
We can add flows from the current layer and flow from any class in the whole direct inheritance tree.
5
CSSA Study Guide for Pega 7.1 – February 2016
* OPTIONAL PROCESSES — We can specify optional processes, which are implemented as flow rules.
These optional processes appear to end users in the Perform Harness, under the “Other actions” menu. Users can run optional
processes as needed.
In addition to stage level optional processes we have configured here, we can also have “case wide supporting processes”
which we configure on the Case Designer – Details tab.
Optional processes can be stage wide or case wide.
* OPTIONAL ACTIONS — We can have optional actions, which are implemented as local flow actions.
These optional actions appear to end users in the perform harness, under the “Other actions” menu.
Local action when processed does not make the case instance to move from the assignment shape. Local Actions can be:
Specific to Configured on Available to End Users
Assignment Assignment Shape Only in that specific assignment
Flow wide Flow rule In all the assignments of a specific step
Stage wide Stage Configuration as shown above In all the assignments of a specific stage
Case Wide Case Designer – Details Tab In any assignment throughout the case
* Start Step — The Start Step section allows us to determine when – if at all – in the stage the user is allowed to perform the step.
When the case enters the stage, it automatically attempts to prompt a user to perform the first step. Subsequent steps can either occur
in parallel or in sequence.
Upon stage entry – steps are processed concurrently when the case instance enters this specific stage.
Upon completion or skip of previous step – steps are processed sequentially when the case instance enters this specific stage.
* pzApprovalFlowWrapper flow
Approval steps can be configured for processing by a single operator, or a cascading series of operators based upon either the
existing reporting structure or an authority matrix configured by a decision table.
The cascading approval option behaves similarly to the Cascading Approval smart shape & can be configured in the same
manner.
* pxIsInCurrentStage
When a specific step of a stage is processed, subsequent step in that stage will be automatically kicked off, if that is marked to
start “upon completion or skip or previous step.” In the previous step, if we change to a previous stage using the “Change
Stage” smart shape, another step in the previous stage also started.
If this effect of two steps across two stages getting kicked off is not desired, we can have the standard when rule
“pxIsInCurrentStage” in the subsequent step.
* Launch on re-entry?
Once a stage is processed it can be re-entered from another stage by the change stage process or manually by the end user.
Only the steps that have this option selected are started automatically when the stage is re-entered.
* Summary View
Using the summary view of any standard portal, end users can quickly get an idea of how many cases are in each stage of the
case lifecycle. The number next to the stage names indicates the number of instances in that stage.
Clicking the number pulls a standard report.
In the portal, from the drop down, end users can change to different cases to pull the summary for that case.
7
CSSA Study Guide for Pega 7.1 – February 2016
* Instantiation dependency
We can instantiate the subcases based on dependencies.
We can configure the subcase to instantiate when “any or all” dependencies are met.
For a subcase to be instantiated, a dependency can be a parent case and/or any other sibling subcase(s).
The dependency conditions are:
o “Has Started” (dependency is another sibling subcase for a subcase to be instantiated)
o “Has Work Status” (dependency is the parent case or another sibling subcase for a subcase to be instantiated)
o “Has Completed” (dependency is another sibling subcase for a subcase to be instantiated)
o “Manually by user when” (users manually click in other actions to instantiate “Add Work” when condition is true)
We can have more than one dependency.
* Inheritance of a subcase
Direct inheritance does not have to be the same as that of the parent case or the class of the parent case.
Pattern inheritance does not have to be the same as that of the parent case or the class of the parent case.
* Getting Data from the Parent Case to the Subcase(s)
Details tab of the Case Designer – for using data conditionally or looping through a page list and may also apply data transform
Processes tab of the Case Type rule of the parent case – data propagation configuration information is stored
Step Configuration in the Parent Case Designer – a data transform can be used for data propagation
If the parent data changes after propagation, the new data is not reflected in the sub case
o If the latest value of a property of the parent case is needed during the processing of a specific step of a subcase use a
data transform in the flow rule that is associated with that step.
* Default locking
Locks the case when an operator opens the case.
If a second operator tries to open the same case, they get a message that the case is locked by the first operator.
The second operator is able to open the case in review mode only (with a message saying it is locked and can only be opened
in review only mode)
The Default locking timeout is 30 minutes but can easily be changed to a custom timeout.
* Optimistic locking
Enables both the operators to open the case.
No lock is obtained when the case is opened.
The lock occurs when the user clicks Submit.
When two operators are working on the same case, the changes to the case are made by whoever submits the case first.
The second operator receives a message with the first operator’s name and the time of the change.
Also there is a refresh button that allows the second operator to get the new changes made by the first operator.
The second operator’s changes are not applied until they click refresh and submit their action after the refresh.
* Locking of Subcases
If the subcase is instantiated under the parent case hierarchy, then the subcase inherits the parents locking respectively.
If default locking is used, a custom timeout for the subcase can be different than the parent case.
In the subcase locking configuration, if the “Do not lock” option is selected, the parent case is not locked when the subcase is
being worked on. The default option & recommended approach is to lock the parent case when the subcase is being worked.
8
CSSA Study Guide for Pega 7.1 – February 2016
o The advantage of using the “Do not lock” option, both the parent and subcases can be processed simultaneously.
o The main disadvantage of using the “Do not lock’” option is that since the parent case is not locked, any properties
related to the subcases, such as count of open subcases is not updated in the parent case.
* pxCoveredInskeys
This property holds the handles or pzInskeys of the subcases that are linked to the parent case.
This might be useful if there is a need to list or identify all the subcases instances of a specific parent case.
* pxCoveredCount
This property indicates the number of subcases linked to the parent.
Anytime, a subcase is added or removed, the system automatically updates the value of this property.
PRPC uses this property to indicate whether a parent case contains subcase instances and behaves accordingly.
* pxCoveredCountOpen
A standard property that holds the number of subcase instances within a parent that are not resolved yet.
As the subcases are being resolved, PRPC keeps this count updated automatically.
This property value is used to ensure that there are no open subcases within the parent case.
* Creation of Flows
When a step is added in a stage in the Case Designer, a flow rule is created for that step. Recommended way to create a flow.
If a flow needs to be created as an internal process for technical reasons, such as parsing a temporary file and do some logic
behind the scenes, we create the flow, not as a step in a case.
We can create a flow rule from the Case, Data and App explorers.
* Editing Flows
Flows can also be edited using the embedded process modeler in the flow rule and the process view of the case designer.
In the process modeler of the process view, if the step type is a Case or a Single Step Assignment, we won’t see the flow
diagram. The only way to add another shape is through the tree view, when the flow is opened in the process view.
Adding a shape in the tree view is has its advantages because the new shape is automatically added with the connectors
between the shape we right clicked on and the next shape. Similarly removing the shape in the tree view removes the shape
and the appropriate connectors and the existing shapes are reconnected.
If the step type of the step is “Single Step Assignment” or “Case”, adding more shapes to the associated flow rules changes
those steps to “Multi Step Process” step type.
9
CSSA Study Guide for Pega 7.1 – February 2016
If the spinoff flow check box is not checked, the main flow waits for the subprocess flow to finish and return the result.
If the spinoff flow check box is checked, the main flow does not wait for the subprocess flow to execute (parallel processing).
If we select “on specific work item,” we can run the flow on another case, which could be a subcase or a top level case.
* Split-Join
Using the Split-Join functionality is similar to using a sub-process without the spin-off option selected
Allows the calling any number of different flows on the current page or embedded page or a specific work item
We can configure the join condition as well (“All” “Any” or “Some”)
The calling flow execution is halted until one or all or some of the subflows are completed
The flow joins back to the main flow when all or any of the subflows are complete. For “some,” the flow joins back based on
the iteration condition. Iteration conditions can be based on a conditional When rule or it can be based on a count.
* Authority Matrix
First, we need to create a decision table to capture the requirement
This table evaluates multiple rows based on conditions and returns one or more values
This table differs from the default decision table configuration, which only returns the result for the first condition satisfied
The value(s) returned by the decision table needs to be stored in a property in a page list
When the case instance reaches this step in the stage, multiple assignments are created one by one to get the approval from
each one of the approvers
* Reporting Structure
The reporting structure can be based on ReportsTo Manager or WorkGroup Manager
In the Reporting Structure option, approvals are based on the reporting manager structure or workgroup manager structure
If the first when condition is true, based on the levels of approval, assignments are sent and approvals are made
We can add more when conditions by clicking “Add Item”
When the case instance reaches this step in the stage, the approval assignment is sent to one operator
The systems evaluates all the when conditions and stops at the last when condition. The approval assignments are then sent to
the number of levels configured using the when condition
10
CSSA Study Guide for Pega 7.1 – February 2016
Both the “Reports to” and “Work group” are set for an operator in the operator data instance – work tab
* Screen Flows
Used to break up a step performed by a single user into screens in which related data are entered.
Screen flows tend to be short in length and easy to complete in one sitting.
A screen flow is run by a single operator, and drives a single, serial process.
Create a flow rule first using the Screen Flow template, then add it as a step in the Case Designer.
The whole screen flow is an assignment and is assigned to one user.
Routing, harness rule setting, persistence and error handling are set on the start shape of a screen flow for the whole flow.
* TreeNavigation7
The current step of the screen flow highlighted in blue and shows all the steps in the navigation tree
Users can navigate using the back and next buttons or by clicking on the menu item in the tree navigation
When clicking on the tree navigation, users can jump multiple steps backwards or forwards
* TabbedScreenFlow 7
This user interface shows the current step of the screen flow highlighted in blue and shows all the steps in the tab navigation
The user can navigate using the back and next buttons or by clicking on a tab in the tab navigation
Users can jump multiple steps forward or backward by clicking on a tab in the tab navigation
* PerformScreenFlow
This user interface shows the current step of the screen flow and the previous steps in the horizontal bread crumb display
This harness option of the UI display does not show the future steps
Users can navigate using the back and next buttons to go back and forth
Users can only go back, not forward until they have already clicked that forward step (used to enforce a strict sequence)
So, clicking on a bread crumb in the navigation, users can only jump multiple steps backwards
11
CSSA Study Guide for Pega 7.1 – February 2016
When ”Enable link if using breadcrumb trail” is selected, the step as an entry point. By default, this option is enabled for each
assignment; this option must be enabled for at least one assignment in the screen flow.
When the “Only going back” checkbox is checked, the step is disabled, when the user is on a previous step. Users must
progress naturally to the step using the “Next” button.
If we enable both ”Enable link if using breadcrumb trail” and “Only going back,” the step shows up in the navigation flow
listing, but is initially greyed out from a previous step.
* Work Status
The standard property for the case instance status is Work-.pyStatusWork.
Its values are restricted and controlled.
Every case instance must have a status, which changes as the case instance progresses through the steps.
PRPC provides several standard work status values. We can also create our own statuses.
There are four broad categories of work status values:
o New (Identified with a green Flag) - just been created and has not been reviewed or qualified for processing
o Open (Identified with a blue Flag) - being processed by the organization which is supposed to process it
o Pending (Identified with a red Flag) - currently with an external organization
o Resolved (Identified with a checkered Flag) - final status for a case instance as it indicates the completion of the work
* Looking at statuses:
A few standard values are defined in each category. Click Designer Studio > Process & Rules > Processes > Status Values.
New Pending-Fulfillment Resolved-Duplicate
Open Pending-Investigation Resolved-Rejected
Pending Pending-PolicyOverride Resolved-Revoked
Pending-Approval Pending-Qualification Resolved-Withdrawn
Pending-External Resolved-Completed
12
CSSA Study Guide for Pega 7.1 – February 2016
Most flow shapes, including Start, Assignment, End, Utility shapes, and Smart shapes, provide a means to set or update work
status in the properties panel.
Work item’s status is updated when the shape is reached.
As a best practice, the status for an assignment shape should never be set to “Resolved” if the status is resolved, the user is
unable to perform any additional work on it.
The flow “End” shape provides two fields: “Flow Result” and “Work Status.” Make sure to use “Work Status” for this purpose.
When we set the work status of a case, PRPC uses the standard activity Work-.UpdateStatus to update the value of the
property Work-.pyStatusWork.
* Work-.UpdateStatus activity
Activity that changes the .pyStatusWork property directly and calls some standard activities such as Work-.Resolve if the status
value is one that started with the word “Resolved”.
Can be called from a flow utility shape.
Activities such as Work.WorkBasket and Work-.Worklist which place an assignment in a workbasket or worklist respectively,
also call Work-UpdateStatus.
* Work Properties:
PRPC also automatically maintains three standard properties in Work-class. They are:
o pyElapsedStatusNew
o pyElapsedStatusOpen
o pyElapsedStatusPending
These properties contain cumulative time in seconds that a case instance has had a New, Open, or Pending status value
* Work Party:
A work party represents an entity (internal or external) that needs to be notified about the progress or status of work.
Work parties are saved as a page group property in the case instance.
When a case is created as part of a new application through the Application Express wizard or added to an existing application
through the case addition menu in the case explorer, the system creates a default Work Parties rule for newly created case.
This rule can easily be configured from the Details tab of the Case Designer.
Clicking on the edit link displays the “Parties” form for us to edit or delete existing roles or add a new role.
By default, PRPC adds three roles, Customer, Owner, and Interested.
13
CSSA Study Guide for Pega 7.1 – February 2016
o Data-Party-Operator for PRPC application users with an Operator ID record, and the Party/Operator Party Type roles are
instances of this class.
o Data-Party-Org is reserved for the non-profit organizations, & Party/Non-profit Party Type roles are instances of this class.
o Data-Party-Person is designed for any person who is not however a PRPC application user, and the Party/Person Party
Type roles are instances of this class.
We create our own sub-classes (direct or pattern from Data-Party) to expand more categories of work parties for application.
* Classes
Classes are the fundamental building blocks of almost everything in PRPC
Classes define the logical entities or objects that an application will work with
* Pages
Pages are instances of classes that are stored in memory on the Clipboard
Pages can be top-level pages or embedded pages
* Properties
The property rules that define the attributes of the class and are critical to data modeling
Properties can be as simple as a single value, for example, FirstName
Properties can also be complex and represent a list or another class all together
Properties are both the glue that connects the blocks (classes) as well as the details that make them complete
* Clipboard
The clipboard is a memory based container for pages assigned to each user session.
* Class Type
A page is always defined as being of a specific class type
The class type defines the properties that CAN be defined on the page
14
CSSA Study Guide for Pega 7.1 – February 2016
A value list is an ordered list of single value properties. The value list is subscripted using numeric values starting at 1.
The Value Group is an unordered list of single value properties. The value group is subscripted using strings.
The page-list and group are similar to the value list and group except they represent a list of pages. Since most applications
require complex structures, page lists and page groups are much more common than value lists and groups.
Lists are particularly good when we always want to display or process all of the items in a list. Consider if you will be working
on a specific item in the collection (group), versus all items in the collection, in which case a list may be more appropriate.
* Inheritance
Inheritances and the class model, whether on work or data classes, represent a form of specialization.
They allow subclasses to inherit the properties or rules the parent class has defined. Inheritance represents an “is a type of”
relationship.
On the other hand when looking at the data model and the embedded page or page list properties we are seeing a “has a”
relationship.
Linked properties should only be used if we can guarantee that we’ll only ever need read-only access and that the objects will
always live in a database.
* Data Object
A data object determines the structure of its data pages since each data object references a data class for its definition.
When you expand the data object in the data explorer, it lists each data page and the number of times it’s used.
We can also use the data explorer to add new data objects by selecting Add/Remove Data Objects from the dropdown menu.
* Data page
Data page names must start with D_ or Declare_ to support legacy Declare pages.
Data pages store a single instance of a class or multiples (Page or List).
Data pages can be configured as read-only (default) or editable.
While data pages can be editable they do not automatically persist back to the source. That must be done explicitly.
The Load Management tab controls the settings for the refresh strategy.
16
CSSA Study Guide for Pega 7.1 – February 2016
When the data page access method is set to “copy”, an additional configuration option is available and it’s the Optional Data
Mapping option.
The reason it is optional is that the data page itself already has a response Data transform which is used to map the data.
It’s helpful if we think in terms of reuse. We might have three different case types that can each use the same data page
provided they each customize the data mapping just slightly.
18
CSSA Study Guide for Pega 7.1 – February 2016
* Parts of a Portal
The top pane is setup as a header that provides access to search for or create new work.
The left-hand pane is referred to as the navigation pane. This allows the user to switch between screens of the application.
The main area is known as the Work Pane (mandatory). This is where a user interacts with each individual piece of work.
* Portal Skin rule (Skins Tab) can be one of four possible values:
In most cases, we want to default to the Application Skin option. This will allow the system to inherit all the same settings for
the entire application.
Alternatively, we can specify another skin to use, but this does not provide for reuse and should only be used when it’s
unavoidable.
* Screen Layouts
Screen layouts allow us to specify which sections to display to the user.
Screen layouts consist of a main section and its adjacent regions. Out of the box, there are eight possible configurations for the
main and adjacent sections.
More combinations can be defined in the skin rule, but the majority of portals leverage the Header Left configuration.
19
CSSA Study Guide for Pega 7.1 – February 2016
Each region in a screen layout can only contain a single section, though that section can then in turn contain multiple
embedded sections.
The main region is typically a section that provides a single Dynamic Container (necessary to display work objects)
* Categories of Harnesses
New—this encompasses any harness that is displayed when the work object is being created
Perform— this encompasses any harness where the user is performing their assignments
Review—this encompasses any harness where the user is viewing read-only data and not interacting with a flow action
Confirm—this encompasses any harness where the user has submitted the work and does not own the next assignment
* Flow Actions
Flow Actions are how a user interacts with a work object in a Perform harness.
Specified in the flow as connectors off an assignment.
Data Transforms and Activities can be configured to execute before and after a flow action on the Action tab
* Local Actions
Local actions are a special kind of flow action that is not associated with an assignment in a flow but configured the same way.
They perform the actions specified on the Action tab but leave the work object on the same assignment
Used for optional tasks, such as transferring work between operators, updating information, and sending correspondence
Local actions should only be used if the requirement is an optional task
* Layout Types
Dynamic Layout – This is the most common layout used and use HTML5 tags and support responsive behavior
Column Layout – As the name suggests, this creates a layout with columns
Smart and Free form layouts – they exist in the product for backward compatibility
Repeating layouts – Used to display repeating groups such as a pagelists
* Repeating Layouts
Dynamic and Column layouts can also be extended using the repeating mode.
To add a repeating layout, we select Repeating in the Set Layout Type dialog and then select the type we want.
Grid (commonly used choice)
Tree Grid
Dynamic
Column
Tabbed
Unlike other layouts, the repeating layouts (like grids) require us to identify a source.
page list
a data page (with list structure)
report definition
Dynamic repeating layouts can be sourced using either a page list or a data page.
The repeating layout displays a single cell where we include a section. The section gets repeated for each item of the page list.
The Section can be designed to use any dynamic layouts similar to how we set it up for a single level property.
Column repeating layouts are similar to grids except the items are repeated across columns instead of rows. Column
repeating layouts can be sourced by a page list or a report definition.
* Configuring layouts
Layouts play a critical role in separating content and presentation.
o The presentation is configured in the skin rule
o The content is configured directly in the section where the layout is added
o Data elements are added into the layout using Control rules
20
CSSA Study Guide for Pega 7.1 – February 2016
21
CSSA Study Guide for Pega 7.1 – February 2016
* Nesting of Layouts
Dynamic and column layouts allow nesting of layouts.
Nesting is a very powerful feature which helps in the creation of layouts where fields are arranged in multiple ways.
* Standards Mode
Modern browsers comply with stricter standards mode, which follows the W3C and IETF standards.
In this mode, web applications rendered through a browser use a combination of HTML and CSS.
Modern browsers also provide a “Quirks” mode for backward compatibility, to support the browser-specific code found on
older web sites and in older web applications.
22
CSSA Complete Study Guide for Pega 7 – January 2016
Dynamic layouts separate the presentation from the content. The content that displays in the screen is configured in the
section rule while the presentation or the style is configured in the skin rule.
Responsiveness is configured by enabling the response breakpoint.
When the screen resolution reaches the max-width it pushes the sidebar below the main area.
The size can be configured in pixels or in em’s (the current font size). In addition to max-width we can also specify the min-
width at which the dynamic layout will display in this format. That is typically used when we have multiple response points.
Response breakpoints can be set on various layouts (dynamic layouts, column layouts, grids and in screen layouts).
* Layout Group
Layouts can be made responsive using Layout groups.
Layout group is a way to group different layouts such as dynamic, column, repeating dynamic and present them together.
Layout group can also include another layout group.
PRPC support four formats by default:
o Tab
o Accordion
o Stacked
o Menu
Layout groups require that the applications be rendered via the HTML5 Document Type (Standards mode)
* Skin Rule
The skin rule is now a one stop shop for configuring the presentation of our application.
The tools in the skin provides us the ability to achieve branding and styling consistency throughout our application.
The skin generates the entire CSS for our application.
A skin rule is broken down into three parts. Mixins, Components and CSS.
Skin rules are only referenced in a couple of places throughout the application.
o application rule (main skin for the entire application)
o portal rule (can override the default skin for cases where we may want to display a different look and feel, such as for
external vs internal users)
Operators can also setup a preference for a particular skin. This preference is used for developers to override the skin of the
designer studio when previewing or testing an application. Ideally, we refer to the same skin as our application.
* Mixins
A mixin defines values for a group of style attributes.
Mixins allow for efficient and clean style repetitions as well as an easy way to update our styling with ease.
A collection of mixins form the palette for the skin, such that a mixin or mixins can be used to style components in the skin.
There are three different kinds of mixins that can be defined.
o Typography, which covers anything related to text.
o Backgrounds, which covers, well, backgrounds.
o Borders, which relates to borders and shading effects.
o There’s a 4th category called Combinations, which is any mixin that affects more than one of the other categories.
* Format Categories
General
Layouts
Controls
Reports
* Formats
23
CSSA Complete Study Guide for Pega 7 – January 2016
The Components tab is where we define styles for all the different components.
Every component in the system can have one or more formats defined (Many have additional formats already defined)
We can think of a format as a ‘Type of’, so that we can have a format of button called Primary, and another called Secondary.
A format is what determines the styling of the component once associated to a User Interface element in a section.
Once these formats are defined in the skin, we can then associate formats on User Interface elements we drop in a section.
This association provides the User Interface element its look and/or style.
All components have a default called either “Standard” or “Default” that is supplied out-of-the-box.
Formats are where we use mixins. We also have the option of overriding part of the mixin.
By using mixins, we’re defining the same style to all components formats where that mixin is used.
* Using Formats
In any UI screen, select the component to edit, open the properties panel and on the presentation tab, select a format.
Once we click on OK our button now reflects the style defined by the new format.
* CSS
The CSS portion of the skin can largely be ignored. This tab is leveraged to support backwards compatibility with applications
that already use custom CSS. For any new applications, it’s better to leverage the format and mixin features.
If style sheets are used, a warning message is added to remind us that it should be avoided.
* Controls
Controls are used in two places
o when a property is defined (in the property rule form)
o where the property is referenced in the user form such as sections.
Controls are also useful in formatting the columns of the report definition.
PRPC automatically assigns a default control when a new property is created and the same control is applied when the
property is referenced in the section or report definition.
As developers we have the option to change the control in either the property rule form or in the rule where it’s referenced.
Selecting a control in the UI cell overrides control defined in the property rule form. By default, it uses the setting Control
inherited from property. We can use the change link to change it to another control.
Controls are auto-generated giving us flexibility to use in various browsers, easier configuration options (eliminating the need
to write JSP, JavaScript, CSS or HTML tags).
* Non-autogenerated controls
Auto-generated controls can be configured to serve most requirements, however some of the non-autogenerated controls
that we still use are Chart, SmartInfo, and the Menu Bar.
* Configuring Controls
Controls are a rule type that is defined as part of the UI Category.
24
CSSA Complete Study Guide for Pega 7 – January 2016
* Control Options:
Most of our applications use standard auto-generated controls, so we can configure the options and formats in the sections
where the control is added. Behaviors are also configured in the section where we add it.
o The General tab consists of the property that the control is associated with, the label, visibility settings and so on. List
Source is also configured in the General tab.
o The Presentation tab allows us to configure the items in the Options and format sections.
o The Actions tab is used for setting the behavior, which we will learn about
* Events
Events are used to trigger an action that makes the user forms dynamic.
* Event Association
Controls – In most of the cases, we associate events on controls. The main purpose of a control is to decide the presentation of
the data element in the user interface screen. Events are not defined in the actual control rule. They are defined in the cell
where the control is added.
Grids - The Events are configured by opening the properties panel of the Grid layout.
Expression Calculation – The event occurs when a declare expression computes the value of a property. This configuration is
enabled by default on all newer PRPC versions. This configuration is on the flow action rule form.
* Actions
Actions are triggered by the event.
* Actions Association
Actions are usually configured along with the events using an action set.
An Action set can be defined both on controls and on grids.
Some specific actions can also be associated outside the context of an action set. They are directly configured on the part of
the screen where we want the action to take in effect. These actions can be to:
o Apply a visible when condition on a cell or a section or a layout to hide or show its elements based on a condition.
o Apply a refresh when condition to refresh a cell or a section or a layout.
o Apply a Disable when condition to disable the cell.
o Apply a Read only condition to make the cell read-only.
Actions can also be associated directly in a Navigation rule.
* Visible When
Visible when is the main mechanism that's used in PRPC to toggle whether or not some part of the page is visible.
Visible when can be applied on sections included in another section, on layouts, and on cells.
Visible when uses a condition.
Three Visible when options exist for dynamic layouts and sections.
o Always
o Conditional (expression)
o Conditional (when rule)
Additional Visible when options for Cell Properties (In addition to Always and Conditional options)
o If not blank
o If not zero
Visibility conditions can also be added on grid layouts. We can configure to show/ hide the entire grid or a specific row.
26
CSSA Complete Study Guide for Pega 7 – January 2016
* Refresh When
Refresh When allows us to have a portion of a page return to the server to refresh its content when a specified condition is
true.
Refresh When can be configured to refresh either an included section or a specific layout.
Similar to Visible When, we can use the condition builder to add conditions.
We can configure the properties to respond to a condition and there is the option to use AND, OR to add more than one
condition. In addition to these, there are two keywords.
1. Changes – This indicates when the property’s value is changed, in this example, it refreshes when the discount is changed.
2. AddDelete – This applies only on repeating groups, so a line item can be added to or deleted.
We can also configure refresh of a specific row within grids. By default, the row never refreshes; we can configure it to refresh
on a specific condition
Unlike Visible When, a Refresh When conditions can also be configured using an action set. The action set allows refreshing the
current section or another section by its reference.
* Disable When
Disable whens can be applied only on a control using an expression or when rule
Always permanently disables it, while Never is the default choice for all controls.
* Read-Only When
Read Only whens can also be applied only on a control and the choices are not very different.
Auto means editable in most cases while read only can be applied as an expression or a when rule.
27
CSSA Complete Study Guide for Pega 7 – January 2016
* Parent – Refers to the parent page of the embedded page. If the embedded page has only one parent, and no grandparents in the
hierarchy, Top and Parent refer to the same parent page.
28
CSSA Complete Study Guide for Pega 7 – January 2016
29
CSSA Complete Study Guide for Pega 7 – January 2016
30
CSSA Complete Study Guide for Pega 7 – January 2016
* Pega Pulse
PegaPulse is a rich social platform that adds social activity streaming capabilities to the user interface.
Most of the standard harnesses, such as Perform, Confirm and the Review harnesses use the contextual activity stream
All the posts show by default. That can be filtered Posts by Me, Automated Posts, Posts with Files and Posts with Links
PegaPulse is limited to attaching conversations, URLs and files, compared to Case Attachments which are more open.
In PegaPulse, we can take actions such as creating a task, which we cannot do with Case Attachments.
We can post to the workgroup from here – and it’s the same as posting from the portal.
* Configuring an Application to Automatically Post to Pega Pulse (Post to Pulse smart shape)
To automate the posting of an update to the contextual activity stream, we can use the Post to Pulse smart shape.
The properties panel for this shape contains four configuration options that govern how updates can be viewed.
o The User posting drop-down list lets us select the user under whom the system adds the update to the contextual
activity stream. By default, posts are attributed to the assigned operator (Current Operator). We can also select
Other, then select the operator ID we want to use.
o The Message field contains the content of the automated post.
o The Message pertains to the current case and Make secure post checkboxes allow us to configure the availability of
the post. The Make secure post option is available only when Message pertains to the current case has been selected.
* Viewing Attachments
Anyone who has access to this case can view the list of the attachments and can also view the contents of the attachments.
In the Advanced attachments window, attachments are grouped by type. Here we get to see the timing/description/author.
31
CSSA Complete Study Guide for Pega 7 – January 2016
AddAttachments allows us to add a file attachment and assign it to an attachment category and AddMultipleAttachments
provides the ability to add multiple file attachments, with a category for each, in a single action.
* Tables for Attachments
By default, case instance attachments are stored in the “pc_data_workattach” table
They are stored as instances of concrete classes derived from the “Data-WorkAttach-“ class
They are not stored directly with the case instances in the same table.
32
CSSA Complete Study Guide for Pega 7 – January 2016
o In most of the standard portals, we can pull the next assignment to work with “Get Next Work” logic by clicking on “Next
Assignment” button at the top of the portal.
* Viewing Work
As a work group manager, he/she has the privilege to view individual members’ worklists.
The work group managers and all the other operators can see the list of workbaskets to which they have access, on their
portal, on the bottom right hand side of the dashboard.
Selecting a workbasket shows the assignments in a particular workbasket. They are waiting to be pulled by an operator.
An operator can select one of these items directly, which promotes it to his/her worklist.
Repeat steps 5 to 8 but with the Work-.findAssignmentinWorklist activity and the standard list view Assign-Worklist.GetNextWork.All
* Decision Tree for “Get Next Work” Functionality
If the task is ready to be worked on. This means that the pyActionTime property of the task is NOT in the future.
If the current worker has already worked on or updated the task earlier that day.
If the worker has the required skills to work on this task.
34
CSSA Complete Study Guide for Pega 7 – January 2016
Some of these rules can optionally check for urgency, and only send email when the urgency is equal to or above this value.
* Ad-hoc Notifications
The assignment or flow or stage or case can have the local flow action “SendCorrespondence”
At runtime, from other actions menu, we can click the “Send Correspondence” and lets us send ad-hoc notifications.
When we click on the link, we see the work parties drop down.
Whenever an email is sent automatically as part the processing the case instance, or manually (ad-hoc), a copy of the email is
attached to the case instances, and we can view them from the attachments section in the perform harness.
* Tickets
In the flows for a case, we define when an event may be considered a “business exception” by raising a ticket
A ticket rule only defines a name and description and not the processing to occur in the case of an exception
We can use the Ticket landing page available by selecting the Pega button >Process and Rules > Work Management >, Tickets
in our current application to verify which ticket rules are in active use, and by which flows or activities.
PRPC provides us with two distinct ways to raise a ticket.
o Provide users the option of selecting the Work-.SetTicket or @baseclass.SetTicket flow actions when processing
o By calling the standard activity @baseclass.SetTicket. This activity takes the ticket name as a param and turns it on/off
* Referencing a Ticket
We do this by referencing the ticket defines the starting point of the processing that needs to occur once a ticket is raised
Once a ticket is raised, flow processing stops and resumes at the point in the flow where the ticket is referenced
In the process modeler, specific shapes have the ticket functionality built into the Properties panel
Use the “Tickets” tab of the Properties panel on the shape we want the processing to resume from when the ticket is raised.
Most shapes (except Start) provide a “Tickets” tab in properties panel (The shape has a ticket indicator with description)
35
CSSA Complete Study Guide for Pega 7 – January 2016
* Forward chaining
Forward chaining is executed when the value of any of the source properties change.
Most of the declarative rules follow forward chaining.
Declare Expressions are configured in Forward Chaining Mode when we select the option Whenever inputs change.
Constraints- when the value changes, the constraint is executed to verify that the value conforms to the conditions expressed.
Declare OnChange can track several properties that have been saved as part of the case. When one or more of these
properties change it invokes the activity which has the logic to be performed. The Declarative Engine invokes the activity only
once if more than one property gets changed.
The Declare Trigger executes when instances of its classes are created, saved or deleted in the database. On the database
event, it triggers an activity which contains the logic to be performed. Triggers can be used in cases when we want to capture
the history of how a property got different values over the case lifecycle.
The Declare Index executes when the values of a page list or a page group change which requires the system to update the
records saved in the indexed table (corresponding to the indexed class). This is primarily used in reporting when we expose
page list properties to improve performance.
* Backward chaining
Backward Chaining mode executes when the target property is referenced.
Backward chaining is supported only for declare expressions.
Declare expressions provide three options for Backward chaining.
1. When used, if no value is present
2. When used, if property is missing
3. Whenever used
The target property is considered used when it’s referenced by its name, such as in a UI rule, in a decision tree or in a data
transform.
The if no value present / if property is missing options make sure the expression is calculated only once in the case lifecycle
unless the property is removed from clipboard.
When we use Whenever used the system throws a performance warning, indicating that the expression will fire as many times
as the target property is referenced.
36
CSSA Complete Study Guide for Pega 7 – January 2016
* Delegation of Rules
1. Identify the group of delegated users – These users must be part of a specific access group and the rules should be in a specific
production ruleset that these users can access. These users should also be able to access the delegated rules from their portal.
2. Identify the Rules that can be delegated– Typically any of the Decisioning rules can be delegated. This makes it easier to make
changes and PRPC supports additional configuration to Decisioning rules which makes it easier for us to update them.
3. Improve readability and customization options to make it easier for users to make their updates.
* Improving Readability
Decision trees usually look complex with multiple if-then-else statements, but we can make these more user friendly in several
ways. We recommend you follow these guidelines when delegating rules to business users so it’s easier for them to configure.
1. Display Label – The display label button displays the short descriptions saved in the property
2. Function Alias – Using a function alias vs function name and pick functions that accepts a fewer number of parameters
3. Customize Options to Reduce Errors – When delegating rules to business users restrict the choices users can select.
o The ability to change functions, call decision or take actions should be disabled.
o If there is a need to let users change functions, we should add the list of functions in the Functions Allowed field.
o If there is a need to let users change actions, use the Allowed Action Functions field to add the properties needed.
o Map Values offer two options for delegated users —change the matrix layout or use expressions in the cell.
o In the Decision table rule form the options are listed as Delegation Options. Only the highlighted flags impact how
users can make the changes on delegated rules.
Allow to update row layout — When disabled, users cannot add new rows or delete any existing row.
Allow to update column layout — When disabled, users cannot add or delete columns in the table
Allowed to build expressions — This field enables the end user to use expressions as part of the cell in
* Decision Rules
Decision rules represent the decisions and policies that drive business processes and case management.
Decision rules can be invoked using a
o decision shape in the flow
o declare expression
o method in an activity step
There are four types of decision rules that we can write to evaluate decisions:
o When – Boolean
o Decision trees – Nested If- Then- Else construct
o Decision tables – set of conditions using a tabular structure
o Map Value – determine a specific value based on one to two properties
37
CSSA Complete Study Guide for Pega 7 – January 2016
* When Rules
When rules are used in:
o processes to decide which one of the two paths the case can take.
o other rules like UI
o data transforms
o other decisioning rules
o declare expressions to evaluate a condition.
Though most of these rules support adding the condition directly, we recommend that you use a when rule so the condition
is entered once in the when rule and is used everywhere.
When rules can use:
o Boolean expression or
o a function rule part of the library shipped in the product or
o a custom function defined as part of the application.
o When rules can involve any number of conditions and can be combined using AND, OR & NOT.
* Decision Trees
Decision Trees are useful when applying the If- Then- Else construct.
Decision trees
o can be constructed to have many branches which evaluate different properties to determine a decision
o use function rules or when rules for building the condition
o allow nesting – to invoke another decision tree or other decision rules such as a decision table or a map value
o usually return a value, the values can then be used in the calling rule such as the declare expression or the flow
o can also be configured to set a value to properties and this can be done using the Take Action option in the menu.
o can also be configured to check values on a specific property and decide its course of action (Evaluate is used)
o can also have restricted return values, in this case the decision tree can return either true or false.
o can also enter a property in the Allowed values property, uses the values as part of local list in property definition
* Decision Tables
Decision Tables are useful in presenting the set of conditions using a tabular structure
Decision Tables are suited to cases where we use a set of properties to arrive at a decision
Decision tables are more apt to be used if we are using a smaller number of unique properties to evaluate the decisions
Since we use tables, each property gets a column and it makes sense to have rows added for each column to have values
Some of the main reasons we use Decision Tables are that they:
1. Give us the option to evaluate all rows to arrive at a decision
2. Let us increment values on the specified condition which is useful in implementing scoring
3. Can invoke another decision table
Decision Table
o provide the option to evaluate all rows (not enabled by default and cannot use from a declare expression when on)
o can have a given cell can be “split” to represent add OR conditions
o can return values or enable the property set field to set properties directly
o using other icons we could return more than a single property based on the condition
o can restrict the results returned using a property or a set of values
* Map Values
Map Value rules let us determine a specific value based on one to two properties
Map Values are usually used in special circumstances where we the values of one to two factors decide the outcome
Map Values allow you to have restricted return values
* Mode validation
The Mode Validation enforces the property mode when a value is being assigned to a property
* Dictionary validation examines a property value in the context of the corresponding property rule
1. Type: value is compatible with its type
2. Maximum length: for properties of type Password, Text or Identifier. If the length of the input string exceeds this limit, the
clipboard keeps the longer value, but the dictionary validation adds an associated error message.
3. Edit Validate: for properties of mode Single Value, Value List, or Value Group. Defines a Java routine that tests the validity of
an input value.
4. Control validation: Numbers must be entered for a number field, Date for date field, etc.
5. Table validations: for properties of mode Single Value, Value List, or Value Group. Table values can come for any one of those
in the list shown in Local List, Field Value, Class Key Value, Remote List, or Prompt list (selected in the table type dropdown).
* Constraint Validation
Constraints rules use forward chaining to provide an automatic form of property validation when the property's value changes
The system automatically adds a message to any property that is present on the clipboard and fails a constraint
No other rules explicitly reference constraints rules and is enforced as soon as it is saved
Like many other rules, we can use or build our own expressions for the when and constraint conditions.
We may add more constraints by using the “Add new Constraint before this one” or “Add new Constraint after this one” icons.
* Best Practices
Use validate rules over edit validate rules, because:
o Validate rules are easier for non-programmers to design and understand. Edit validate rules require Java skills
o Validate rules are more connected with the process and the UI, because flow actions and case designer can call them
o Validate rules simplify application design, because one validate rule can verify multiple input values at once
Constraints validation automatically happens when a property changes its value. If we want the automatic validation at the
property level, then we use constraints validation. But this might have a performance impact, so we need to use it properly.
* Client Side and Server Side Validation:
39
CSSA Complete Study Guide for Pega 7 – January 2016
Constraints, Edit Validate, and Validate rules are server-side validation –validation occurs on the server and the result is sent
back to the client.
All other validations rules are client-side validations. The “Enable client side validation” flag should be checked in the
“Advanced” tab of the harness or in the “HTML” tab of the flow action rules, for client-side validations to work. The harness
rule enables the option for the whole flow. If the harness is not enabled, the flow action rule can be used to override for a
specific action.
* Report Browser
The Ad-hoc Reports are accessible in a Report Browser
The report browser is part of the default Case Manager portal
While designing end user portals, it is a best practice to customize how the reports are presented
PRPC ships with a wide variety of standard reports, so it’s essential to decide which of these reports are necessary for users
* Report Categories
There are two types of categories – Private and Public
Private Categories are specific to an operator, so the reports in that category can be accessed only by that operator
Public Categories include all standard and shared reports.
* Category Rule
The Category is saved as a rule but when we open the rule we can see that it only has a short description.
The Category rule does not indicate the category type—Public (Shared or Standard) or Private (Personal).
* Shortcuts—a shortcut is a link that displays the report title in the report browser
When we click on a category, we see all the shortcuts that are defined in that category.
Shortcuts serve two purposes—
1. Providing the ability to run a report in the report browser
2. Creating links to a report definition rule in a different category
The shortcut rule has three parts:
o Category it belongs to
o Category type (private or public)
o Operator
The shortcut is displayed as a link and when we click, it, we see the report results in the Report Viewer
* Report Viewer
The Report Viewer also allows us to manipulate the results
There is a toolbar on the top with options to export the results to a pdf or excel or to a printer
The Filter criteria can be edited by clicking on the link and modifying the condition
In addition to this, the report viewer supports a wider choice of command menus which can be accessed by right-clicking on a
column header.
40
CSSA Complete Study Guide for Pega 7 – January 2016
The Report Editor provides more options than the Report Viewer—we can add new columns for filtering, add new columns to
the report, delete the columns that are currently in the report, and so on
The Report Editor is also available for developers in addition to them being able to work on the report definition rule form
In most cases, we can build the report with all the features without ever opening the report definition rule form
After making changes, use the save link (at the top of the Report Editor) to save the rule
* Production RuleSets
When applications require business users to make modifications, we need to make sure that the report definition rule allows
modifications even in a production environment
To implement this functionality, we need to define a RuleSet and then add it as a production RuleSet in the application
Production RuleSets remain unlocked in production so that the rules belonging to that RuleSet can be modified by users
We need to ensure that we are allowing this for a specific group of people and not to everyone
Often, developers create reports in a private ruleset – such as a branch or a personal ruleset – so that they can test their
reports before making them available to all users. By branching the production ruleset, we can also allow business users to
create and configure reports in a private environment without disrupting the production environment.
We can also set the maximum elapsed time in seconds, by default its set to 30 seconds
The system stops at the time limit and displays a message indicating that the report is taking a long time to run
If the application is configured to export the results, we can set thresholds for the reports
* SQL Functions
SQL functions are helpful in addressing this data manipulation. SQL functions are applied at the database level, so the function
is passed directly in the query that is executed against the table.
PRPC comes with a lot of standard SQL functions that we can use without making any changes.
They can be implemented in reports created either in the Designer Studio, or the Manager Portals
ALL SQL functions MUST have an applies-to class of Embed-UserFunction and are instances of the “Function Alias” rule type.
42
CSSA Complete Study Guide for Pega 7 – January 2016
When a class is used as a work pool (class group), any instances of that class or any class defined as belonging to the class
group are saved in the same database table.
* DB Name and Table (PRPC records for managing the database mapping)
DB Name record defines the database configuration details and can be configured to use either JNDI or JDBC url for the
database connection details.
DB Table record- which defines the class name, the database table name and the DB Table record.
* Properties for how much time (seconds) was spent at each status
pyElapsedStatusNew
pyElapsedStatusOpen
pyElapsedStatusPending
*Performance Reports
If pyPerformTaskTime is significantly lower than pxTaskElapsedTime then the assignment has been idle for a long time.
Using these properties in a report we could find out how each operator is performing.
* Class Join
Class Join is configured in the report definition rule form
To configure a class join we define a prefix to join two classes
PRPC allows both Inner and Outer Joins - Inner Joins return records that are in both tables while Outer Joins return all the
matched records from one table and all the records(including unmatched) from another table
Select only include matching rows is an option to configure the Inner Join
After defining the prefix, we need to define the condition
To display any property belonging to the class we need to use the prefix that we defined earlier while the properties belonging
to that class can be referenced without any prefix
* Association:
We can also use associations to join multiple classes.
PRPC comes with standard associations to connect commonly used classes like Assignment- Case and Case – History tables.
In the report definition rule, we can access the association by entering some part of the text of the association such as
Assignment which gives us access to the properties in the class. The association gets automatically referenced in the data
access tab once we add a column. If we need to associate other tables, define the association rule and then reference it
43
CSSA Complete Study Guide for Pega 7 – January 2016
* Optimization of Properties
PRPC allows optimization of properties for all the standard properties such as work status, creation date and time, and
creation operator, which are exposed by the product.
We can add unoptimized properties to appear as columns in a report definition or in filter criteria (system displays a warning)
PRPC by default restricts adding the unoptimized properties in the Report Editor because it impacts the application
performance. But, we can enable a flag in the report definition so that the unoptimized properties can also be added to the
Report Editor.
If a page list needs to be in a report, it must be optimized
To improve the performance of a report, properties should be optimized as much as possible
* Data Visualization
Only summary-type reports can include charts.
A summary-type report has at least one column with a numeric aggregate value, such as count, total, or average and at least
one unaggregated group-by column such as status, day/month when the items were created or as in this case work type.
* Configure a map
Pega 7 includes hundreds of maps that we can use to illustrate the data in a Report Definition
Map charts can’t be defined in the Report Editor. They must be defined using the Charts tab on the Report Definition
44
CSSA Complete Study Guide for Pega 7 – January 2016
By default the name of the country is used for the property value. If a country code is used instead it can be mapped
Configure the drill down map on the Report Viewer tab
* Integration Wizards
The development of most integration is supported by wizards, which guides us through creating connectors and
services and dramatically accelerates development
The connector wizards use metadata, such as a WSDL file, EJB class, or a data table definition to create the connector
and mapping rules
Classes and properties used for mapping the request and response data are typically created as well
The service wizard creates service and deployment records as well as listeners if they are required for the service
* Invoke a Connector
A connector is invoked either from a data page or an activity. If you call a connector from a flow you can use the
Integrator shape to reference the activity.
Data page – to fetch data from the service
Activity – to push data to the service
* Service Package
The service package is data, not a rule
It specifies the access group for locating the service rule, plus provides “service requestor” authentication, pooling and
deployment options
* Service Rule
The service rule is the first step toward exposing our service activity as a service
It specifies the service activity, defines the external API of our service (the ‘signature’ that external applications use to
communicate with this service), and specifies the data mapping for the request and response
* Service Activity
The service activity is the primary activity that is executed by the service
It contains the ‘business logic’ with the request as input and creates the Clipboard structure that represents the
response
45
CSSA Complete Study Guide for Pega 7 – January 2016
* Service Listener
The job of the service listener is to sense when a request has arrived
In many Integration Types, this functionality is provided by the underlying Web or Application Server
In those Types where this is not provided, PRPC provides Listener data classes that allow us to specify the details about
listener initialization
The data instances should be associated with our application’s ruleset since it is our application that provides the service.
There are no special considerations with regards to the enterprise class structure when creating a service.
Note that it is a best practice to use authentication.
* ConnectionProblem Flow
After the connector is invoked it is also possible to use the Error Handling Flow feature available for most connectors.
The standard connector error handler flow can help recover from transient errors
If the exception is a resource unavailable exception, the case is automatically assigned to a workbasket named
IncompleteConnections.
The RetryConnection Service Level Agreement (SLA) goes into effect. It tries the connector again from the original flow
for a maximum of five times: one at goal event, one at the deadline event and then three times at passed deadline.
* Simulate a Connector
Connector simulations are very useful in situations where the data source is not available or when one wants to dictate
the response returned. Connector simulators are NOT appropriate if the interface has not yet been defined.
Connector simulations can be temporarily enabled and disabled from the landing page using the Enable/Disable
Simulations button.
It is also possible to permanently disable all active simulators in one easy step using the Clear Simulations button.
Note that SQL connectors cannot be simulated and that there are no connector simulations available out-of-the-box.
Simulation activities can be defined on a global (all users) or user session level. (user session simulation overrides the
global simulation if there is more than one simulation for the connector)
If we’re using our connector with a data page we have the option to simulate the data source instead of the connector
* Running a simulation
It is worth considering placing the connector simulation activities in a separate RuleSet, (not moved to the production)
The step page in the connector simulation activity is the service page of the connector it simulates so it is easy to set
response properties. Note that the properties are set directly on the service page and the stream and parse rules that
some connector types have defined on the service page are not used in simulation mode.
We can use pre-conditions to return different responses based on things such as values in the request.
When the service encounters a processing error and a condition evaluates to true an error message as defined is returned
to the calling application. The following options are available for defining an error response message.
o When – Specified When rule returns true.
o Queue When – If the specified When rule returns true the request is queued and a PRPC specific SOAP fault that
includes the queue ID of the request is returned.
o Mapping Error – Error occurs while mapping incoming data from the request message to the clipboard.
o Security Error – Authentication fails.
o Service Error – Valid instance of the service activity cannot be found.
If the mapping, security, and service errors are not defined the system returns standard exceptions.
* Log File
A message is written to the Alert Log file for services and connectors when some processing events exceed their threshold.
During a service execution, the following operations can contribute to a long transaction time:
o Inbound data mapping
o Outbound data mapping
o Data parsing
o Service activity execution
* More on Logging
If one of those time thresholds is exceeded, a PEGA0011 alert message is reported in the alert log.
PEGA0020 alert message is reported when a connector call to an external system has exceeded an elapsed time
threshold.
Beside the Alert Log, we have the Pega Log in which system errors, exceptions, debug statements are gathered. While testing
our integration interactions, we can increase log level settings, add more loggers and then examine the results in the log file.
* SOAP Class and Ruleset for Reuse
The setting we use for the reuse layer determines the base class and ruleset in which the connector rules created.
Reuse Layer Baseclass RuleSet Option Connector RuleSet RuleSet
Prerequisite
Implementation Org-App-IntSupplier New SupplierIntegration AppInt
Reuse Layer AppInt OrgInt
Organization Org-Int-Supplier New SupplierIntegration OrgInt
Reuse Layer OrgInt Base Pega RuleSet
Global Int-Supplier N/A SupplierIntegration OrgInt has
SupplierIntegration as a
prerequisite
47
CSSA Complete Study Guide for Pega 7 – January 2016
the external system by executing another connector that un-does the action of the original connector. Compensating
actions are not intended to help recover from system failures.
* Trigger a Service
Each service that we configure requires a trigger. This trigger invokes the service, to process the inbound request.
For a basic SOAP service, the server reacts to the incoming request automatically, performing the actions outlined by
the service. In other cases, however, we not only need to configure the service, but also need to configure the
triggering mechanism, known as a listener.
* Listeners
Listeners allow us to configure services that respond to emails or file uploads
The listener operates in the background, watching a specific location – such as an email address or folder on the server
When the listener observes activity– the system triggers the appropriate service to process the inbound request. The
service then writes data to the corresponding case or data record and can return some of the case data to originator.
49
CSSA Complete Study Guide for Pega 7 – January 2016
* Parse Segments
How the information configured in the Parse Segments is used depends on the processing method specified in the Methods tab.
The Record Type is used to identify which parse segment to apply to a record parsed from the file. This option is only
relevant if the processing method on the method tab is record type.
Select Once to apply the parse segment only once. This option is useful for files that contain a header record.
The Map To field defines the action to take in the parse step. The following options are available:
Clipboard – Map this segment to a Clipboard property
XML ParseRule – Parse the segment with a parse XML rule
Delimited ParseRule – Parse the segment with a parse delimited rule
Structured ParseRule – Parse the segment with a parse structured rule
Skip – Skip this segment
* Success Criteria
Use the Success Criteria to specify a when rule to be evaluated after each record is processed. If this rule evaluates to
false a database rollback occurs backing out of the most recent commit operation and the processing of the file is
abandoned.
* Listener Errors
Some errors are technical and related to the infrastructure and hence might be temporary. It might be worth trying to
attempt to recover from such errors. If we select Attempt recovery? the system leaves the files containing errors in the
Work folder for recovery purposes.
Max Recovery Attempts defines the maximum number of times the system attempts recovery.
In the Cleanup section we can define what we want to happen to the file when an error occurs. It can either be deleted
or renamed. If you choose to have it renamed the file extension is renamed to the specified value. The file name itself
remains the same.
* Register an External Database
Each relational database we need to connect to must be defined as a Database instance
When the Database instance has been created and a suitable JDBC library has been installed on the server we can
connect to and interact with that database. Database and Database Table instances can be found under the SysAdmin
category in the Record Explorer.
There are three options we can use to connect:
o Use configuration in preferences
o Use JDBC Connection Pool
o Use JDBC URL
50
CSSA Complete Study Guide for Pega 7 – January 2016
External classes do not contain the two properties pzInsKey and pxObjClass, which are present in every internal class. In some
cases, no single property in the external class can serve as a unique handler. In that case a substitute string is assembled from
the key columns of the table.
* Agents
A facility to run internal background process operating on the server and performing some tasks on a periodic basis.
The order in which the agents are listed does not create a processing sequence.
Each agent activity runs individually on its own interval schedule, as a separate requestor thread
Agents can
o execute tasks according to the rules defined in an application
o system tasks such as sending email notifications and outgoing correspondence or synchronizing caches across nodes in a
multi-node system
* Agent types
Typically, an agent can either be task-driven or schedule-driven.
Task-driven agents pick their work from a queue. The queue entries are generally created during the work item processing.
Schedule-driven agents, however, do not use queue entries but rather directly run an activity to perform their tasks.
* Agent modes
Legacy agent mode:
o only provides backward compatibility for agents being upgraded from versions prior to 5.4.
o No queue is involved in the legacy agents processing. They typically just wake up and run.
The new agents can take either of the following modes: Standard or Advanced.
Advanced mode:
o the agent activity is responsible for both transactional and business processing as in the Legacy mode.
o However, the agent may still use the agent queue functionality; it just must do so explicitly.
o So, when an advanced agent “wakes up,” it runs its activity directly, and that activity may either call the agent queue and
performs all the locking and other database operations, or just does processing without a queue.
Standard mode:
o default mode setting for agents created in PRPC versions 5.4 and higher.
o The transactional processing is handled by PRPC itself and leverages the agent queue functionality.
51
CSSA Complete Study Guide for Pega 7 – January 2016
* Standard Agents
As the Standard agent wakes up, we can indicate the maximum number of entries from the agent queue it will process before
it goes back to sleep. This number is specified in the “Max Records” field. The default value is 50 (can be 0 for unlimited).
For each Agents rule, it generates as many agent schedule instances as there are nodes in our system.
By default, the Agent Manager checks for new or updated Agents rule once every ten minutes.
Standard Agents do not need access groups. Each queue entry is processed in the authorization context of the user whose
actions or processing generated the queue item.
Agents are internal background processes and are authenticated differently than operators. If the agent's processing calls an
activity that has the “Require Authentication” option selected on its “Security” tab, Process Commander throws an error.
o To avoid this error, select this option to allow this agent to run activities that require authentication, even if the agent
is not authenticated.
Standard agents queue entries are instances of System-Queue-DefaultEntry class and are typically persisted in the
pr_sys_queues database table.
The System-Queue-DefaultEntry class is automatically used for all task-driven agents with no custom structures.
When needed, you can create your own class, but it must directly or pattern inherit from the abstract class System-Queue-.
* Understand the processing of a Standard agent
Agent Manager wakes up the Agent Thread, and creates a brand new requestor which it associates to the agent Thread.
It then checks the agent’s queue for entries.
o If there are no entries in the queue for this agent, the agent goes back to sleep for the specified interval without
running the agent activity and then checks back.
If one or more entries are found in the queue though, the system retrieves, locks and opens the first queue entry.
The Authorization is checked.
The System calls the “EstablishContext” activity to lock and load the related object referenced in the queue entry.
The agent activity is called with the object as the primary page object.
The system runs the agent activity for each item in the queue until it reaches its “max Records” count.
For each entry, if the agent processing succeeds, then the Agent Manager commits all deferred operations to the database.
If the agent processing however throws an exception on any operations, then the Agent Manager does a rollback of all entries
associated with that entry.
Depending on the AQM setting, the entry is kept on the queue or removed from the queue.
52
CSSA Complete Study Guide for Pega 7 – January 2016
When the agent is done processing the entries, it goes to sleep for its interval period.
* Access Group
When Application Express creates an application – either in the framework layer or the implementation layer – it creates two
default roles and access groups: one of each for managers and users. We can create additional roles or access groups.
An access group defines an application the operator can access – and its rulesets – and describes the capabilities allowed
A user can switch between access groups by selecting a different application in the Application menu
* Roles
Each access group also lists a series of roles
A role lists a set of allowed capabilities
Unlike the access groups listed on an operator ID, all of the roles listed on an access group are in effect at the same time
The ability to divide capabilities into multiple roles improves reusability
* ARO
Rule-Access-Role-Obj rule
The ARO defines the capabilities that apply to that class and the instances of that class
Each ARO can also include a set of privileges, which allows an application to permit or deny access to specific rules and tools
* Privileges
Privileges can be added to many rule types, and can be checked programmatically by utility functions
Privileges can also be conditionally granted by system level or through the use of Access When rules
* Access Manager
To review the security model – the permissions provided – or denied – to a group of users, we can use the Access Manager
The Work and Process tab lists the operations available to the selected access group for each case type, and allows control
over the actions available to a specific role defined for the access group. Each action can be set to either Full Access, No Access
(the worklist for each operator in that role contains only his or her own assignments), or Conditional Access.
The Process Flows and Flow Actions sections indicate the flows and flow actions that an operator can access – and therefore
perform. By default, the Access Manager only lists the starting flow for the case type, and the flow actions referenced by that
flow, but we can configure permissions for flows and flow actions and any other rule type that allows permissions manually.
The Tools tab configures access controls for Designer Studio features and capabilities, such as the Clipboard and Tracer.
The Privileges tab lists all of the privileges configured for a specified role and case type or data type (summary of other 2 tabs)
* Conditional Access (Access When)
Conditional access – the yellow circle – generally indicates the use of an access when rule to determine the circumstances in
which a role is to be granted access.
When the yellow circle appears next to the case type, it means that more than one permission level is applied to the actions
listed for that case type.
* Workbasket
We can control access to a workbasket by adding specific roles to a workbasket record.
* Attachments
Access control for attachments can be configured on the attachment category rule form.
The access control model for attachment category rules uses privilege rules and when rules (rather than access when rules) to
determine whether users can create, edit, view, or delete attachments from a case.
Enable attachment-level security option allows an operator to identify one or more workgroups that can access the
attachment.
53
CSSA Complete Study Guide for Pega 7 – January 2016
* LDAP Wizard
The Authentication wizard creates an authentication service already configured to one of three predefined servlet definitions.
This eliminates the need for us to create a new servlet or modify web.xml.
o Sun (For anything but the WebSphere and Weblogic built in server - safe choice)/WebSphere/Weblogic
Note that running the wizard doesn’t disable other authentication services or servlets. It is possible to have LDAP and PRBasic
PRPC prevents users created via external authentication from logging in via PRBasic authentication.
The data from LDAP takes precedence over the model operator.
* Activity Customizations
Changing the messages shown to the user when authentication fails. Perhaps even localizing the messages.
Another common customization is to add additional mapping logic to use decision rules to determine the proper model
operator or access group using a number of different LDAP attributes.
Or to add logic that uses LDAP attributes to explicitly to deny access to certain users.
* PRThreads
54
CSSA Complete Study Guide for Pega 7 – January 2016
The first thing to mention here is that clipboard pages are defined in a specific name space context or scope called a PRThread
PRThreads are a data structure used to allow a single requestor to run multiple copies of a workflow simultaneously
Properties of mode Java Object, Java Object List and Java Object Group are not shown on the clipboard.
* The clipboard tool arranges the top level pages into four categories.
User Pages – this contains the top-level pages created by the requestor during normal processing
Data Pages – this contains all the data pages instantiated in the system
Linked Property Pages – this contains all the pages created by a linked property
System Pages – this contains special, reserved pages the system relies on to function. Within this category, three pages are
always present.
o pxThread – this contains the information about the current PRThread
o pxRequestor – this contains the information about the requestor and HTTP protocol parameters
o pxProcess – this contains information about the server’s Java Virtual Machine and the operating system
Additional pages that contain information on the access group, application rule, operator ID, organization, org division and org
unit may appear as required. Guest users do not have these pages as they’re part of the authentication for a named user.
* Clipboard Options
Edit - allows us to update values on the page. This is useful to prepopulate data during testing.
Refresh - gets the latest values from the system.
Show XML - provides a raw XML view of the entire page. This is useful to see the entire page & properties that start with ‘pz’
Execute Activity - allows us to run an activity using this page as its step page.
* Clipboard’s toolbar
This toolbar provides us a search box to locate values on any clipboard page, a tools menu with the options Analyze and Collect
Details. These are advanced tools used to track approximate sizes of pages on the clipboard.
* Tracer Results
The most recent event is at the top of the tracer.
Most events in a tracer have both a Begin and an End.
When tracing Data Transforms and Activities, we will also see a Step Begin and a Step End for each step in the data transform
or activity indicating the method being executed, providing a link to the step page of that step, identifying the status, & more
* Configuring Tracer for Performance
Tracer by itself can greatly impact the system performance.
o Abbreviate Events – this option reduces the performance impact, but sacrifices keeping the clipboard detail. When this is
selected the step pages are not available and we cannot view the values associated with their properties.
o Expand Java Pages – this is only useful if the system contains any properties of mode Java Page. This option should be
turned off if such properties are not in use.
o Local Variables – this option provides the means to view the local variables which are not available from the parameter
page. This option should only be turned on when we specifically need to debug an issue with a local variable.
* Configuring Tracer
The event types category provides additional, optional events that we can trace. We have the option to add additional event
types. Since the most common types are already provided, we should not need to use this capability except as directed by
your Lead System Architect.
The rulesets to trace category allows us to eliminate some rulesets from the tracer output, to improve its performance. The
entire ruleset stack is available to us, but as a general rule we shouldn’t need to trace any of the Pega* rulesets. Our primary
concern with debugging is our rules, so by removing these rulesets we can potentially save thousands of lines of results.
55
CSSA Complete Study Guide for Pega 7 – January 2016
The tracer only provides the step page and the parameter page by default for each event it traces. We have the option of
tracking additional named pages when necessary. This capability is very powerful, but comes at the cost to performance.
This option is not available if Abbreviate Events is selected.
The last option is for the number of lines visible in the tracer window. By default the system displays 500 lines visible in the
tracer window. This can be increased (or decreased) as necessary.
* UI Inspector
The UI inspector is used to discover, view and edit the user interface elements in our application.
The real power to the UI Inspector comes from running it in the user portal.
To run the UI Inspector in a user portal, we need to launch the user’s portal from the launch button in the developer studio.
After the user portal opens, there is a floating button that allows us to toggle the UI Inspector on or off.
While the UI Inspector is active, as our mouse hovers over any user interface element, the selected element is highlighted in
red and an information panel is displayed about that element.
The information panel displays the type, name and name of the immediate container of this element on the left panel. The
right panel displays the entire UI structure showing all the parent containers for this element.
* Remote Logging
Via the System Management Application, we have the ability to perform remote logging.
Remote logging establishes a connection between the server and a standalone application running on our desktop.
A feature of the remote logger is that it is updated near real-time, without having to constantly download the log files.
You can filter the events written to the Remote Logger
* Taking PAL Readings (Add reading has to be clicked to view the performance statistics for that reading)
The first step to taking measurements is to click Reset Data. Since the system is constantly monitoring performance, by
clicking this button we’re eliminating any previously recorded entries from our results.
Next, we need to take some readings. We have two options to add a reading, with or without the clipboard size. There is no
difference between the two readings other than the addition of the clipboard size, which takes a bit of extra time to calculate.
Each reading added is shown as a delta. This is indicates it’s the change from a previous reading.
There are many different results available to us for analyzing the performance. There’s no magic number when it comes to
these results. It is up to us to work with the LSA and the business to determine what is an acceptable result for each step of
the process.
* DB Trace
The DB trace tool is useful in tuning the application if there are any database performance issues
56
CSSA Complete Study Guide for Pega 7 – January 2016
DB Tracer must be run if PAL readings indicate performance issues in the Database operations
DB tracer can trace all the SQL operations like queries or commits that are performed in PRPC
Like the performance analyzer, the DB tracer is available from the performance button the developer studio toolbar, the
system management application and the performance landing pages.
* Running DB Trace
To run the tracer, we just need to click the green play button. After performing our steps, we can click the red stop button to
complete the trace
After stopping the tool, the table is updated with the results for all the PRThreads it traced. We’ll want to identify the results
for the thread corresponding to process where we performed our work. When in doubt, look for the largest size. It is most
likely the one we want.
The results are a tab delimited file so they can be opened using any spreadsheet program, such as Excel to then review the DB
Trace findings.
* Performance Profiler
The third tool in our Performance landing pages, the Performance Profiler is like a hybrid between the tracer and PAL.
We run the Performance Profiler by clicking on the green play icon, performing some actions and then clicking the red stop.
Just like DB Trace, we want the record that matches the one where we did work. Again, this is most likely the largest one. The
difference here is when we open the file, unlike the DB Trace, the data associated with the profiler is stored as a simple CSV.
The profiler can show us the CPU time and wall time across a series of transactions. It is useful when determining which part
of the process might be having performance issues, or identifying the particular step of a Data Transform that might have a
performance issue. Run in conjunction with PAL to narrow down both the specific step (profiler) and the cause (PAL).
* Guardrails
The compliance score is a calculation of the total number of rules in the system with warnings, weighted by their severity and
justification state, as compared to the overall total number of rules. This score is based on all the rules available to this
application, except the properties and any rules in Pega provided rulesets.
Both justified and unjustified rules affect this score. So the only way to ever get a full 100 is to have no rules with warnings.
Among the rules that do have warnings, our best option is to fix the rule and remove the warning. Otherwise we should
provide a good justification why this rule requires breaking the guardrails.
The last section of the landing page contains a view to how alerts have trended over the last four weeks. These can be helpful
in identifying the impact of correcting warnings and how the system is trending overall
* Guardrail Reports
Summary - The summary report provides at a glance the state of the system
All Warnings - The all warnings report provides the same information as the Summary report, but in tabular form
Charts - Just like the other reports, the charts report provides the same information but you have a visual comparison
Alternative Reports - The Application Inventory landing page contains another report to be used to identify rules w/ warnings
Heat Map - the system displays the categories with warnings, shaded according to the percentage of warnings in that category
* System Administrator - Every project needs at least one person who acts as the system administrator. This person should be
responsible for these additional tasks and the overall maintenance of the system. The kinds of tasks expected of this person include:
Working with the database administrator to identify database indices to be tuned for this specific application.
Using the performance tools available and making sure developers are adhering to the performance best practices.
Installing hot fixes and updates in the system.
Monitoring AES (if installed) and addressing any alerts.
Rolling log files off the server to keep the physical disk space lean.
59