Pega\PRPC Interview Questions and Answers

PEGA is a platform which provided a systematic approach to build and deploy process-oriented and rule-based solution and applications. Business Process Management, Customer relationship management, Decision management and case management solutions are some of the examples where process and rules are integral part of application development. What PEGA provides to a developer is a Designer studio which acts as an Integrated Development Environment (IDE) to build applications. The best part is this Designer studio is web based so a developer can work and create solutions from anywhere in the world.

Pegasystems Inc. is an American software company based in Cambridge, Massachusetts. Founded in 1983, Pegasystems develops software for customer relationship management (CRM) and business process management (BPM). Pegasystems specializes in the following industries: financial services, life sciences, healthcare, manufacturing, insurance, government, high tech, communications and media, energy, and utilities. The company announced in 1996 that it would be publicly traded on the NASDAQ stock exchange (PEGA). Since 2010, the company has acquired a number of companies including Antenna Software, Firefly, Open Span, MeshLab’s, and Chordiant.The Company’s core product is the Pega 7 software platform.

Introduction to PEGA-PRPC

Pega/PRPC is a popular rules engine and BPM tool from Pega systems that is gaining good market share among large corporations. Architects and developers build the Pega/PRPC instance while administrators and even select business analysts have the option of changing workflow rules during runtime. Infact, their motto itself is “Build for change”. The goal is to “eliminate software coding” and “automate manual work” to the minimum and build complex systems at the enterprise level with features right out-of-the-box.

That’s how it works in the utopia world. But in the real world, you need good developer support. So, the lesser the code, the closer you are to the goal of a true BPM tool. Software coding might be reduced drastically. But you still need people with a development background using inputs from Business Analysts to make changes or add functionality. Pega/PRPC is pretty expensive so they primarily target any corporation that can afford such a luxury.

“Pega is a Business Process Management tool. It is developed on Java and uses OOP and java

concepts. It is a platform which provided a systematic approach to build and deploy process-oriented and rule-based solution and applications. And the big advantage is we don’t have to build the system from the scratch like any conventional programming. It is becoming popular because of that, though most conventional programmers would disagree. And also because of it is agile way, Flexibility, and being extensible.

Advantages of Pega:

The features of this tool for addressing business application is very friendly. In contrast to convectional BPM tools, there is very less complex, technical syntax to manage the modeling processes and barely any hard-coded programming. A expert business user can be trusted to generate a business application from this Pega BPM Tool if desired.

This Pega BPM software suite has feature called “Case Life cycle Management” – which permits any business user to capture and process the flow of in their operations, be it document handling, approvals, decision making, etc. All these tasks can be built into a process flow to automate as much as possible.

The most interesting part about Pega’s BPM suite is its design-once, deploy-anywhere user interface. This saves lot of time and lot of effort is. And there is the capability to hook in business data and also tap on big data to get better decision making in any process flow.

Other advantages include customizability, Very less Coding, adaptability to future needs and Quick Developments.

A robust class structure is the foundation of reuse throughout our application. The PRPC recommended class structure design pattern offers flexibility in our design and provides for more levels of reuse.

There are 4 distinct layers in the PRPC best practice class structure design pattern:

Enterprise Shared Product Layer: The Enterprise Shared Product Layer is a library of extensions to the PRPC base functionality. You should always include this layer. It is rare, but this layer may be omitted in some very small one-off applications.

Generalized Application Layer: The Generalized Application Layer represents a generic base application to use as a framework for application instances. Here we will define most of the rules for our base application.

Organizational and Specialized Application Layer: The Organizational and Specialized Application Layer represents an organizational application instance. Here we will be implementing the generic application.

PRPC is a Java server application. PRPC provides the run-anywhere, inheritance, memory management, multithreading, scalability, and encapsulation benefits of Java to business rules and business process management (BPM) applications. Integrating PRPC with Java EE and EJB applications, JMS, SOAP/XML, and other new technologies is simpler because of its Java foundation.

To create a PRPC application (a set of rules grouped into one or a few Rulesets) business analysts and other developers create and update forms to define the rules, rather than writing Java source code. This approach improves developer productivity, program modularity, and maintainability.

Using rule forms enables less technical people to work with familiar “objects” rather than learn a new language or syntax. When PRPC accesses rules to execute them, it assembles executable Java code.

A class is an instance of the Rule-Obj-Class rule type. There are two types of classes.

Abstract class is a rule (an instance of the Rule-Obj-Class class) created to support the definition of rules, including other classes. Such rules can be inherited by subclasses of the abstract class. Rules with a class as a key part (such as properties, activities, flows, models, and so on) can apply to an abstract class.

