Pega Notes 613
Pega Notes 613
Pega Notes 613
Application is Set of Functionalities, which will be developed by using any technology. Application
achieves business Goals.
it is a software product; we will use it to perform business. It has the components and user interface
screens using that we can communicate with application and perform some business.
Types:
1. Framework application
2. Implementation application.
Pega will give 30-40% FA code, we can reuse and modify it.
1. Application name,
2. Application type,
3. Organization type,
4. Operators ID and Password.
Here, we may create specific functionalities like Vehicle Details in Vehicle Insurance Implementation.
Health Information form in Health Insurance Implementation.
1. Re-Usability of features
2. Easy to maintain
3. Easy to extend the business processes.
FYI
Pega rule OOTB (Out Of The Box Built-In or Predefined) application is also a kind of Frame Work
Application with built in Features.
Any application that we create must be created on top of Pega rules application.
When we create our application make sure it has both Framework and Implementations.
Business Applications can be developed without the need of coding (UI HTML, Business Logic, DB
Queries).
Login Screen
Operator ID: - The login ID or User Name which we use to login to PRPC environment to access it’s
applications.
Operator: - Is the person or user who login to PRPC to access it’s application.
On top left we can see Application: Pega Platform (The name of application is PegaRules).
“PegaRules”
This PegaRules application is the one which holds all the readymade functionalities provided by
pega.
Organization Structure
Here Organization is Top most Parent.
Units are the main Production area where business processing will get initiated and processed.
1. Organization class (Parent Class of all the classes divisions, untis etc..)
2. Division classes (Parent classes of all Multiple different Units)
3. Unit class (This is where Business gets initiated and processed).
From this, after we create application, we must have to create classes of all levels.
But, PRPC has automatically create all these classes while we create new application.
EXAMPLE: Here we see ALLS-AllState-Work. These are the 3 different classes create
Here
Work Unit Class (Work Class , where the business process gets initiated and processed).
In order to open FW application definition, there is no need to login to FW app. We can do it from
IMPL itself..
Pega rules does not have any built on application. Pega rules is Base platform.
OOPS- Encapsulation
Group of Attributes and Methods (Functional Components), binding together into a package.
Class
What is a Class?
Class is executable and it takes a specific input to process the business transaction and it generates
a specific output as a result.
Classes are created inside an application. Below diagram shows the same.
We create an application
We create classes inside an application
We create functionalities inside classes.
Types of Classes
There are two types of classes.
Concrete Class:
Define the functionalities + Initiate transaction by executing functionalities + Generates a
transaction ID + the transactions get closed here.
We can reuse the functionalities.
Abstract Class: Define the functionalities + We can reuse the functionalities.
1. Concrete Class: Here we can Initiate business transactions and process it.
For example.
1. Insurance (Concrete)
2. Loan (Concrete)
3. Verification. (abstract)
We can initiate Insurance and Loan transactions at the appropriate concrete classes of
“Insurance” / “Loan” respectively.
But we CANNOT initiate above transaction at “Verification” class, because it’s an abstract
class.
Concrete can connect with Database. Abstract cannot connect with Database.
Work class available only in concrete. Work class is not available in abstract.
Pega platform groups rules into classes according to their capacity id reuse. Each group is a class.
Each application consists of three class types.
Work class: contains the rules that describe how to process a case. Such as process, data elements
and user interfaces.
Integration class: contains the rules that describe how the application interacts with other systems,
such as the integration assets that connect the application to a customer data base or a third party
we server.
Data class: Contains the rules that describe the data objects used in the application, such as a
customer data type or order items, data types.
We have class layers available in pega. The layers are nothing but.
Organization layer
Data class
Integration class
Implementation layer
Data class those are user defined classes.
Integration class
Work class
Go to pgAdminConfiguration
Server
Data base
Schemas
Data
Tables
Organization structure
Class Group: - This is combination of One or more abstract classes and first Concreted class which gets inherited
from OOTB class ‘Work- ‘.
For our implementation application the class group is “ALLS-AllState-Work” which inheriting from Work-Cover-.
BAJAJ-BajajAuto-Work
Work class this is the class, where business transaction gets initialized. Transaction ID gets
generated and stored.
Inheritance in PEGA
Inheritance:
It is the process of accessing the attributes and functionalities of one class into another class.
Here at least two classes will be involved. One of the two classes acts as parent class and the other
one acts as child class.
1. Pattern Inheritance
2. Direct Inheritance
Patten Inheritance: -
After We create Implementation application, PRPC has created many classes out of these the three
important classes are
ALLS-AllState-Work
Here If AllState Class wants to Utilize the Components of ALLS Class, AllState Should be a child of
ALLS.
Similarly If Work Class wants to Utilize the Components of AllState and ALLS Class, Work Should be
a child of AllState.
1. ALLS
2. ALLS-AllState (AllState)
3. ALLS-AllState-Work (Work)
Here the ‘-‘ Sysmbol represents Inheritance Relation between Two Classes.
For Example :-
1. ALLS-AllState-Work (Work)
Parent of Work class is ALLS-AllState
2. Parent of AllState is ALLS.
Summary: - By means of Pattern Inheritance PRPC utilizes the properties of Org, Div into Unit.
Direct Inheritance: - The parent class in direct inheritance is specified in the class rule form under
the dropdown “Parent class Directed”
For testing
This means, for a class group the direct parent class must be “Work- or Work- child classes”.
We want to access the functionalities of FW work class into IMPL Work class.
To access the functionalities of different application classes. Pega provides another type of
Inheritance. “Direct” inheritance.
Let’s look at direct inheritance parent class of :FW work class & IMPL work class.
Now, we want the IMPL Work class to derive (Inherit) from FW work class. For that make below
changes
IMPL Work class can access FW Work class
FW Work class can access Work-Cover-
At the same time, IMPL work class can also access the Work-Cover- via FW Work class,
Save. Done.
1. Property: - Property is just like a variable in other programming languages, it holds values,
it’s associated with name, Property Type (text, decimal, date etc), Control…
This is an instance of Class Rule-Obj-Property.
Property
2. Section
Section is a HTML Rule, used to design User Interface.
A Section can hold properties into it’s layout and associate them with Controls.
3. Flow Action: It’s a container of Section which adds an action to the UI like Submit, save,
cancel etc.
A Flow Action Can be integrated into flow by using assignment shape’s outward connector.
A Flow must have one and only one start shape and it can have at least one end shape.
FirstName, Last Name, Date of Birth, Age, Gender, Country, State, City, Zip Code, Phone Number,
Email.
Understanding Dropdown
control
pxDropDown: - A Dropdown control can be populated by using below options.
Clipboard page: This is the page on which we have, results fetched from Table.
This page name must exactly with the page name mentioned in Activity “FetchStates” Obj-Browse
Method.
Before we use the above page, it must be defined in Pages and classes tab of Section.
Activity: This is the activity which will browse data from table.
Go to layout properties
Choose display header and title Please provide your basic details.
Choose required = always (mandatory filed) for First name, Last Name, Gender.
Working with Flow Action
and Flow
Question: Design a transaction model to process auto insurance policies.
Make customer details form as a first screen to be displayed during the transaction process.
Creating flow
Create this in the IMPL Work class
Double click on assignment shape’s outward connector to call the flow action
Select
Save
Draft Off.
Draft Flow
When we create a new flow, every flow by default will be in Draft mode
Draft On means, it’s in Draft mode and it is a dummy flow just for demo purpose. Draft flows are
non-executable in Production.
When we create a flow, after all the configurations are done, make sure you turn off draft mode.
To turn off the draft mode, go to diagram tab and click on the icon “Draft ON”. When we click on it, it
will be displayed like “Draft Off”.
Theory Understanding Work
Object
Why do we choose pyCaseManagementDefault option under Work Parties?
If we do not select this, When the flow is executed, we get a default screen displayed, which is
[provided by pega. To avoid displaying that screen, we have chosen above option.
Why do we choose Creates a New Work Object Check box, available under process tab of Flow?
When we select this check box “Flow will be executable” that means, we see run option available
under action dropdown.
Else Flow will be non-executable, means that, run option in action drop down will not be available.
Before you test it make sure you turn off draft mode.
Technical Explanation
Selecting the Option “Creates a new work object” makes the flow to generate or create a Work
Object when a transaction is initiated.
This Work Object is a virtual entity that gets created in the background and travels through the flow
from start shape to till end shape on its way to get resolve.
Each Work Object can be uniquely identified by an ID called Work Object ID or Case ID.
EX : C-123
After We submit the UI form, Work Object data gets stored into Backend Rulebase table.
Once, case is submitted, WO along with data gets stored into one of the tables called as
Work Table.
To see the Work Table and Work Object Created, go to Rule base.
All the Entries First Name, Last Name Age, Gender etc. gets stored into this column.
When flow is created in Implementation class group, the created cases stored in Table
pc_ PRIM_VehicleI_Work
When flow is created in Framework class group, the created case stored in Table
When Work Object has been created by Implementation Class Group Flow, that work object
is called as Instance of Impl class Group.
When Work Object has been created by Frame Work Class Group Flow, that work object is
called as Instance of Frame Work class Group.
How does PRPC identifies the exact work Table to store work objects of a class group?
Where as
Each instance class has been mapped to one physical table in the Rule base.
The Above rule is called “Data base table mapping Rule”. Which Maps a class to a physical table in
the Rule base.
This rule has been automatically created when we create new application.
Also, It has created a physical table in the backend with the name pc_PRIM_FW_Primerica_Work
When an instance is created for Frame work class group, it gets stored into its Mapping
Table.
The instance or Work Object of Implementation class Group gets stored into the table
“pc_PRIM_VehicleI_Work”.
When A Work Object Created it gets stored into the Mapped table of Its class Group.
We can also get the mapping table name of a class group by below navigation.
Scroll down
pyID is Key of Work Objects, which is going to hold work Object ID Value.
In the Rule base, work table, pyID is the column which stored work object ID.
Flow Action
It is process rule, which allows us to perform an action on assignment and it moves the case from
current assignment to next level in the flow, by completing the current assignment.
Clipboard
This is one of the main debugging tools which stores WO data and other Information Temporarily.
In other Words
Clipboard an interface between PRPC and it’s rule base, which is going to temporarily, store Data.
When we run the flow, Once we submit the customer form, this data gets stored into rule base
Work Table.
Before it goes to work table, this data gets posted to temporary storage location called “Clipboard’.
Click on link
When we submit UI, Data will get posted to clipboard From clipboard it will take to Rule base
table.
The WO data that is posted on to clip board is posted to, system created Page “pyWorkPage”.
Page holds the properties of it’s reference class as well as it’s parent classes.
Example :
A-B-C
FirstName
LastName
X-Y-Z
VIN
Company
Page1 (X-Y-Z )
VIN
Company
Page2 (A-B-C)
FirstName
LastName
PAGE
What is a Page?
Page is an aggregate or embedded property which refers to a class and holds the properties of its
referenced class. Generally, pages to access the properties of NON inherited classes.
Suppose we have one set of common properties, we can re use these properties for different
purposes by creating multiple Pages, referring the same class where these properties are available.
A-B-Person
FirstName
LastName
Age
Customer(A-B-Person)
FirstName
LastName
Age
Employee (A-B-Person)
FirstName
LastName
Age
Director (A-B-Person)
FirstName
LastName
Age
Example:
A-B-C
FirstName
LastName
X-Y-Z
Age
Gener
In order to access the properties of A-B-C class into X-Y-Z, we need to create a page.
X-Y-Z
Age
Gener
Page1 (A-B-C)
FirstName
LastName
Now, we can access FirstName and LastName from X-Y-Z class like
Page1.FirstName
Page1.LastName.
What is a Page?
Page is an aggregate or embedded property which refers to a class and holds the properties of its
referenced class.
Property Modes
1. Single value property: a property which holds a value
Ex: First name: Vinod
If we want to work with table layout, then we have to create a page list property.
Data Classes
When we create new application, PRPC has created Org, Impl Work, FW Work classes.
Apart from these classes PRPC also created, Data, Int etc.
The other classes Data and Int are non-inherited classes w.r.to Work Classes.
If we create any rules, in Data or Int classes, we can access them into work classes by using Pages.
So, anything created in Data classes can be re used for multipurpose into work classes by create
multiple pages in work Class.
Data Classes inherits from OOTB class, Data-.
Again, we create more child classes for the above data classes, create properties in the child classes
of data classes and access them into work class using pages.
We have to segregate properties by their usage and accordingly place then into respective data
classes.
Data Classes are “Does not belong to class group”, that means it can be accessed by any class group
by using pages.
VIN, Manufacturing Company, model, Manufacturing year, vehicle type (Dropdown)[2,4 wheeler,
Heavy vehicle], prior insurance (Radio button Yes /No)
Create Data-Vehicle class in IMPL, Because Vehicle details are specific to IMPL category.
BAJAJ-BAJAJAuto-Data-Vehicle
1. VIN Text
2. Manufacturing Company Text
3. Model Text
4. Manufacturing Year Integer
5. Vehicle Type PicklistDropdownLocal
6. Prior Insurance PicklistRadio Buttons Yes/No
The above properties are created in data class. Now I want to access these properties into work
class. By using pages, we can do it.
Create a page in work class, where do you want to access these properties.
Add controls, map the properties by using page. Give the layout header.
Create a Flow action, and open the existing flow and make changes according to the requirement.
Create a data class in Org layer. Because we can use it for further insurance.
Create a screen to capture previous year claims details.
This should be 3rd screen in flow.
BAJAJ-Data-Claims.
Create page in FW-Work class. Previous year claims. Page def BAJAJ-Data-Claims.
Check box caption: Please select if there was a claim made in the past year.
Create flow action. Make changes to flow, this should be 3rd screen in flow.
Logic string
Paragraph
Created under user interface category.
Used to draft some paragraph of messages and where we can even properties, sections,
images etc.
We can also include the properties.
We can also insert the rule.
Paragraph is instance of class.
Rule-HTML-Paragraph
1. Claim layout should be visible when prior insurance is YES, at the same time message layout
should be invisible.
2. Claim date, claim amount, claim reason these three controls should be visible when prior
claims check box is selected.
3. Add a paragraph message into claims screen in a new layout.
Add a dynamic layout above the current.
Add a paragraph control into new layout.
Map the paragraph to this rule.
1. Billing Address
2. Shipping Address
Create a data class in org and create properties (Door No, Street Name, Land Mark, City and zip code
from org).
1. Billing address
2. Shipping address
Create 2 separate sections and add controls and map the properties by using page reference.
Now create a main section and embed above 2 sections into main section.
Add a check box in between Billing & Shipping Sections, map this to OOTB property pySelected.
Address_wrapper which is in data class, can be embed into work class section by
using page reference.
i.e., Billing address, shipping address.
* If you want any other to add further like (office address, school address) you can embed
into work class section by using another page reference.
* 100 addresses I want to collect, here we are creating only one section [Address_Wrapper].
By using page reference, we can embed.
* This is called “multi-purpose reusability”
* While using this method, we can observe that the wrapper section will not be loaded into
final section.
* By the time this screen loads, the two pages billing address and shipping address should
be available on clip board. Then only the section gets loaded successfully.
Go to clip board and see, there is no billing and shipping address pages. We have to fix this
issue.
By the time screen loads, we have to make sure that the two pages to be created on
clipboard, then only the wrapper section loads into work class section.
For this set at least one property of both pages to some values before the screen
loads.
This can be done in the connector after start shape.
Double click on connector after start shape.
Set Properties
Name Value
.BillingAddress.LandMark ““
.ShippingAddress.LandMark ““
Question: redesign the address details screen by creating an address wrapper section into the data
class, access into work class with different page references.
GO WITH NOTES.
Table layout
When we working with “table layout”, we have to use property mode as a “page list”.
Open table layout properties,
In general tab, choose source as a page list property.
In operations tab, choose inline.
(By default, a table layout is read only. Add item, delete item does not function. To
make it editable, we need to choose inline)
In presentation tab, choose enable row numbers, to give numbering to columns.
While working with tables, we want to retrieve or show the data.
By that time values or records will be 1000 to 10000.
For each page we want to display 20 records only. Then we will use “pagination”.
It is available in table layout properties.
Working with page list property, table layout
Q: Create a new screen to capture commercial vehicles details.
This screen should be displayed after personal vehicle claims screen.
Design:
We already have vehicle data class.
Create a page list property in IMPL work class.
Create a section in IMPL work with two layouts. One for label another for table.
Select the appropriate options in table layout.
Add columns (map the properties to controls in bottom line, then change names in
top line) or (drag and drop the properties into bottom line, in top name comes
automatically)
Crate a flow action.
Open our flow, add this flow action after claims.
Make sure that Your Data Types create under Data Classes.
In pega we create the tables as a data type. Mostly tables are created in Org class, because
the tables can be available in FW, IMPL class.
Mostly we are going to create master tables. (Reference).
Pr_ ---- Master / reference table. {Data class without storage}.
Pc_ ---- Transaction table. {Data class with storage}.
To create the structure, go to records tab, click on configure source.
It will create a structure and order of the table.
Select key column (Class key)
Key column------- To identify each row uniquely
Class key’s we can see in the class rule form (keys).
A class can have any no of key columns, but at least one key column is must.
The table structure got created with defined columns in data model.
To add info. go to add records.
Also, we can add the data from different documents, by using import/export.
When we create a data type (Table), few rules got automatically created by PRPC.
1. Concrete class.
2. Properties.
3. Physical Table.
4. Data page. (List type, page type, saveable)
5. Report definition.
6. Data base table mapping rule also gets created.
The implementation of our own business logic can be done by using OOTB methods.
Method: - Method is something which is already having predefined business logic written in Java
Code.
PRPC provides many different methods, those can be accessed under Method Dropdown in an
activity rule.
We need to learn what method is for What purpose and accordingly make use of these methods in
activity rule forms.
Activity contains series of steps, at each and every step we can call ONE method.
Max number of recommended steps to add per, activity is 28. More than 28 steps may lead to
performance issues.
---------------
If it is exceeding More than 28 steps, create multiple activities and call all together in one single
activity.
Go to pages and classes tab and define the pages that we wanted to create or access.
Define the class from where we are using the data.
Come back to steps tab
Select the method and step page.
Go to clipboard
Beside thread select Standard.
- User pages
-Page (Bajaj-Data-Vehicle).
Click on the page
We can see the results.
Here we can see one OOTB property. pxObjClass.
pxObjClass: this property holds the reference class name of page.
Parent activity will wait till child activity execution gets successfully.
Then parent activity will resume from the next level.
Then end the activity.
Synchronous process. It will wait for acknowledgement.
Whenever child activity is called by queue, parent will invoke the child. But parent will not wait
for child to be finish its execution.
Clipboard: it is debugging tool in PRPC. Which displays the information about what is being
executed.
Tracer
Tracer: it is a debugging tool, here we can see step by step execution.
When you don’t want to trace the pega OOTB code, only want to trace our code. Click on settings,
rulesets to trace. Here select only our rule sets.
Standard properties
Property: It holds the value.
Pega has provided some pre-defined properties, which starts with prefix px, py, pz.
Obj-Browse
PageName : The data fetched will be placed on clipboard on the specified page.
Page List Property: - It is a property mode, which refers to a class and holds multiple Pages of the
referenced class.
Obj-Browse execution
When an Obj-Browse method is executed, the results on clip board will in Pega List format.
On any table if Obj-Browse is executed it retrieves the result on to an OOTB page list “pxResults”.
Which in turn will be available on another page which we have specified in Obj-Browse Method.
Data will not fetch directly on pxResults. We will define one page in Obj-Browse. In that page data
will be available on pxResults format only.
Here ALLSStates Page is holding pxResults page list property, which is of class Code-Pega-List.
Each page of pxResutls i.e, pxRestults(1), pxResults(2) and so on…. Are holding State Code and State
Name Properties.
The structure will be like this,
States (Code-Pega-List)
States.pxResults (ALLS-Data-States)
i.e., Page.pxResults(Class)
pxResultCount 4
Pre query class name will be converted into Table name by PC, reading the table name from Class
and Table Mapping Rule (Data base table rule).
1, As defined on property
2, Data Page
3, Clipboard page
4, Report definition
Countries Code-Pega-List
Countries.pxResults Bajaj-Data-Country
Design tab
Open country cell properties,
List source type: Clipboard page
Clipboard page: Countries.pxResults
Run activity: Select the check box
Pre activity: Fetch Countries
Prop for value: .Country Code [for DB]
Prop for display text: .Country Name [for UI]
RULESET
Rule set: Collection of set of rules.
To see the ruleset
Application menu
Definition.
Open application RS, click on edit icon to open it
LOCK LOCK
01-01-01
Major version Minor version patch version
1) 01-01-01-> 01-01-02->01-01-03------------------------01-01-99
2) 01-02-01-> 01-02-02->01-02-03------------------------01-02-99
3) 01-03-01-> 01-03-02->01-03-03------------------------01-03-99
01-01-99------01-99-99------99-99-99
We will increase the versioning as above.
Without versioning: one operator can finish the work first; he has to wait till other developers to
complete the work. He can’t move the code to test region. So without versioning dependency is
more.
With versioning: operator can move the code to testing with out waiting.
When we create most of the rules, we need to associate with ruleset and version.
We have to create a report definition in the same class [table class], from which we want to
retrieve the data.
Report definition is a query rule.
Results will be in “List view” format [Table format].
Features
Export to Excel: Data will get exported to Excel. This can be downloaded.
Charts tab
To display reports of charts, we must have at least one summery column [numeric column] in query
tab.
If you check this option, report will be available for manager portal.
Business users [managers] can access the reports using report viewer.
Once we create report definition, we need to add this report under some category and make
it available in report viewer browser.
A report can be scheduled to run in back ground and an email can be sent attaching the report
results in XML format or PDF format.
Dropdown
Auto Complete
Section using table layout.
When we execute a report definition, the OOTB activity that runs in the back ground is
“pxRetriveReportData”.
1. OOTB(Predefined) rules.
2. Then go for below alternate rules. Reports, DPages, Decision rules, Declarative rules, Case
Type, Data Transform etc.
Joins conti………..
Q: create a new data type state with columns state code [Key Column], state name.
Remove the local list values from state property, make table type none.
Populate state dropdown with the data retrieving from state table [data type].
Design:
2. Execute the source rule, hit the data source, fetch and place it on clipboard page.
When the data is constant data certain period of time, and also the data is common and sharing is
required, then we go for this type of algorithm. [Data page].
Structure:
Read only: - These Data Pages gets created on clipboard under ‘Data Pages”.
These cannot be updated or deleted. We go for read only mode, when data should not be
manipulated by business users. THREAD, REQUESTOR, NODE
Editable: These Data Pages gets created on clipboard under ‘User Pages”.
We go for this mode when the data retrieved has to be manipulated by the business users.
Salvable: These Data Pages gets created on clipboard under ‘User Pages”.
This data page is required when we want to insert or update the data into table.
1. Thread: - This Data Page will be available for sharing only within one specific work object
multiple times. But not available for other work object.
[data available with in the case or session]
2. Request: This Data page will be available for sharing across multiple work objects of a single
requestor session. But not with other requestors.
[data available with in login & logoff level]
3. Node: Data Page will be available for sharing across multiple requestors who logon to same
node but not with the requestors on other nodes.
[data available based on our requirement]
Ex: Netflix, amazon plans are same, conditions are same.
Access group is required for node.
Load management: refresh strategy is available read-only. For editable, saveable it is not required.
Because it will comes under user pages.
If we select reload once per interaction, it will always refresh when we interact with DB. In case
every time we are getting new data, frequent changes.
Clear data page: When we click on this, the data page gets deleted from clipboard.
When we click on this, PRPC internally calls an OOTB activity “Flush Declarative Page”.
Do not reload when.
Reload if older than [see the notes].
1, If we enter Data page refresh is 1 hour, first requestor-8am-D_Page created
9 am data page gets removed.
It gets created again when a new request is been made.
2, First request- 8am-D_Page created.
Request 2 – 8:45 am (he will use the same D_Page)
Requestor 3 – 9:30 am (New D_Page gets created)
10 am D_Page gets removed.
Connector
Data transform
Report definition
Lookup (fetch single record) like obj-open
Activity
Robotic automation
Robotic desktop automation
Aggregate sources (more than one source).
It holds the data and we can send the data from one rule to another rule.
In all rules we can see parameters tab.
By using “Param” page we can call parameters.
We can access them by using “. Param “to assign the values.
These parameters will not access any data from DB.
It will not occupy any space on clipboard at run time.
We can see the parameter values in tracer “Unnamed page”
In child activity (rule) if we define parameters in parameters tab, in application where ever
you call this child activity, it will ask for parameters values.
EXAMPLE:
Here I want to assign the rule 2 AGE parameter value to the rule 1 Age parameter.
I can do it by enter Param.AGE in Age in rule 1.
1. Age Param.AGE
2. Fname Param.FNAME.
Same as for rule 3, I want to assign the rule 2 AGE parameter. I can do it by enter
Param.LNAME in rule 3
1. Lname Param.LNAME
We need to make sure that, define the parameters on calling rule (parent rule), which are exactly
matching with parameters of called rule (child rule). Matching by name and data type.
Design:
Open city data type, add state code column in records tab, enter exact state codes.
Open report definition, parameters tab, define stateCD (text) parameter.
Query tab of report definition, in where clause give column source .Statecode with the value
Param.StateCD. select use null if empty in settings.
Go to data page which is calling this report definition (use view reference).
Parameters tab of data page, define StateCD (text) parameter, go to definition tab, go down
to report def, click on parameters, select pass current parameter page.
Now open the customer details section, open city cell properties, reselect the data page. It
will ask for parameter value. Give .state
Run the case and test it.
Functions
we can build functions in expression builder. Build an expression.
Choose any function, click on test, if it suits our requirement, click on + to add.
Pre-Processing, Post-Processing
When we run the flow, first it will execute assignment shape, assignment shape will execute flow
action, flow action will execute the section.
If you open the flow action rule, go to Actions tab, here we can call Activity. (Pre / Post).
Pre-Processing: whenever the section loads, immediately if you want to execute the activity, you can
call the activity in “Pre-Processing”. Execute when section loads. (on load of section).
Post-Processing: I want to execute the activity when I click on submit button. You can call the
activity in “post-Processing”. Execute when click on submit. (on click of submit).
Launch portal
Case manager: whatever the flows which we have in development, those flows should be available
in manager.
If the flow is not available there, come back to respective application where you have created flows.
Go to cases & data tab, here mention the flows and respective implementation class.
Come back to manager portal, click on ADD. So here we can see the flow. Open it.
Also, in case you don’t see the tables in data types after we add it.
Go to application menu definition, Cases & data tab. Here you can see the tables.
Obj-Save
This method can be used to insert or update data to the table.
The data will be stored in clipboard temporarily .pyWorkPage and then it goes to work table in data
base (permanent). Data stores in pzpvStream.
When we fill the customer form in flow and click on submit. First data goes to pyworkpage
(clipboard) and then it goes to DB.
But here I want to save the data in my own table. Because in DB, data saves in blob format. We can’t
see the data in BLOB format. BLOB = Binary large objects.
While Working with Obj Save follow below steps.
1. Define a page in “Pages and Classes” tab which refers to “Target Table” in which we want to
store the data.
2. Create this page
3. Get data assigned on this page
4. Obj-Save and mention step page as “Table Page”.
At run time, Process commander identified the Step Page Reference class by
pxObjClass TATA-Data-States
, from the class it resolved it into Table Name. Data gets stored into the respective table.
1. If the record being inserted is already found in the table matching with Key Prop Value, the
Query gets generated is “UPDATE” Query else “INSERT” Query.
Obj-Save behaviour
* When we run the activity individually, the data stores in clipboard in “Customer Data” page. We
created in pages & classes tab in activity. And that data did not store in data type (Table).
Write-Now:
Commit:
While using the activity in the part of flow, data is getting saved into work table while
run the flow.
But while run the activity (independently) alone, the data is not getting saved into work
table. The activity execution is GOOD (in tracer).
For this (to save the data into table) we use above two options. Either write now, commit.
Q: why we are not using the commit in activity, which is part of flow?
Ans: when the transaction is getting processed, at the end of every flow shape process
commander is going to perform a commit internally.
Write now: saves the data immediately. It will save individual Obj-save data (Current) into table.
Commit: saves the data permanently. It will save/send all unsaved data which is available in differ
queue and present data.
Obj-Save-Cancel: it will remove the latest unsaved Obj-save data from differ queue.
Roll back: it will remove all unsaved Obj-save data from differ queue
we don’t have any impact on already saved data with Obj-save-cancel, roll back.
Obj-Save-Cancel Rollback
This method rolls back the latest un This method rolls back all the un committedobj-
commitedObj-Save. Save done so far.
It works on latest differ queue instance which is This rolls back entire differ queue.
not yet committed.
Design:
Create a data type (Customer), add columns and properties. Create a table structure.
Create an activity in org. go to pages & class tab, create a page and refer customer class.
Define parameters (except phone number, zipcode).
Steps tab, page-New, Property-Set (customer ID[Build an expression], remaining parameter).
Obj-Save [write now], page-remove.
Open flow action [customer details fa], call this activity in post processing, because when
customer submit it will save the data.
Open action tab, call the activity. Map the values to parameters.
Run the flow and test. Open tracer and see any issue.
Go to table and see the data.
When you run the activity individually, run record primary page is the start and end for execution.
pyWorkpage:
When you run the activity in the part of flow. pyWorkpage will execute the start and end for
execution.
Primary page will execute the activity.
For steppage we will specify the steppage name. if we don’t give any steppage, it will take
“Primary page”.
Always give the step page for best practice.
OBJ-OPEN
To fetch single record from table.
Obj-Open method will fetch singe record based on class key (key column).
This method is used to fetch single instance from table using class key. Country-Country Code
1. Step Page (This page should refer to table class). Work table- pyID
2. Open Class (Table Class)
3. Class Key and value.
When we do Obj-Open the instance will be fetched on to step page (table Page), if we want to
display in UI, we need to assign data from table page TO UI related page. To do this we will use
Page-Copy.
Sol:
1. Step Beginning.
2. Step End.
For each step we can call at least one when condition before step and/or after step.
We can call when condition at “When” Before Step and/or at “JUMP” After step.
When: Pre-Condition.
Jump: Post-Condition.
We just need to click on When or Jump and choose the when condition rule.
There are multiple options provided to choose appropriate action after the condition is executed.
1. Continue Whens: It will proceed executing further when conditions, if no when conditions
available further, it will execute step.
2. Skip Whens: It will skip execution of further when conditions and proceed with executing
step.
3. Jump to Later Step: This requires a label to be specified. And execution jumps to labelled
step.
4. Skip Step: It ignores the execution current step.
5. Exit Activity: It exists the current activity at current step. Further steps will not be executed.
6. Exit Iteration: While looping it will exit out of current iteration.
Jump to Later Step: Process commander will execute from lower step to higher step 1-> 2->3->4
but not from higher steps to lower steps.4->3->2->1
1 1
2 L1 2 L2
3 3
4 L1 4 L2
1. Good
2. Fail
3. Warn
4. Goodwarn etc…
PRPC provides OOTB when Condtion to identify step status at run time.
1. StepStatusFail : This returns true when the step status is failed. pxMethodStatus
Property value is FAIL. Other than this it returns false.
2. StepStatusGood
3. StepStatusWarn
4. StepStatusGoodWarn
Working with step status OOTB when rules.
Pre, post conditions in activity, paragraph, Flag property
Q: Make changes to customer search screen as below.
Sol:
1) Create a flag property (True/False), OR for this we can use OOTB property “pySelected”.
2) Create 2 when conditions for TRUE, FALSE.
3) Create a paragraph rule, add customer ID property.
4) Add this paragraph in a new layout. Map this to paragraph control.
5) Go to layout properties and apply a visibility condition for results layout (true condition),
Message layout (false condition).
6) Open the activity, set the values of flag property to true/false based on Obj-Open step status
Beginning to ending what are the different steps that are involved in the transaction that will be
defined by “flow”.
Because we can call FW application rules and pega platform rules also.
Case life cycle going to start at start stage and gets completed at resolution stage(End).
Automatically moves to next stage. (Go to next stage) OOTB activity pxChangeStage
This activity will change stage automatically when we select this option.
Wait for user action. (Approval/reject)
Resolve the case (End).
Set case status on stage entry. (We can set the status for stage, process, steps)
Validation tab
Never
Expression
When rule
Expression
Steps:
Route to (who will perform the assignment shape)
Set case status
Instructions for user
Configure View [(add properties like sections in flow) after adding the properties click on
submit, pega automatically create section, controls, map the properties]
We can see the process (flow) manually in process tab. [open process].
Open pyWorkPage
When we create a case type, a case type class has been created under IMPL class. That is a concrete
class, belongs to a class group. (Child class of class group).
Pega has taken pyDefault as case type name. Vehicle insurance is just label.
If you create another case types, each case type is created with pyDefault. The name that we give is
just a label. pyDefault is the actual name of the case type that the system will create.
pyDefault
When we click on save and run, the work object should be created. To create this work object gets
created by internally running OOTB activity ADD activity. This is from 8.5 version.
8.4 version
The starting flow that gets executed in PRPC is pyStartCase. This flow will create a new work object.
First rule that executing here is the “pyDefault” case type rule.
Click on + symbol, it will open the sub flow here itself. pxStartCaseType.
This case type is executing the first stage in the case type.
1. pyDefault
2. pyStartCase
open this
Create a new work object
3. pzInitializeStage
pzGetFirstStage
pxChangeStage
Add
Add Work By using these OOTB activities, we can create a work object in case type.
Add Work Object
Process commander finds the details of all stages from case type, in stages tab.
2. Customer Info
Customer Details FA
Address Details FA
3. Vehicle info
Personal vehicle FA
Personal vehicle claims FA
Commercial vehicle FA
4. Case Close
Resolved.
At stage level.
At step level.
Maintain same name of the field value rule and value of the field value rule. So that we can have a
clear idea about it.
We can use OOTB status. If the status is available. We don’t need to create that again.
pyStatusWork is an OOTB property, which holds work object status on pyWorkPage. The same
column will be available in work table.
Design:
WO locking functional:
When an operator tries to edit a case, PRPC verifies if there is a record in the table
PR_SYS_LOCKS.
If record is found (means already case is locked by another user). It displays a message to
current user saying that some other operator edit the same case.
If there is no record in the table, PRPC inserts a record into the PR_SYS_LOCKS table
(meaning that lock is acquired by current operator), allows the current operator to edit the
case.
Note:
1, Default.
2, Optimistic (soft)
Optimistic: lock will be acquired only when an “action is been taken on the case”.
In default locking multiple operators can not open the case at the same time,
In optimistic locking a case can be opened parallel by multiple operators. They can’t submit
at same time.
Lock idle time is 30 min. after that time release the lock.
Unlock, Commit.
When we update or modify the data, we use Lock, other times we don’t use.
After modify the data we have saved it by using Obj-Save or Commit. The data saved into
data base, after that only we release the lock by selecting Release on commit.
pzInsKey: holds primary key of instance. case or work object or any instance)
Prefixes:
PX: identifies the special properties, we can’t input the values from HTML form (section).
PY: not special, values can be input by user on HTML form (Section).
If we create a data class without any dedicated table (key column), these classes will be
mapped to “PR_OTHER”
There won’t be any key for these classes.
Understanding pzInsKey
For LOOP
OBJ-OPEN-BY-HANDLE.
WORKING WITH OBJ-OPEN-BY-HANDLE.
DATA TRANSFORM
Data transform: it is like a property set.
We can assign the values to property.
We can assign
We can call the activity in DT, by using two functions 1. Call Activity
2.pxExecuteanActivity.
pyWorkIDPrefix
Execute pyDefaultDTF
Set pyWorkIDPrefix = C-
Look up application rule form if Prefix is Defined or not
If Defined , Override pyWorkIDPrefix = Prefix Defined in datatransform.
Else
Do not override pyWorkIDPrefix = pyWorkIdPrefix
If we want to modify any OOTB rules, we have to Save as the rules with same ne into User
Defined rule sets and modify it.
If a rule is available in OOTB and User Application rule sets, PRPC always picks the rule from
User Defiled rule set.
Pega is going to say activities to be avoided. Pega did not say avoid all activities.
Pega says user defined activities should be avoided. (You should avoid creating your own activities)
Design:
Create a when rule based on check box in impl class. For true value.
Create a Data transform.
Open check box and apply refresh condition and call DT.
Make shipping address layout read only when bill and ship same.
Create a case and test.
Application rule.
pyDefault data transform.
Application rule:
Process tab
Data transform
This data transform is used to assign (set) default values to properties. Here for work object ID.
Change work id prefix for Vehicle insurance case type and Begin vehicle insurance flow.
When I add the flow here, it will come in the case manager > create menu > New.
First pyDefault Data transform will gets executed, and it is going to set “py work id prefix”.
Then application rule form will gets executed, in the application rule form it will check prefix
is mentioned, then set prefix to that value. (it will remove the default prefix value from DT).
If not, it will take the default prefix value.
Design:
Remove the prefix from application rule form. If we mentioned any.
Open OOTB pyDefault data transform. [open any flow, process tab, open pyDefault].
Save as this OOTB rule into our ruleset [IMPL] with same name.
Open and change prefix from build an expression to get current date stamp.
Create a case and test.
Validations
The purpose of validations is to check the property values to be expected, before we actually
process it.
1. Client-side validation.
2. Sever-side validation.
1. Validate (server-side),
2. Edit validate (Client-side),
3. Constraints (Client-side).
3, Validate rule.
This validation is specific to one flow on which Validation happens at all different places
we call it. wherever we use property because validation is
applied on property.
We implement using OOTB functions We have to write Java Code
Design:
Use OOTB edit validate rule Is Non-Negative integer. Save as it to our ruleset, change name
and modify it.
Open Age property. Go to advanced tab, mention our validate rule here.
Open customer form, apply refresh condition on age. (change).
Create a case and test it.
Validation happens at all different places Validation happens at all different places
wherever we use property. wherever we use property because validation is
applied on property.
We implement using OOTB functions We have to write Java Code
There in no need to call declare constraint, it This edit validate rule have to explicitly called
gets automatically executed where ever we use on property.
properties.
Declarative rules
Declarative rules executed without calling.
We don’t need to call these rules from anywhere. Just create the rules.
Created under decision category.
Instance of RULE-DECLARE-( ).
Dependency validation.
When we create a declarative rule, we will include properties in the definition.
If any of the properties are been used or values gets updated, immediately declarative rule
gets executed.
Example: in constraints we add Age, Gender properties. In application anywhere we use Age, Gender
properties. If we change any value either Age or Gender, then Declarative rules will execute.
1. Declare constraint.
2. Declare Expression.
3. Declare on change.
4. Declare Trigger.
5. Declare index.
6. Data Pages. (Declare Pages).
Design: create----Decision----Constraints.
Declare Expression
Created under decision category.
While creating the declare expression, mention which property you are going to use as a
target property.
ID:( ), Created with property name.
Whenever source property value changes, then declare expression gets automatically called
and executed.
This can be used to assign a target property based on source properties value changes.
Whenever source property value changes, then automatically target property value changes.
We will use the declare expression for calculation purpose.
Forward chaining: Whenever source property value changes then automatically target property
values changes. Whether you use the property or not in anywhere.
Backward Chaining:
Total amount = No. of 1st product * Cost of product 1 + No. of 2nd product * Cost of product 2.
Insurance Details,
Agency Details,
Policy Details.
a. Personal Vehicle,
b. Commercial Vehicle.
Design:
Add calendar +,
@add calendar(.PolicyEffectiveDate,.PolicyTerm,0,0,-1,0,0,0)
Year, Months, weeks, days, hours, minutes, seconds.
Declare on change
Declare on change: if the property value changes anywhere in the application, it will execute an
activity.
Design:
Create a data type. Agency. In records tab choose agency code as key column.
Add records. Add some agency codes and agency names.
Open agency details section, make agency name read only (always).
Open agency code, change property type to auto complete.
List source Data page (D_AgencyList). Data source property .AgencyCode.
Apply refresh condition on agency code (Change & Refresh).
Now in order to retrieve agency name from agency table, which is based on agency code.
Let’s use Lookup, data page. This data page has got created while creating the data type.
Data page: Agency.
Data source, go to parameters below and check Param.AgencyCode created. This is
parameterized data page.
Now create an activity (type: On change), which will call above data page and pass Param
value in case class.
(Property-set)
Primary.AgencyDetails.AgencyName =
D_Agency[AgencyCode:Primary.AgencyDetails.AgencyCode].AgencyName
Decision Rules
Decision means, taking an appropriate action based on condition.
1. When
2. Decision Table
3. Decision Tree
4. Map Value.
5. FORK (Which is not a rule – Can be used only for decision purpose in the flow using Decision
flow shape).
Decision table and decision tree both are used to apply the decision logic.
Decision Table: Rule which we use to evaluate the conditions. Conditions in table format. If the
condition is true, it will return the value, it will not evaluate the other values here. If the condition is
false it will go to next condition (else if), again it will validate, if the condition is true, it will return the
value or it will go to the next step.
If all conditions are not satisfied, then it will go to otherwise. We have to define some default value
in otherwise condition. Which will execute when all the conditions fail.
In decision table we can add columns and rows. In columns we can call the property. In that we can
define few more conditions.
Columns follows AND rule. i.e, all the conditions in that column must satisfy then only it return the
value.
Rows follow OR rule. i.e., anyone of the condition satisfy it will return the value.
In column if the property have 2 are more possible values, we can add it by Insert before and after.
When we click on any cell we can see the expression builder, with this we can call functions
(Complex logic).
Results tab.
Even though one of the conditions satisfied here, I want to execute all the conditions in the table. By
selecting Evaluates all rows we can do it. Anyone condition satisfy in the table; it will evaluate all
rows in the table.
1. When (already worked)
2. Decision Table.
3. Decision Tree.
4. Map values.
Decision Table:
Conditions Actions
pxObjClass Return
If
Else If
Else If
Other wise
Set Of Properties.
In decision table we can define only set of properties as a column, on that column only we can apply
the condition to evaluate.
Decision Tree:
By selecting this option, we can call decision table, decision tree, map values.
Map value:
1. Decision rules. (We can call one rule from another rule).
2. Activity. (Property-Map-Decision Table, Property-Map-Decision Tree).
3. Flow. (Decision Flow shape).
The return statement decides whether to proceed forward or not return - means go to calling
rule.
Decision table, Decision tree when a condition is been satisfied, the rest of the condition will not
execute, because of return statement. (if true it will stop there and pass the value).
Decision Table:
Results tab
If we select this, it will evaluate all rows. Because there is no return value.
When we select this option ACTIONS will come.
After actions tab, we can add another columns.
But without selecting evaluate all rows, we can’t add columns after return.
Evaluate all rows, means it is not going to return, instead it is going to do a property set.
Decision table, Decision tree are alternate rules for activity. [Property-Set], Data transform.
In activity you are calling a decision table, decision tree, if it is returning a result, you are capturing
that return value into property.
Design:
Start
Commercial Personal
Previous Claims
End
Circumstance
Circumstance: creating a new variant of rule based on condition.
Circumstance by:
Template
Template Definition
Property value
.Age 25
At run time PRPC will verify the condition. If the condition met then circumstance will get
executed. Else base rule will get executed.
Date Qualifier if the date is in between these dates, then circumstance execute.
Only one property gets involved in the circumstance condition. Whereas date is optional.
If the property and value met the condition, it will execute circumstance.
Even though circumstance condition is met in property & value, if it is not met the condition
in date to fall in between the specified dates (Start and end), then base rule will get execute.
Also, if the condition is not met only date is met, then base rule will execute.
1. 49 recharge plan.
2. 199 recharge plan.
3. 220 recharge plan.
4. 50 recharge plan.
5. 12 recharge plan.
Finish Assignment: Is the OOTB activity which gets executed, when we click on submit button in the
screen (UI).
1. Connector action.
2. Local action.
When we create any flow action, by default it is used as a “Local and Connector”, we can see it in
Action tab of flow action.
If you want to use it only as a connector action then you choose “connector action”.
If you want to use it only as a local action, then you choose “local action”.
Local action: It allows user to perform the actions, when an action is been performed, WO will not
move to next assignment. Instead, it will be in the same current assignment.
Action will be done, but work object will not move to next assignment.
Click on this.
Files and documents. Click on gear icon. (Here there is no save button). We can attach files. When
we submit it, we are still at same assignment.
1. Controls,
2. Assignment shape,
3. Flow,
4. Case management.
Controls: on click of any control (Buttons, hyperlink, icon, any HTML control).
We can see local action only in that section.
Assignment shape:
Open assignment shape (Ex: Customer details).
Go down
Advanced
> Local Action TEST
+ Add local action. (We can add more local actions).
When we run the flow, work object reaches to customer details, it will display TEST in
actions menu. After executing it, work object is still on the customer details assignment.
When we call local action on assignment shape, when the work object reaches that particular
assignment, the local action of the assignment will get displayed in the action menu of that
particular assignment. It won’t be accessible from any other assignment.
We can access the local action from particular assignment where we call it.
Case management:
If we define local action in case level, pyDefault. It will be applicable for all flows in case.
If we enter customer details data, then we want to modify the customer details in any section,
assignment, flow that section can be added in throughout the case. The local action will get
displayed in the action menu throughout the case.
So, we can modify the customer details throughout any section, if we define in case
management.
Policy information section is already available in data class. There was a page in work class referring
to respective data class.
Q: How do I display?
Ans: copy from that particular page list to whatever the page list you are using in User Interface.
Clip board
+ System pages
pyFileUpload.
We are supplying excel file with content, excel file with template to pxParseExcelFile activity, taking
these two it will be able to get it on to clipboard.
Working with Binary file rule for excel, file path control, pxParseExcelFile
OOTB activity
Q: create a new screen to collect nominee details in a table format.
1. Nominee Name.
2. Date of birth.
3. Age
4. Relationship
5. Percentage (of assurance amount)
Facilitate the business user to upload the nominee details from an excel file. The upload
excel file data to be displayed in UI.
When working with excel file upload, we need to know about
1. Excel template- Columns, page list, properties.
2. Binary file rule- To upload the template.
3. User Interface- File path control.
Browse the document-- Copied to PRPC server-Folders- (Ex: static content/Global)
4. Clip Board- pxRequestor.pyFileUpload (Property).
5. Create activity- pxParseExcelFile – [what is the excel file which has data, excel file
with template].
6. Excel data file.
For this if you use wizard, when you create a case, by default it will show you one empty
column. To remove this column, go to pyDefault Data Transform (pySetFiledDefaults).
Remove Nominee list(1).pyLabel “ “.
Or
Create them by without wizard. So that you don’t get any default empty column.
Design:
First create UI form for nominee details
Create a data type. (Nominee)
Properties:
1. Full name
2. Date of birth (Use already existing)
3. Age. (Use already existing)
4. Relationship (picklist-Dropdown-Local list-Father,Mother,Spouse)
5. Percentage. (Percentage)
Create a page list (Nominee List) in FW, page ref Bajaj-Data-Nominee.
Create a section, add controls, map the properties.
Create a flow action.
Add stage in case type. Add the flow action.
Create an excel file with data. (Nominee Data)
(Take the above fields and create an excel with 3 records).
Create an excel template. (Nominee Temp)
Ex: {.pxResults().Model Input} ---------- {} curling braces, page list().Property
{.pxResults().FullName Input}
{.pxResults().DateOfBirth Input}
{.pxResults().Age Input}
{.pxResults().Relationship Input}
{.pxResults().Percentage Input}
Template says about which column value to be given to which property in the page list.
Q: if you want to have only one row, do we need to take page or page list?
Ans: Page list. Because table works with page list.
Now, create binary file rule with an extension of XLSX.
Created under Technical category. (IMPL Class).
Label: Nominees
App name: webwb
File type: XLSX
Click on download file to test, to see if the file got uploaded or not. Open the file and
see it.
Refresh
Target: Other section
Section: NomineeDetails_Nomineelist
Activity: Upload Nominee Excel
Pages & Classes
FileData Code-Pega-List
FileData.pxResults BAJAJ-DATA-Nomoinee
pxRequestor Code-Pega-Requestor
(to get the file path)
Steps
1. Page-New FileData
2. Call pxParseExcelFile FileData
FSFileName pxRequestor.pyFileUpload
Template RFB webwb!NomineesTemp!XLSX
Has header
3. Property-Set FileData
Primary.NomineesList Filedata.pxResults
Now open Nominee details section,
Add dynamic layout, above to current section.
Embed section: Upload Nominee Details Excel
User interface
Control, Guided tour, Harness, Navigation, Paragraph,
Portal, Section, Skin.
* * *
DevStudio
Portal will have top panel, bottom panel, left panel, right panel, work area.
Middle one is called as work area.
1. Top panel,
2. Bottom panel,
3. Right panel,
4. Left panel,
5. Work area (middle).
You are given with requirement to create a section. After creating a section, we have two options to
embed the section
1. Flow Action.
2. Harness.
Q: which one out of these two you have to choose? How do you know?
Ans:
1. If the UI form should be displayed with submit, save, cancel buttons, when an assignment is
created.
During the transaction model, when work object reaches an assignment, if we want to
display the UI with these buttons. Then we will create “Flow Action”.
UI should be accessed as a optional screen with buttons as a local action.
Every screen that gets loaded in pega is harness. Work object loaded with in the harness.
The life cycle of work object has user interface forms, those forms are harness rules.
Perform harness
When the work object reaches first assignment in flow, perform harness will execute.
(Editable).
Perform harness gets loaded on every assignment shape.
Perform harness loads Flow action + Buttons into it.
“New” harness
(Editable)
Ex: (welcome screen) (Capture some data from customer).
Before the work object gets created in the transaction model pega is displaying one screen.
We can display (or) ignore it in work parties of flow.
Work parties
pyDefault
We can include and edit.
Work parties
pyCaseManagement Default
We can ignore it.
Confirm harness
(Read-only)
When there is no assignment to perform after completing all assignments, pega has
provided one screen. Confirm harness will display.
Review harness
(Read only)
To display the forms in read only format, to review purpose.
New:
Perform:
Confirm:
To display the forms in read-only format (Review purpose) after completing all the
assignments.
(Read-only).
Confirm: gets loaded at the end of transaction. End of all assignments. [Read-only].
Interview question:
1. Add
2. Add work
3. Generate ID
4. Save New
5. Work commit.
These activities get executed when we click on Create button in the new harness.
Whenever we ignore to display new harness, still these activities will run.
Perform Harness
Perform: Responsible for loading flow action, buttons.
HTML tab
Flow action gets loaded into PRPC by loading an OOTB section “Flow Action HTML_simple”.
Where it has HTML coding. This code is responsible for loading the connected flow action.
Process commander is going to load a Non-Auto generated section.
If you go to Design tab, you don’t see any tabs to include.
Non-Auto generated--- Sections that we are not creating, we can write HTML coding.
Flow action gets loaded along with buttons into “Perform” harness.
Create a section in IMPL class which contains all the sections of transaction.
[Total transaction data sec]
Don’t need to go full section editor. (see pdf once)
Include all the sections here. Data display----Embed section.
1. Customer Details Sec,
2. Address Sec,
3. Transaction Details Sec,
4. Auto Details Sec. (Because it is circumstanced),
5. Previous Claims Sec,
6. Nominees Sec.
Create a case and go to last screen. (Resolved and completed).
Use live UI.
Open case information section. (Section in cell).
Case Information
This is an OOTB activity, save as and modify.
Save as into IMPL class. Because I want to include a section which is created in IMPL class.
Add all the data and go to resolved and completed check the data.
If you do to test connection of operator ID class, it will display PR_Operators table name.
Operator ID is the class key for this table. Search by Obj-Open method.
+ System pages
+ Operator ID (Data-Admin-Operator-ID)
PyReports to: This property holds the reporting manager of this operator.
PyWorkGroup: This property holds to which work group this operator is belongs to.
Work tab
Reports to
Operator ID:
1. Full name
2. Email Address
3. Access Group
Work tab
4. Team (Work Group)
5. Reports to.
Access Group
How the PRPC knows about what is the application to be loaded and what is the portal to be
displayed?
Access group will provide access to application that operator can have. It also has portals, roles.
Access group acts as a interface between operator, application, portals, roles that operator can get.
Based on the access group of the operator, the process commander should be loading the
application.
For an operator who is having the access group of BajajAuto: Authors, it is going to load the
application of BajajAuto.
If you open the access group, this will be referring to application, Portals, roles.
If we want to change the portal, we have to login into application, open operator, open
access group, you can see the application and portal. We can change it here.
We can select one portal by default.
There is a relation between operator, application and portals. This is been defined by access group.
Access group provides access to the application, portal and assigns the respective roles to the
operator.
An operator can have more than one access group. We can do it in Operator ID Profile Tab.
If the operator has more than one access group, in the application menu we can switch application.
Operator Access GroupAccess RolesAccess roles to object Access level when privileges.
Access Group:
(How the rules will get picked and processed by process commander).
Rule resolution: identify and pick the right rule that can be processed and presented to the
requestor.
Check Points:
1. Class Inheritance,
2. Ruleset Hierarchy,
3. Circumstance,
4. Rule Authorization, first always looks in the current class where execution begins
5. Rule Availability,
6. Rule Cache.
1. Class Inheritance: when a requestor requests the rule, PRPC looks at the current class first.
If the rule is not present in current class, then PRPC looks for the rule pattern parents, if the
rule is not found then it will go for direct parent.
HDFC-HDFCAuto-Work
HDFC-HDFCAuto
HDFC
HDFC-FW-HDFCIns-Work
HDFC-FW-HDFCIns
HDFC-FW
HDFC
Work-Cover-
Work-
@Baseclass
2. Ruleset Hierarchy: First it will check in the current application ruleset, if not found go
further. Parent/Built on application.
HDFCAuto: 01:01
HDFCAutoInt: 01:01
HDFC: 01:01
HDFCInt: 01:01
HDFCIns: 01:01
HDFCInsInt: 01:01
HDFC: 01:01
HDFCInt: 01:01
3. Circumstance: we can have 2 instances with in single version, by using circumstance.
How does PRPC knows which rule has to be picked-up from the circumstance?
If the condition satisfies, circumstance rule will gets executed. If not base instance will gets
executed.
5. Rule Availability:
Available
Not Available
Withdrawn
Blocked
Final
Not Available: It will execute the below version of higher version (if the version is not available).
Withdrawn: higher version of current class is withdrawn, PRPC ignores all the lower versions of that
same class.
Then it will pick from pattern parent, if not found it will go to direct parent till base class.
If we make it final any rule, we can’t modify it anymore. We can’t save as and modify it in
other versions.
Routing: Assigning the work to someone (Operator) or a common bucket (Every operator in that
group can access)
Route to:
1. Current Operator
2. Operator
3. Work Queue
4. Custom
5. Use business logic.
1, Current Operator: The person who executed the previous assignment and who is currently
working on this assignment.
It is a common bucket where everybody in that group can access the task (work item).
But only one person at a time can open the task. Then that will be locked by default locking.
4, Custom:
Assignment type:
Route to:
5, Business Logic:
We need to add one decision tree that will decide for whom to assign.
Written values of decision tree will be either Operator ID or Work Queue.
Work list: list of work items which are assigned to the individual operator.
Work queue (work basket): it is a common bucket where everybody in that group can access the list
of work items.
When assignment is routed to single operator, that will be available in work list.
How?
In order to perform routing PRPC internally runs OOTB activity.
Activity
TO WORK LIST
Activity Type
ROUTE
When assignment is routed to work queue, that will be available in work queue.
How?
In order to perform routing PRPC internally runs OOTB activity.
Activity
TO WORK BASKET
Activity Type
ROUTE
When the work object created, it will get stored into table in the back ground work table.
When the work object reaches assignment shape, assignment gets created, when it created that
should be stored into either PC_ASSIGN_WORKLIST or PC_ASSIGN_WORKBASKET tables.
Servers > Local host > Data base > Postgres > Schemas > Data > Tables >
1. Assign-Worklist
2. Assign-Workbasket.
When operator perform the assignment and click on submit then PRPC internally runs one OOTB
activity, to complete the assignment.
FINISH ASSIGNEMNT
Once the assignment is get completed, the record that is been inserted in the work list (or) work
basket will be removed.
When assignment is routed to single operator, assignment will be accessible from portal,
My work
My work is the place which will have the task assigned to me.
Work list
OOTB internal activity to perform routing TO WORK LIST.
PC_Assign_WorkList
PxAssignedOperatorID: To which operator this particular assignment is routed to.
When the assignment is routed to work queue, assignment will be accessible from Operator
Case manager -Dash Board - Work queue.
Click on your work queue to see the assignments.
Every operator in that group will get access to work queue (work basket).
If we are going to route the assignment to particular work queue, all the operators in that
work group which is connected to this work basket can access to Work basket and its items.
Relation between work table and work list / work basket table
There are few columns to understand.
When operator login, go to my work. Here the list of assignments that are been assigned to
the operator are getting displayed.
These records are being fetched from work list table.
When operator login, click on My work, PRPC loads a Report Definition.
This report definition will fetch urgency, Due, ID, Description, Category, Owner.
Login operator ID matches with pxAssignedOperatorID, then it will fetch the assignments.
OperatorID.pyUserIdentifier = pxAssignedOperatorID
Work object is there in work table, the related assignments of work objects are there in work list /
Work Basket table.
How can we say that this particular assignment is related to which work object?
PyID = pxRefObjectInsName.
Then matching records will be retrieved.
pzInsKey = pxRefObjectKey. this matching columns records will fetch.
pzInsKey = pxRefObjectInsName
When the assignment is created before it gets stored into table [PC_ASSIGN_WORKLIST],
[PC_ASSIGN_WORKBASKET], its data should be there on clipboard, on system created page.
NewAssignPage (Assign-Worklist)
(Assign-WorkBasket)
Create Operator ID, Access Group
Q:
1. Create 10 operator ID with managers access group.
2. This 10 operator ID should have a valid email address.
3. Create a manager access group with managers role. The above operators should
have this access group.
4. Assign the reporting manager, Manager 1 to the developer operator ID. (Dev IMPL).
5. Create three user operators with user access group. Each of this operator reporting
to manager 1, manager 2 and manager 3 respectively.
Design:
Bajajmanager1
Save.
Create Bajajuser2 by following above process and choose reports to BajajManager2.
Create Bajajuser3 by following above process and choose reports to BajajManager3.
Save
Done
When we use approve/reject step, then automatically alternate stage will come in down side of the
case.
If the vehicle cost is more than 20,00,000. It will be processed to alternate stage. Here additional
processing is required.
It is not mandatory to have the alternate stage in case. But the advantage is it will divide into
properly.
Approve/Reject: if we add this step in any stage of the primary path, then automatically it will add
approval rejection alternate stage automatically.
Specific user
User Name
Bajajuser1
Save
Done
Login with User 1 in another portal (Chrome) and search, task assigned to user 1.
Login with user1
Task assigned to user 1
Go back to developer.
Click on go.
Enter all the details up to nominee details, when we click on submit. You will come to approval
screen.
Open assignment
Write something in notes and click on approve.
Done.
Having loss inspection access group, this operator should be part of loss inspection team.
Design:
Refer the above work group into work queue and refer Work queue into work group.
Create 2 operator ID under the team Loss Inspection, with Bajaj Loss Inspection Access
Group.
Open any operator ID.
Save as.
Bajaj Loss Operator 1.
BajajLossOperator1
Full name: Loss Operator 1
Access group: [Bajaj Auto: Loss Inspection]. Application: [BajajAuto:01:01:01]
Work tab.
Team
1. Goal Time
2. Dead Line Time
3. Pass Deadline Time.
Step level: if we define SLA in step level/assignment level, then this SLA is for particular
step/assignment.
Process level/Flow level: All the steps must be completed within the SLA.
Stage level: all the processes in that stage level must be completed within the SLA.
Case level: all the work in that case must be completed within the SLA.
For case types we can define SLA in Goal & Dead line tab. We can define our SLA from Custom SLA,
and also we can use existing SLA.
When the assignment is created, we can implement the SLA from 3 different types.
1. Immediately.
2. Dynamically defined on a property. (Dynamic SLA).
3. Time delay. (Static SLA).
GOAL and Deadline times gets calculated the same moment once the SAL is active.
Goal = 1 hour
Passed deadline:
After deadline reaches to here, then how many times this passed deadline should execute.
Ex:
3
Means 3 hours gap and execute 3 times with this time gap.
1. 10:30 am
2. 1:30 pm
3. 4:30 pm
Urgency: “0-100”.
1. Default Urgency : This is can assigned using pyDefault Data Tansform to an OOTB property
pxUrgencyWorkClass.
This value gets assigned, when is case is executed. Before case gets created it self this value
will be assigned.
2. Initial Urgency
3. Goal Urgency
4. Dead line Urgency
5. Passed Dead line Urgency
Initial, Goal, Deadline and Passed deadline urgencies can be mentioned in SLA Rule Form.
For example
Initial Urgency = 5, Goal Urgency = 15, Dead line Urgency = 20, Passed Dead line Urgency = 75
Urgency = Default Urgency + Initial Urgency + Goal Urgency + Deadline Urgency = 10+5+15 + 20= 50
Urgency = Default Urgency + Initial Urgency + Goal Urgency + Deadline Urgency + PSD Urgency =
10+5+15 + 20 + 75 = 100 (Rounds off to 100).
At dead line and passed deadline the same type of escalations can be defined.
All these escalations gets executed in Back ground upload goal, deadline and passed deadline times
breaches.
Immediately.
Dynamically define on a property,
Time delay.
1. Once assignment is ready (Default): Once assignment is created SLA starts running.
2. Dynamically Defined by Property: We can use a Date time property, once this property value
is matching with current server time then SAL will get start running.
3. Time Delay: We mention
Once the assignment is created and after the above number of days, SLA starts running.
How to define SLA Goal and Deadline time intervals by a Property Value?
We can define Goal and Deadline times being passed dynamically using a Date Time Property.
Once the above property value is matching with current server time that means goal is breached.
The advantage of defining goal and dead line by a property value is, Once SLA can be used for
different assignments with different goal and deadline times being defined dynamically.
Design:
Creating SLA
Goal = 1 min,
Open customer search assignment, go to goal and dead line, choose existing SLA [Our SLA].
Done.
Done.
Flow Types
1. Process Flow
2. Sub Flow
3. Screen Flow
Process flow: starting flow of our transaction, which creates a work object.
Sub Flow:
Similar to process flow in all aspects.
We can call this flow from another flow.
Ex: flow A, Flow B. {flow B is called from flow A. then flow “B” is said to be sub flow.}
Screen Flow: Screen flow can not create any work object.
While creating a screen flow, from process------- flow.
Click on view additional configuration options and select standard template for screen flow,
then click on create and open.
If we go to process tab, we can see creates a new work object is disabled.
In a screen flow, we can call the flow action from assignment shape.
We can’t call the flow action from outward connector of assignment shape.
For a screen flow, we can’t call more than one flow action.
There is no routing for screen flow from assignment shape.
Routing option for screen flow is available in start shape.
Entire screen flow gets routed to either single operator (or) work queue. Where all the
assignments of screen flow can be worked by one operator (or) work queue.
Harness option is available in start shape for screen flow. All the screens in screen flow will
have same appearance. (only one harness).
Customer Address
Pega provides screen flow by default appearance as tabbed screen. This appearance will be
defined by harness.
Open start shape
Harness
Harness name: Tabbed screen flow 7.
Based on the appearance of the screen flow assignments. Screen flows are categorized into
three types.
1. Tabbed screen flow.
2. Tree navigation screen flow.
3. Perform screen flow. (Similar to…
Once change the harness to tree navigation screen flow and create a case and test once.
Customer details
Address Details