A concrete class can have instances stored in the database. An abstract class cannot have any instances.

Work base class, one of thirteen standard top level abstract classes, is a superclass to all the classes that define work objects. A work object is the fundamental unit that records processed work in an application.

Data base class is an abstract class above various classes that define and contain static data and cumulative data. For example, the Data-Admin- classes contain information created by your Process Commander developers defining who can use the application, their privileges and security, and where they belong in the organization.

OBJ methods: At runtime, five methods (Obj-Browse, Obj-Filter, Obj-List, Obj-List-View, and RDB-List), list view rules, and summary view rules use a page of the class Code-Pega-List class as a source of search criteria and to hold output. Typically, such pages are named Results, pyQueryResultPage, or pyViewLookupList. Search results (which support rows of report output) are stored as pages in the pxResults () property, a Page List. Code-Pega-List is a concrete class, pages of this class exist only on the clipboard. They are never saved to the PegaRULES database.

RDB methods: Use Connect SQL rules and RDB methods only with an external database. Do not use Connect SQL rules or RDB methods for the PegaRULES database(s). Because not all properties in the PegaRULES databases are distinct database columns, use the Obj-Open and Obj-Save methods, not the RDB- methods, with the PegaRULES database to prevent loss of data.

Obj-List method: Obj-List method is used to retrieve data to the clipboard as an array of embedded pages this method creates one embedded page for each instance retrieved. The Obj-List-View method often produce more efficient SQL statements and provide better performance than the Obj-List method.

Obj-Browse method: Obj-Browse method is used to search instances of one class and copy the entire instances, or specified properties, to the clipboard as an array of embedded pages.

Obj-List-View method: Obj-List-View method is used to execute the retrieval and sorting operations, but not the formatting and display processing, of a list view rule. The system uses rule resolution to find the list view rule and executes it but does not produce any HTML output display.

Obj-Open method: Obj-Open method is used to open an instance stored in the PegaRULES database or in an external database linked to an external class and save it as a clipboard page.

Obj-Open-By-Handle method: Use the Obj-Open-By-Handle method only if we can determine the unique handle that permanently identifies which instance to open. Otherwise, use the Obj-Open method.

Obj-Delete method: Obj-Delete method is used to delete a database instance corresponding to a clipboard page and optionally to delete the clipboard page too. We can cause the deletion to occur immediately, or until execution of a Commit method. The Obj-Delete method uses the class of the page to obtain the appropriate Rule-Obj-Class instance. It uses the table name, key fields, and other aspects of the class rule to mark the instance for deletion.

Obj-Save method: Obj-Save method is used to save a clipboard page to the PegaRULES

database or if the page belongs to an external class save a clipboard page to an external database.

Commit method: Commit method is used to commit all uncommitted database changes. This method writes all the instances specified by one or more earlier Obj-Save methods to the PegaRULES database (for internal classes) and to external databases (for external classes).

RDB-List method: RDB-List method is used to retrieve rows from an external relational database and place the results as embedded pages in a specified step page of class Code-Pega-List.

RDB-Open method: RDB-Open method is used to retrieve a single row (record) of data from an external relational database and add the retrieved data into a specified clipboard page as property names and values.

RDB-Save method: RDB-Save method is used to save the contents of a clipboard page into a row of a relational database. The system saves the properties on the specified step page to the specified table in the database. This method operates in conjunction with a Connect SQL rule that contains SQL statements such as INSERT, UPDATE, and CREATE statements on the Save tab.

RDB-Delete method: RDB-Delete method is used to delete a row or rows from an external relational database using SQL.This method operates in conjunction with an SQL statement in the Delete tab of a Connect SQL rule (Rule-Connect-SQL rule type) that contains the DELETE, TRUNCATE or DROP SQL statement.

Page-Validate method is used to validate all the properties present on a page. If a page has embedded pages, this method works recursively to validate all the properties. This method consumes lot of system resources and takes more time. If you want to validate specific properties use Obj-Validate method with Rule-Obj-Validate rule.

Property-Validate method is used to impose restrictions on a property value. Use Edit validate rule along with Property-Validate method to impose restrictions. You can validate multiple properties using Property-Validate method.

Screen flow: we can traverse back. Best example for screen flow is filling the application form which consists of several pages, each page is dependent on the other pages. If a user is in 6th page and would like traverse to 3 page it is done using screen flows. Thru screen flows we collect all information and this collected information is given to work object finally.

The Call instruction calls another specified activity and execute it. When that activity completes, control returns to the calling activity.

Use the Branch instruction to find another specified activity and branch to it without a return. When the system executes a Branch step, control transfers to another activity found through rule resolution. Execution of the original activity pauses. When the branched activity ends, processing of the current activity also ends.

Page-New method: The Page-New method is used to create a page on the clipboard. The new page may be a top-level page or an embedded page. We can identify a model to initialize the newly created page. The model can set values for one or more properties.

Page-Copy method: Page-Copy method is used to copy the contents of a source clipboard page to a new or previously created destination clipboard page. The source page is not altered. After this method completes, the destination page contains properties copied from the source page and can contain additional properties from a model.

Page-Remove method: Page-Remove method is used to delete one or more pages from the clipboard. The contents of the database are not affected.

Page-Set-Messages method: Use the Page-Set-Messages method to add a message to a clipboard page. Like a message associated with a property, a message associated with a page normally prevents the page from being saved into the database.

Decision Tree: If you are making decisions on series of data that are different from one branch to the next, use decision tree. Decision Trees are best used for complex if/then/else statements. Decision Trees offer a bit more flexibility when different properties are using for different evaluations.

Decision Table: If you are making decisions against the same data element, use decision table. Decision Tables are used when we need some output based on same property inputs with varying values.

A service is a Process Commander programmatic component that defines and implements

an interface between an external application acting as a client and a Process Commander system acting as a server. A service is implemented through an instance of one of the rule types below, plus appropriate calling code in the external client system:

Screen flow is for UI improvement. While process flow is for business logic execution. So both have diff purpose. In screen flow we can’t create a WO, in process flow we can create a WO. In Screen flow we have next, previous options are available in process flow not available.

A property is an instance of the Rule-Obj-Property rules type. Property defines and labels a value that can be associated with a class. For instances contained in the database, a property often corresponds to a relational database column.

In a few cases, you can enter Java source code directly into rule forms.

Edit Input rules

Function rules

Java in an activity step

Java directive in source HTML

Using hand crafted java is against the pega guard rails. If custom java is written, as situation demanded, it is recommended to run Rule Security Analyzer tool to identify any security vulnerabilities.

Do not use Connect SQL rules or RDB methods for the PegaRULES database(s). Because not all properties in the PegaRULES databases are distinct database columns. Use the Obj- methods, not the RDB- methods, with the PegaRULES database to prevent loss of data.

SMA stands for System Management Application, is a web application that developers can use to monitor and control cache, agents and other processing in your PRPC system. You can monitor memory management, agent’s management, http service request details, remote logging and webserver/appserver installation details and edit prconfig.xml too

Spinoff: It will be used for asynchronous processing of a sub flow within a main flow. The main flow triggers the sub flow and continues with its processing. It doesn’t wait for the sub flow to complete.

SplitJoin: It will be used for synchronous processing as well as asynchronous processing. Split Join guarantee that “sub flows” of your flow are completed before continuing with the current flow. Choose “Any” or “All”, to resume your main flow. If all is specified, your main flow will resume only when all sub flows are completed. If any is selected, your main flow will resume when any one of the sub flows are completed.

SplitForEach: Split for Each shape is used to send a work object through another flow based on information in the pages of a Page List or Page Group property.

A series of forms that each require only one or few questions to be answered. After submitting a form, user receives with another simple forms with more fields that my depend on previous answers. At any point user can go to previous forms to review or change previous answers. To make a screen flow, create a new flow rule and select screen flow in the Template field.

An assignment is an instance of a class derived from the Assign- class. Assignments record a temporary condition of an open work object within an executing flow. For every Assignment, add at least one flow action. The assignment normally appears on the work list of the user who executes the flow.

The fork shape is used to choose one of a few different paths (connectors) based on tests on the work object. At runtime, the system evaluates the conditions on each outgoing connector, starting with the connector assigned the highest likelihood. The flow execution continues along the first connector that evaluates to True.

A RuleSet name is an instance of the Rule-RuleSet-Name rule type. Each RuleSet defines a major subset of rules in the PegaRULES database, because every instance of every rule type reference or “belongs to” a RuleSet.

Harness: Use Harness rule to define appearance and processing of wok object forms used in Ur app to create WO and process Assignments. Harness rule define the complete forms that support all user interactions that create, update and resolve the WO.

Section: A section rule defines the appearance and contents of the form.

Autonomic Event Services is a process commander application that monitors, retrieves and organize the alert data from one or more clustered process commander system throughout the enterprise. AES provides the charts, reports information about the events.

Comments ( 2 )

1 Ans:A work party is a person, organization, or business that is involved in some way with the progress or status of a work object. you can add the parties in work party rule and parties get tagged to the case.