BPM (Business Processes Management) BPM is a Management Philosophy. It focuses on Business Processes and Sub-Processes of an Industry with the behavior of Systems and Individuals within it. It models the processes and subprocesses visually and uses advanced Information Technologies to solve the business problems. It strives for better performance, easy to change and quality software. Built for Change Time to Market BPM is about people and the way they work together (their business process) and their performance objectives. Benefits of BPM Best suited for Workflows kind of software. Increase ROI. Robust and Quality Software Agility and Facilitates quick change Highly Iterative Speed To Market End To End Process and Performance Monitoring. Important Blocks in BPM (Pega) BRE, BAM, Integration Engine, Interfaces for Development and Maintenance. 1) Difference between Pega BPM Suite and other BPM Suites is Business Rules Engine and Business Activity Monitoring (BAM) 2) Many Process Commander applications provide business process management and automation through six functional capabilities, informally known as the Six R's: Receiving — Accepting and capturing the essential data describing work from multiple sources in multiple media and formats, from keyboards, scanners, and external systems. Routing — using characteristics of the work and knowledge about the workforce to make intelligent matches and assignments. Reporting — providing real-time visibility of work in progress, work completed productivity, bottlenecks, and quality. Responding — Communicating status, requests for information, and progress to the work originator and to other people involved in the work, by email, fax, written mail, and other means. Researching — Accessing external systems and databases through connectors to support analysis and decision making. Resolving — through automated processing and automated support of users, completing the work and updating downstream systems promptly. 1 Business Rules Business rules whether stated implicitly or explicitly contains all your organization business knowledge. A collection of your organization business policies, constraints, Computations, reasoning capabilities etc. Business Rules Engine A business rules engine is a software component that allows business rules to be recorded in a non-procedural, non-programming form, and uses advanced software techniques to compute the consequences and results of rules. The PegaRULES component of PegaRULES Process Commander provides a powerful rules engine supporting business process management, and other applications through services. Developed in Java, highly scalable and reliable, PegaRULES supports declarative rules, multithreaded execution and a large number of industry interfacing and standards. The business rules engine can be embedded or called from another system using Service JSR94 rules. PegaRULES database The rules, transactions, and other data supporting a Process Commander system are stored in one or more Oracle, IBM DB2 or Microsoft SQL Server databases. (Consult the Platform Support Guide for an exact current list of supported vendors and products.) The database that contains the rules — all the instances of concrete classes derived from the Rulebase class — is known as the PegaRULES database. This database is also sometimes identified as the rulebase, but it contains more than rules. Classes that are mapped to the PegaRULES database are known as internal classes. Concrete classes that correspond to rows of an external database are known as external classes. Application Lists Rule-Sets and Access Group lists Application. We can have more than one Access Group for a particular Operator ID. These Access Group can have different Applications/WorkPools with them. Therefore with one Operator, we can switch workpools as well as Applications. RULESET: 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 references or "belongs to" a RuleSet. A RuleSet name is a major aspect in: 2 Access control Grouping interrelated rules Managing the rules Rule resolution and versioning Moving applications — sets of rules — from one Process Commander system to another. On rule forms, the RuleSet name appears at the upper right. The term RuleSet sometimes refers to the name instance and sometimes informally refers to the contents of that RuleSet — all the instances of Rule- classes associated with that RuleSet. The Rule-.pyRuleSet property, present in every rule instance, records the RuleSet name to which the instance belongs. Process Commander itself consists of several standard RuleSets RuleSet Name rules are part of the SysAdmin category. A RuleSet rule is an instance of the RuleRuleSet-Name class. Creating Rule-Set, Organization and Division. - Go to PegaSample -> New -> Organization -> Organization. Give name and save - PegaSample -> New -> Organization -> Division, Organizational unit. Give name and save - Rule-set : PegaSample -> New -> SysAdmin -> RuleSet. Give name, version and save. We can give pre-requisite ruleset there (PegaProcom) Creating Application, Access group, OperatorID. Application: PegaSample -> Application Design -> Application. Give first version as 01.01.01 Built-in application = PEGARules. Application RuleSets = <Rule-set>:01-01 (major and minor version) Access group: PegaSample -> New -> Security -> Access Group. Access group name = <application Name>: Developer or <application name>: manager Define roles, Default portal layout, work pool (default workpool is PegaSample) (PegaRULES: SysArch4 in roles for developer) Operator ID: PegaSample -> New -> Organization -> Operator ID. Operator ID can be
[email protected] Provide the access group to it. Also under tab Work settings, change the Organizational unit. Under advanced tab, you can change password. 3 - Always the class group has direct inheritance with work. known as directed inheritance and pattern inheritance. Class type or work class had direct inheritance with work-objectThe Class group becomes the workpool (in Access group) Every class has to be with direct inheritance with some class. the persistent object instance becomes a row in a SQL-based relational database table. 4 . then it will have the direct inheritance with the pattern inheritance class. During rule resolution. pattern inheritance causes a class to inherit rules first from classes that match a prefix of the class name. If a class is not given a direct inheritance. it has an XML (extensible Markup Language) format visible on your clipboard as pages and property name-value pairs.base class and the Work. When stored into the PegaRULES database.Base classes. rule version Ruleset is derived from Pega Procom derived from PegaRules Access Group . Migration 3. Pattern inheritance is optional. Operator ID - has access groups and Organizational unit in them. Organization -> DataDivision -> DataUnit -> DataRuleset -> (Rule-) Advantage of ruleset 1.class Class group and work classes (class type) are always concrete. Access control 2.base class - When any object is held in memory.Data-Admin-OperatorID Pattern Inheritance Process Commander provides two kinds of class inheritance.Data-Admin-Operator-AccessGroup Operator Id . Application Name -> RuleSet in it. Access Group --- has Application name in it. About Classes - Instances of concrete classes derived from the Assign. Rule resolution 4. The work classes are concrete classes inherit from it. It also serves as the role of workpool. rule-set etc.g : More-retail-purchase-work (class group) -> new -> sysAdmin -> Database Table. select it and give its parent class as Work. with a unique ID which is normally pyID.If Class is class group. We manually map the class group with pc_work table. Give the class name. It supports the creation of work objects. select the workpool in access group as the class group Mapping pc_work table with class group (Work pool) The class group created is default mapped with pr_other table in database (where PegaRules are present). Version. It normally groups the classes to be stored in a single Database table. Creating Class PegaSample -> New -> SysAdmin -> Class. Eg: pyID Class Group: This is the first concrete class in the class structure.If Class is class type. Rule-set and save. e. The primary key for the work object is defined in class group (work-pool). In the form: 5 .Each sub-class of class group is associated with its parent class via a key. . Give info in History. select it and give its parent class as Work-ObjectNow. which is stored in property inside the classes. save it. Give class name as: More-Retail-Purchase-Work and save. give parent class as DataSave it. See the below pic. 6 .-> new -> sysAdmin classes.class) More-Data-Items (Concrete class and doesn’t belong to class group) Click right on More.Defining work pool in Access Group Define the work pool in Access group -> the class group Creating Data classes: Data- (Direct inheritance with @baseclass) More-Data.(Pattern inheritance with More. Then create class More-Data-Items Similar as above. First create abstract class More-Data-. Creating Properties: For common properties. we have customer name. like here in more departmental store. Then save it 7 . contact and email-id as common for all departments and hence we will create these properties at MoreRight click more-> new -> Data model -> Property. AcNo CITI.Cards –Work-CardDispute (Class type) Parent Classes for different classes Organization --- Data-Admin-Organization Division --- Data-Admin-OrgDivision Organizational Unit --- Data-Admin-OrgUnit AccessGroup --- Data-Admin-Operator-AccessGroup OperatorID --- Data-Admin-Operator-ID Class Group --- Data-Admin-DB-ClassGroup Database table --- Data-Admin-DB-Table RuleSet --- Rule-Ruleset-Name 8 .Items CITI .Example of CITI Bank Cards dispute dept @baseclass Properties DATA- CITI- (Org) .Finance-Cards - (Unit) Work-Object- Properties .Finance.Name Work- .DATA- CITI .TransactionID CITI .Finance- (Divisn) CITI-DATA.Finance Cards-Work (Class group) CITI . Concrete Classes mapped with external database are external classes. It defines 2 days and 5 days as goal and deadline time. They are blank activities. New -> The Activity that creates a new Work Object. A decision table/tree can be referenced in flows/activities/declare expressions. pyDefault -> Models . Show-Harness: Activity that shows harness for display w.table/Map.pySLAName: Property to define a W.O that stores the WorkParty for the W.pyWorkParty : the property in W.pyRuleSet: Property inside each rule describing which rule-set it belongs. In declare expressions we can call D. A worklist appears in My Work in Progress Area.O.trees/D. No escalation Activity. 9 . Default -> Default SLA in WorkObject.o forms. Set through model GenerateID: Activity that generates work id prefix for W.O SLA. .O Concrete Classes mapped with pegaRules database are internal classes. NewDefaults/NewInternalDefaults -> The Placeholder Activities that is called when a new work object is created.Application --- Rule-Application Class --- Rule-Obj-Class Harness --- Rule-HTML-Harness Section --- Rule-HTML-Section Flow --- Rule-Obj-Flow Property --- Rule-Obj-Property When --- Rule-Obj-When Map --- Rule-Obj-MapValue Decision Tree --- Rule-Declare-Decision Tree Decision Table --- Rule-Declare-Decision Table WorkpyStatusWork -> Property To Track Work Object Status. .s a page group type. It. Click save as with Applies to as : <Class type>. Click on Work-. Click on Work-. Creating Flow. and then select Harness. 1) Flow Select class explorer. From it select Work-. From it select Work-.Inheritance in Pega Class Inheritance. And Flow Type: <name of flow> 2) Harness Select class explorer. Click New (in the grid) Click as save as -> Applies to -> <workpool> 10 . Ruleset inheritance RuleSet Version Inheritance. Harness etc. then select Flow sample. 3) Section Two sections will be made. Right Click on work type -> new -> User interface -> property. Give property name in the form. Property mode Page list Page class The name of class from where it will take the properties. We need to create a pageList (Which holds the other property) in Class type. Before saving. 1) The common customer info. Here we have More-DataItems 11 . Right-Click on work-pool -> new User Interface Section. The fields from More- Should be dragged and dropped in the lebels. 2) Now for repeating data. This will come under a section which will be made under workpool. Change: 12 . In the class type -> new user interface -> Section. Select repeating. Add columns as required. Click on Layout and drag it to the page. Change the property of the grid.Now create a section to hold multiple data. Now drag and drop your section in the container. Now click on the symbol and select new container. 4) Adding Sections in Harness Open the harness by clicking it. drag and drop the properties in the columns. i. 13 .e Items Then as usual. A new container will be selected inside harness.Format – Standard List/Group – It’ll be same as the PageList we created. 5) Adding Harness in Flow: Click on the flow (here purchase Flow). Click on process tab. Under this change: Create new work object: tick it. Harness : New (The name of harness) Now run from the above symbol. 6) Creating drop down for set of values. Select to create a new property. Under this modify the following. HTML Property = PromptSelect Table type = Local List Put values inside the table type. 14 7) Creating decision table. We create a decision table on ItemName present in pageList Items under More-Data-. Right click on Items -> new -> Decision -> Decision table. Then provide the details. 15 Click under Conditions and -> 7.1) Creating PromptList 16 8) Creating expressions 9) Creating Calculated Value: 10) Steps to be followed for calculated value. 1) Harness: Tick Enable Expression Calculation 17 . we create 3 flow actions. 3) Section: in the properties of each of the calculated columns. 1) Create a new Flow action -> CutomerInfo. Confirmation is same as PurchaseInfo but read only. Do -> Display as: Calculated Value. Drag and drop the section customerInfo there. enable Expression calculation 18 . Sub-Flow. Decision Tree and Assignment Properties 1) Creating Flow Action Here there are 3 sections.2) Create HTML Properties as Calculated value. PurchaseInfo and Confirmation. Under HTML Tab. to disable it from adding/deleting a new row Hence for 3 sections. We use button dynamically. Flow. CustomerInfo. Creating Flow Action. 2) Creating Flow and Sub-Flow For creating sub-flow. Now press the edit button next to it. Now edit the sub-flow We have created the sub-flow as below. Note: Give Template Name as: ScreenFlowStandardTabbed. Provide the details in the dialog. select “Flow” from the drag and drop in the main flow. Select the diagram and in the properties box. It will open the new sub-flow dialog. (Flow rule will b the name of sub-flow) Note here Flow rule = CollectInfo. give name and flow rule.2) Similarly create flow action for PurchaseInfo and Confirmation. 19 . E.g – The Customer Info. manager@purchase. Do similar to all cases.com and operator@purchase. if Grand Total >= 10000 then approval will go to manager else operator. Note: we have 2 operator IDs here. Purchase Info and Confirmation and edit the properties. Save it. See diagram in next page. We have created a rule here that.com So we need to create a Decision tree for that. Give the name and Flow Name = Flow action created before.Select each of Assignment diagrams like Customer Info. 20 . Now in the main flow the control will go to manager for approval. Here it’s . Rule -> UpdatedStatus Staus -> Resolved-Completed 21 . 4) Creating Routing Here we are introducing a routing assignment (named as Manager). The routing is based on DecisionTree that we have created above.3) Creating Decision tree Click on class group -> new decision -> decision tree.GrandTotal Service -> Blank Now we provide two utility in the flow -> Approved and Rejected. Router -> ToDecisionTree Now click on the play symbol and edit other fields. So select the routing assignment -> “Manager” and edit the parameters as in screen-shot. Select each utility and edit the properties. Give the expression like below. DecisionTree -> Name of Decision tree (Routing here) INPUT -> It tells on which property Decision will be taken. Application name. In the Application -> Details tab. Like Approve and reject respectively. WorkType -> name of workType (Class type) Likelihood -> anything between 0-100 Apply and save. Flow -> Here out-of box flow will be given. Edit Work Types .Application -> Application name Similarly for Rejected. do the same and in status give -> Resolved-Rejected Now select the connector from manager assignment to utility and edit the properties. 22 . Similarly create a operator ID for user. While in draft open the properties of check-box “isShippingDetails”. Click its properties. a new section will come to collect the address. Here we have a check-box -> isShipping Details.Name as Purchase. And edit Display as -> CheckBox Behaviour -> ONCLICK. 10) Creating ONCLICK event. If we click on check-box. Implementation class as worktype Work ID Prefix as “p-“ 9. A new window will open 23 .5) Creating User who can create work object Create a new access group for user. Role : PegaRULE:User1 and Default portal : User. Edit the properties as Format = Standard.isShippingDone==’true’ 24 .Then edit. Hence select the whole section/container of Shipping Details . The complete Shipping Details section appears on mouse click on is shipping details. Active Input -> check Event -> On Click Action -> Refresh this section. Visible when -> . in the Approve. which is out of box rule in Pega. we have mentioned an Action flow = Approve.11) Main Flow Sub –flow: Overriding Default rule -> Approve In the main flow. So this rule provides a basic UI for approval by manager. 60% connector. We can override it to add few information like 25 . The list of things purchased (here we have a section called confirmation for that).and select flow action. Hence Click on Work. while approving the workobject. Give the details like Applies to -> Workpool/worktype name. So in manager portal. Select Approve rule and do a Save as. 12) SCREEN-SHOT of Sample Application More. this additional info will be shown. We can drag and drop the section -> confirmation under it. Screen-1 Screen -2 26 . And save it. a work object is known by the older term work item. It is the instance of Rule-RuleSet-Name. and eventually closed (resolved). It has a name and can have multiple versions associated with it. As an application is used. updated. and a status (property pyStatusWork). and the primary collection of data that a flow operates on. The purpose of RuleSet is mainly for. work objects are created. Every work object has a unique ID (property pyID). - Rule Resolution Rules Versioning Migration Access Control 27 . an urgency value.Screen -3 Screen -4 WORK OBJECT: A work object is the primary unit of work completion in an application. In some organizations. RuleSet RuleSet is the major sub-set of rules in PegaRules Database. They cannot create a W. flows etc). properties. It affects the accessibility of users in following way.won’t be available to them. with set of workers and workbasket that report to him. It defines capabilities such as other rules (UI Forms. Class A class is instance of Rule-Obj-Class.O. - Contains the Application. Creates an instance of the AssignWorklist class. It makes a set of RuleSet Versions available to requestors. a access group associated with it and it’s a part of an organization/div/unit. Instance of Rule Data-AdminOperator-ID Access Group: Instance of Data-Admin-Operator-AccessGroup. External classes The concrete classes whose instances are stored in External Databases are external classes. Hence cannot run the flow. The don’t have any instances or are not stored in DB. This is mainly to control access. indirectly the RuleSets available to users. Basic Activities in Flow (OutOfBox and Interactive) 1) Assignments Activities Work-.WorkList — Causes the assignment to be placed on the worklist of the current operator (or of another operator identified by a Router shape). Abstract Class They end with a “-“. 28 . - Defines the role of the particular user - Defines the portal for the user Work group A work group defines a supervisor (manager). Internal Classes The concrete classes whose instances are stored in PegaRules Data base are Internal classes. - The out of box rules present in Work. declarations. There is a role and portal associated with the Operator ID trough the access group. It mainly used for authentication purpose for a requestor. The Operators in PRPC are associated with an access group. decisions.Operator Id: It’s a combination of username/password. They don’t belong to workpool. - Contains the work pool. similar to WorkBasket ). Creates an instance of the Assign-External class.WorkBasket — Causes the assignment to be placed in a workbasket.Agent — Sends the assignment to a background process rather than to a person (rarely used. 5) Connector Flow Action cancelAssignment Notify sendCorrespondence resolve reject ConvertAttachmentToPDF. determined by an associated Router shape. Work-. 2) Router Activities 3) NOTIFY Activities 4) Utility Activity CorrNew or CorrCreate UpdateStatus (It’ll ask the parameter Status Work). Work-.External — Starts the directed Web access feature. sending a temporary assignment by e-mail to a party identified in the work object who is not an interactive Process Commander user. Creates an instance of the Assign-Workbasket class. Work-. 29 . ConvertAttachmentToPDF. In addition. - Operator’s Work Settings Tab. Work. under a set of conditions evaluated for each rule in the sequence.6) Local Flow Action addAttachment addFlow addCovered addToCover addParty AttachAfile/URL/Note 7) SLA Standard Escalation Activity AdvanceFlow Default NotifyAssignee NotifyManager TransferToManager NotifyAndTransferToManager TransferToWorkBasket ScreenFlow have standard Harnessess like Work-. one collection rule can reference another collection rule.TabbedScreenFlow etc. By referencing a list view rule. you can retrieve at runtime a dynamic list of qualifying rules to be executed. Where referenced Collection rules are referenced by the Collect instruction in an activity.PerformScreenFlow. all rules in the collection update a common page. You can include both procedural rules and Declare Expression rules in the sequence. 30 . Typically. Collections Create a collection rule to identify other rules in your application that can execute in sequence. We normally delegate the few rules to Business Managers. Map. 31 ) and complete the Delegated . None.Collection Tab PreCondition Type: Decision Tree/Table. without going to developer portal. so that they can modify the rules as changing business needs. When. We normally put those rule for delegation which change frequently. click the Favorites toolbar button ( Rules dialog box. This Collection rule is called in Activity method: Collect <Collection name> Rule Delegation A delegated rule is one that appears for a specific group of users so that they may manage these rules outside the development environment. Delegating a rule To mark a rule as delegated. Delegated rules appear on the My Rules gadget for a single user or for all the users who are associated with a specific access group. have less impact on business etc. Ans – • We should use the Commit method judiciously.5. • Even when processing can continue after Commit failure. design the processing so that the Commit method occurs only after errors are intercepted. checked. To avoid interference with this approach. Each pair of cells holds one label and one property value or other form control. or flow action form that has columns of uniform width. design your activity (after debugging and fixing the cause of the failure) to collect any required user input that corrects the problems. section. a Smart Layout is a grid (corresponding to an HTML <TABLE> element) of paired cells on a harness. select View > My Rules > label. 1. • When you include the Commit method in an activity. and click the link that labels the delegated rule. so it is important to include a transition in the Commit step that checks the status. Smart Layout Introduced in V5. From the Developer portal. uniform styles. it is unlikely that processing can continue in any reasonable way. Flow processing performs commits automatically when the flow ends and when an assignment is created or completed. and uniform characteristics. and corrected. do not use Commit in the flow-related activities in your application. What design considerations should be done while using Commit method in an activity. 32 . locate the My Business Rules area.Opening a delegated rule: To open a rule delegated to you: From the WorkManager portal. If a Commit method fails. open the Dashboard workspace. and re-perform any Obj-Save methods that preceded the Commit call. Flow actions are of two types: Connector flow actions appear as lines on Visio presentation in the Diagram tab of a flow rule. At runtime. AttachAFile. 33 . we provide INDICATOR : Used as -> Local Flow Action. When a section using Smart Layouts is nested within another section. change the assignee.Using Smart Layouts rather than "freeform" table layouts produces attractive work object forms with less developer effort. In the Action tab of a Flow Action. AddFlow. We can provide our own local flow action. Don’t select free form. AttachANote. users choose a connector flow action. and so on but do not complete the assignment. Action Tab in Flow Action The Action tab under Flow Action contains few important things like. but there are few pre-defined flow actions. Local flow actions are recorded in the Assignment Properties panel and are not visible on the Visio flow diagram. both Local and Connector flow actions are visible under “Take Action” panel. all labels and fields are given consistent widths. While running the flow. A line exits from an assignment shape and ends at the next task in the flow. AttachAScreenShot. Connector Flow Action. from layout. Each flow action is defined by an instance of the Rule-Obj-FlowAction rule type. users can select local flow actions to update assignment or work object properties. Basic UI Flow Actions A flow action is a choice available to users as an interim or final disposition of an assignment they process. and advances the work object along the connector to the next task. complete the assignment. Local and Connector. A local flow action. Process Commander adjusts padding and cell widths to seek attractive spacing and presentation. when selected at runtime. causes the assignment to remain open and on the current user's worklist. AttachAURL etc. A primary benefit of Smart Layouts it to force vertical alignment even when layouts are nested. Select Template with row and column count. Smart Layouts are recommended for new applications. At runtime. . 1. 34 . 2.) Run an Activity after this Flow Action is called. 4. HTML Tab HTML GENERATION :-> It can refer a HTML Fragment (Rule-Obj-HTML).) Validate rule.) INDICATOR that this is : Local Flow Action/Connector Flow Action/Both Local and Connector.) Run an Activity before this Flow Action is called. a section or can define its own form. 3. Error notification occurs immediately when you tab out of the input field or change focus to another field. Basic Advanced AutoComplete Dynamic Selct Charts Paragraph List View HTML Tab. You can't enter 02/31/2007 into a date field. SECTIONS A section rule defines the appearance and contents of one horizontal portion of a form. and contents of a section are defined by a section rule (Rule-HTMLSection rule type). Sections may contain other sections. We uncheck this box and can provide our own HTML/JSP in the below space. Auto Generate HTML Only. -> Select to cause your application to immediately validate the format of user input to dates. you can't enter a letter into a numeric field.Enable Client Side Validation. integers. behavior. Controls Layout Accordian Column Repeat Tabbed Repeat Row Repeat SECTIONS. You can copy and tailor these standard forms to meet your application needs. The appearance. For example. informally called subsections. Section rules are referenced in: Harness rules Other section rules Flow action rules Paragraph rules with SmartInfo pop-ups Process Commander contains dozens of standard harness and section rules. 35 . A section is a portion or area of a standard work object form that is incorporated on a harness form. -> Causes to evaluate the expressions by forward chaining. Enable Expression Calcualtion. and other fields within the browser window when focus leaves the form field. before a user submits the form. HTML rules. harness rules define the structure. Process Commander includes more than a dozen standard harness forms for entering. and updating work objects in a Process Commander application Composite portals — User portals that support application users with Firefox browsers as well as Rule forms — Forms that appear in the Developer portal that developers and administrators use to review. This button is by default linked to the standard activity Work-. we can check: - Create New Work Object . To review the assignments and w.GetNextWork. Presents a read-only confirmation display of the work object. property rules. Reopen: Allows a user to reopen a resolved work object. Perform. 2) Review Harness: Display the W. 36 .) There are various types of Harnesses. or update rules or selected data objects. In the Process Tab of the flow. When we start a flow. Confirm. Like section rules.then only the process button appears on the screen. - Skip creates new Harness .This will skip the new harness screen while we run the flow.HARNESS A harness rule — an instance of the Rule-HTML-Harness rule type — defines a runtime form. Use harness rules to define the appearance and processing of work object forms used in your application to create work objects and process assignments. Any flow action will have the GUI. is painted on Perform Harness. reviewing. Harness rules produce three types of forms: Work object forms — For reviewing.o without any update.O in display only mode. with no fields changeable. and behavior of the forms used in applications to create and update work objects and assignments. PrintReview: Supports printing of all the fields. Review. 3) Confirm Harness: Accepts a text note confirming the user’s response. Your application can override the standard rules to extend and tailor them to specific needs. (This capability is reserved. New. Your application can override that activity. appearance. 1) Perform Harness: This harness will appear when any flow action is called within an assignment. and processing work objects and assignments. Contains the Get Most Urgent button. enter. and others. entering. Each harness rule defines the appearance and behavior of a form. This harness is called at the end when the processing of the Work Object is finished. updating. the new Harness is created. acknowledging user completion of an assignment. HTML Tabs 37 . Basic Advanced AutoComplete Dynamic Selct Charts Paragraph List View Scripts and Styles Tab. Style Sheets: The CSS Style sheets. Row Repeat Column Repeat Layout Accordian Tabbed Repeat SECTIONS.Controls. Script File: It accepts a Javascript/VBscript file name. So OnClick of this HTML Property. You can even call an Activity. Provide the Visibility condition as above. 38 . Make it Visible When (can refer a when condition). The Section will refresh.g:. Making Property Visible/Invisible. E.Click on Behavior Magnifier. Click on the magnifier of the Section.Making Section Visible/Invisible. Note: The Section and Property will be visibility/Invisibility will be triggered by some event. Not every work object forms include a container. We can drag a section here. - Accordions and Tab are present in Harness and Sections only. defined through a harness rule. Left. Only Harness rules contain Containers.Containers: A container is a structural element of a work object form. Bottom. each identified by position as Top. This panel set is only available in Harness and we can put sections in it. 39 . use the Panel set control ( panel sets. 1) Using Validate Rules (Rule-Obj-Validate) Create a validate rule. Validation in Pega. ) to select among the available Each panel set has one or more panels. Right. The container may correspond to a visually distinct rectangle on the form. On the Layout tab of the Harness rule form. or Center. marked by a colorful border. Panel Sets A panel set is a configuration of sections in a harness rule that support a composite portal. Go under process Validate. it validates the selected properties.Validate Each -> Give Aggregated property name. There is another method called Property-Validate. Action tab has 4 major things. It’s also used under Activity under methods Obj-Validate. Note: Flow Action. This rule is used in Flow Action for validating the properties and parameters. This validate rule can be used under Flow Action -> Action tab. 40 . Call and Call for Each -> Give a clip-board page. 1) Run Activity before Action 2) Run Activity after Action 3) Validation Rule 4) Indicator (for local flow action/connector flow action). but Page-Validate validate all the properties in a page. Obj-Validate validates only selected properties on the page. using the edit validate rule (mentioned in the property it-self) (custom java). But Validate rule doesn’t require java code. (Rule-Declare-Constraint) This normally generates a client-side validation code. but we give expressions to validate the property. as it is under declaration rules. See the Declaration section for more info. 41 . But Validate rule is implemented at screen level (at Flow-action action tab) or called by Activity (Obj-Validate and Page-Validate methods). It is fired automatically whenever the property is referred. Using Constraints. 2.2) Using Rule-Edit-Validate Difference between Validate rule and Rule-Edit-Validate 1.) Rule-Edit-Validate: It is implemented on property as a whole (In advanced tab of the property form). And it is used to put validation/restriction on the property in relation to other properties (expression) .) Rule-Edit-Validate: It requires Custom Java code to validate the property.It also fires automatically. it sets the property values.) The value of output parameter is supplied from the calling activity. The parameters tab of calling activity: 42 . like from a Flow Action). (this will be output parameter in calling activity.Activities Basics: (We have a separate activities section) Here we have written an activity with 2 steps. we have called another activity and supplied a parameter to it. In Step-2. The values for Name and RollNo is being supplied as parameter (from where this activity is called. In first step. which defines the sequence of processing that your application applies to work objects.) Starter Flow: A flow that creates a new work object is called a starter flow. It’s an instance of RuleObj-Flow rule type. 3. is known as a straight-through flow.) Straight-Through Flow: A flow rule that contains no assignments. and so can execute from start to end without human input. They are represented through Visio diagrams. Processing of a subflow is synchronous.Types of Activities: While calling an activity from Utility shape. Types of Flow There are basically 4 types of flow. the calling flow is called parent flow. change the Activity type under security tab as Utility.) Sub Flow: A flow that is called by another flow is known as a subflow. 2. meaning that the calling flow execution 43 . 1. Flow: A flow is a fundamental representation of a business process in PRPC. Creation of Flow While creating a Flow we have to edit a check-box in its process tab. 44 . the calling flow can continue. This is special kind of sub flow where we give the flow action inside the assignment itself. And while creating the Screen Flow.) Screen Flow: This flow cannot create a work object. In the sub-flow properties panel Flow Type: Screen Flow. we have to do few modifications. not in the connectors. While creating this Screen Flow. Template: Screen Flow Standard Tabbed. Screen Flow Standard Classic etc. A Sub flow can create a work object. 4.pauses for the duration of the subflow. When the subflow execution reaches a Flow End shape. UTILITIES: These are used to call an activity from a flow (Activity type = utility). Instruction. Local Action. Also we can provide our own Activity under Rule: The Activity must be of type Utility. There are pre-defined Activities which we can reference in this utility like: UpdateStatus of work object. Now we can choose from the process list. which flow (Main Flow or Sub-flow) to run first. In it’s properties panel. we can choose: View ->My Recent Work -> The recent work to see the process list. Status Assigned. Spin-Off: A Spin-off task causes the second flow (sub flow) to start. Workbasket). Notify. Route. Work Status. 45 . which flow to run first. Etc. The user can choose. Assignments Important Properties of assignments are: Rule (Worklist. we provide the Rule: Flow name. Confirmation Note. While we reach the Spin-off shape. Here we are calling a pre-defined activity to update the status of work object. SLA. The main flow and the second flow executes asynchronously. The parent flow will run at last. This allows subflows to execute asynchronously. in parallel. While we run the flow. other flows can create a new work object. to run parent flow when all sub-flows are completed or any one sub-flow is completed.The Process List for main flow and sub flow to choose between Note: Except Screen-Flow. Split-Joint: Use the Split-Join shape to require that multiple subflows of your flow be completed before the current flow continues execution. the sub-flow can create flow to work on same work object (screen-flow) or can create a new work object (a sub-flow or other main flow). we can use view-> My Recent Work to see the Process list containing all the sub-flows. There is option here that. Hence we can say that in spinoff. Put multiple sub-flows inside it. 46 . Now we create a Flow Action for PageList. 47 . PageList: For creating pageList. it’ll ask for the Class name containing the properties. The pageList property will appear like below. we have to first create a Data.derived class to contain the properties that we want to include in pageList. e. Salary.g : Class DLF-RealState-Structure derived from Data. create a property of type pageList. We describe the Split-ForEach after the PageList Concept. Now in the Work type.class. We’ll create a repeating layout in the Flow Action/Section. Create properties in it like: EmpId. In the form. EmpName. Provide the data class name. Click On “Add” new data table. This will create a aggregate layout flow action/section. Go to Application -> Data Table. Creating Data Tables. 48 .Now click on the magnifier button on the layout.Now drag and drop each element under each of the 2nd column of the layout. Now the Class will be the containing class of the properties in the Page List. and edit the general tab. Give the PageList/Group as the pageList property we created. Give Class name: The Data. Save the modifications.derived class which will contain these properties. It’ll create a Database class containing these properties. instances of classes created through this facility are stored in the PegaRULES database table named pr_other and are limited to 1. with one column as primary key. Create properties it’ll contain. By default. it’ll also create few things under technical category like. Description: Description of data. in the Data. Editing Data Tables If we create a data table using the above methods. Now generate. the modification will reflect there. Split-For Each It is used to process an aggregated property (PageList/PageGroup) and executes a sub-flow for each page. Now can check the Data tables.derived class. Click on EditList and modify the things. 49 .000 rows. 50 . Starting a Skim operation From the Developer portal. the system identifies the highest numbered version and creates a still higher copy. then for each node (page) the sub-flow will run. We can choose any of the process list to run the sub-flow. Page Property as : the PageList that we want to process. and sets the minor and patch version values to the version you specify. the calculation goes inside the subflow.Class. of pages in the PageList. For each rule instance in a specified RuleSet or version. and sets the minor and patch values both to "01.derived class." For a minor skim. here we provide values. For a major skim. Flow Rule: The sub flow name. SKIMMING: The Skim facility causes a resetting of the RuleSet version values in the highest version of existing rules.E. process list will appear equal to the no. Also the flow actions mentioned inside this sub-flow must be defined under the Data. Class: Containing the Properties of the PageList.derived class because it’ll process the properties of Data. the system preserves the major version. select Tools > Rule Management >Skim a RuleSet to begin the skim operation. Note: The Sub flow mentioned here must be under the Data. Normally we can think this thing in this way. When we’ll run the flow.: if a PageList contains 4 individual pages (4 rows in repeating layout). Note. the system adds one to the major part of the version. with EmpNo. We want to Calculate DA and HRA for each employee. Name and Salary.g. We have an employee list. the skimmed version number is 03-01-01. We can provide allowed results for return. Wait Now I found out. For example. Rules in lower versions such as 02-21-05. 02-18-53. the skimmed version number is 02-22-01. or 01-88-15 of the same rule are not copied by the skim operation. Note that. minor or patch version above the current version. It then copies rules from the current version (selecting only those in the highest-numbered version) into the new major or minor version. Rules with available of Blocked in the source RuleSet versions are not copied. I haven’t found any option for calling other decision rules under it. 51 . After a minor skim. Below is the Results Tab. if the highest version was previously 02-21-06: After a major skim. Decision Tables: Sample Decision Table.Results: Skimming simplifies the topmost rule versions in a RuleSet after multiple iterative development cycles. Preset properties and Options. The skim automatically creates the new RuleSet version instance corresponding to the major. This is the Results Tab. Decision Trees: We may provide the input values (property to evaluate) at input tab. 52 .We can call other Decision table using call. 53 . Map We need to provide the Input values for Row and Columns.This is the Decision Tab. Then can provide a matrix structure between 2 values. If any of them changes. There can be more than one property that we can include in Declare OnChange rule to watch. we can fire 2 activities. Note: The called activity must be of Activity Type = Onchange (in security tab) See next page for Fig. when the value of a specified property changes. or suspends the current work object. One when a “When” condition returns true.Decision Tree/Table/Map in Flow Connector Properties Status compares the return values of Decision rules used above. 54 . and another when it returns false. DECLARATIONS 1) DeclareOnChange A Declare OnChange rule automatically executes an activity. Here we can see. Forward Chaining: It is the process by which. or on other conditions. Rest all Declaratives use Forward chaining only.g: A = B + C. They are fired automatically whenever the value of any property changes and on other criteria. whenever the target property is used or referred. If values of either B or C changes. its value is calculated at that point by seeking the values of its source properties in the dependency network. 55 . E. So the dependency network is built in this way. we have given the same flow name at “Policy Override Flow To Run” so that work object stalls and asks the user to change the property value. The value of A is automatically adjusted. Declarative rules follow forward chaining as well as backward chaining. if the value of the property is modified meeting some criteria.g: A = B + C. E. B can be = D + E and Similarly C = F + G. Backward Chaining: Unlike forward chaining. Declarations (Rule-Declare-) Declarative rules offer the ability to perform processing whenever the value of a specified property changes. We can suspend work object. We can say that Declarative rules simplifies the applications and reduces the no of activities we create. we can include any other flow to continue running if the Roll No changes and when condition is met.Declare OnChange can also be used to validate properties. the target property changes/adjusts its value depending upon change in the source properties. Note: Choose Action is Suspend Work Object (Not call activity as before) Policy Override Flow to Run. Note: Only Declare expressions use backward chaining. Ways to create: New -> Declaratives -> Declare Expressions We can provide Page Context. • Declared Index: Indexing can improve performance and facilitate reporting.The name of a declarative page starts with the prefix Declare_. • Declared Pages: A declarative page is a clipboard page created by execution of a declare pages rule (Rule-Declare-Pages rule type). 1) Declarative Expressions: Declare expressions establish functional relationships between properties. For example. • Declare Expression • Constraints • Declare OnChange • Declare Trigger: Declare Trigger rules perform an activity any time data of a specific type is changed in the application. Such pages are created and updated only through operation of activities identified in a Declare Pages rule. The contents of these pages are visible but read-only to requestors. Declare expressions ensure that any time an input is changed by any source.They are of 6 types. the result is always Up-to-date. Create a Declare Index rule to define criteria under which Process Commander automatically maintains index instances for faster access. 56 . if we want to calculate values from a pageList/pageGroup. and compute the result any time one of the Inputs is changed. a declare trigger could be defined to flag a customer's account for review any time their address changed. An index can improve search and reporting access for properties that cannot be exposed as database columns because they are embedded within an aggregate property. Rest 4 options are Backward changing.The Change Tracking Tab. In the UI Part 57 . 1st option is Forward changing. the constraints rule checks to confirm that the value still falls within the expected range. 58 . 3) Declare On Change: Declare OnChange rules run an activity any time that the value of a specified property changes. Any time the specified property changes. Eg: If a = 10 and b = 20 then c must be 30. • Normally Constraints are used to define validation on one property based on criteria on another property. Note: We can call An activity also when the input changes.We can change the behavior of properties A1 and A2 as Event = On Change. Note: The activity referred must be of type OnChange in security tab. 2) Declarative Constraints: • Constraints rules provide data validation for properties after they are already inside your application. Action = Refresh This Section. We can also Choose Action = Suspend Work Object and can assign to start a new flow. or deleted in the database. 4) Declarative Pages: Given in diff section. when condition is true. Trigger when an instance is 59 . 5) Declarative Trigger: Create Declare Trigger rules to cause an activity to run when instances of a specific class are created. This implements a form of forward chaining. updated. During database commit processing. Process Commander monitors database operations for objects of the Applies To class (and concrete classes derived from that class). it Suspends Work Object and Calls another Flow : “Screen Flow”. forward chaining processing may trigger — start execution of — the activity identified in this rule. For each Declare Trigger rule.So. Create a Declare Index rule to define criteria under which Process Commander automatically maintains index instances for faster access. .If we choose Save and …. or Page Group property in a BLOB column in the database. If true then only Activity will be fired. Index instances are sometimes called alternate keys or secondary keys. The system saves indexes as instances of concrete classes derived from the Index. An index can improve search and reporting access for properties that cannot be exposed as database columns because they are embedded within an aggregate property. This Activity should be of type trigger. 6) Declarative Index: Indexing can improve performance and facilitate reporting. Page List.. Process Commander stores properties that are embedded in a Page. By default. properties for the new class. and to optimize them for processing in other operations.base class. so that trigger will fire the activity (of type trigger). Copy Value To (optional): Provide another property name that will hold the original value of the property modified.. When: Provide a when condition that will be evaluated..class. and a Declare Index rule that allow Process Commander faster access to the property values. the Property Optimization tool "exposes" the values of an embedded property by creating a concrete Index. 60 .ONE OF THESE PROPERTIES WAS MODIFIED Provide the property name that will be watched. Trigger Activity: Name of the trigger activity that will be fired. In order to make these properties available for reports. Then we have to provide some properties that will be watched. 1) Page-New and Show-Page: Creates a new page in Clipboard and Show-Page shows the page in XML Format. Show –page displays the output as below. In Pages & Classes: give page name: SamplePage page class : The class name where the properties mentioned are defined. We capture the returned value in SamplePage.Class. contain a sequence of procedural. which returns a value. update and save data can call other activities can contain loops or iterations Note: We cannot create our own methods and we have to use the given set of methods only. ACTIVITIES Activities automate processing. This keeps the performance good. Source Page Context Class: The class name which holds the actual properties (Not which holds the PageList Property) Index Class to Write: A concrete class derived from Index. we have created a new page called SamplePage and called a decision table.RollNo. PROPERTIES FOR INDEXING AND MAPPING Map the properties from Page Context Class to index Class. Show-page is normally used during debugging. Activity rules contain a sequence of structured steps. Here. 61 . because it blocks the flow. atomic steps that are by default executed top down reference a specific instruction (known as a method) in each step can perform calculations can retrieve. Each step calls a method rule or contains a control instruction such as Call or Branch. It will also contain the same properties as above class.Source Page Context: Name of the PageList. We should remove the Created page by using Page-Remove method if it’s not used further. PageList: To save the name of the new page as the final element in a list. It’ll initialize all the properties of the class in the page.) If the Step Page field is also blank. then the model will also b called when the page is created. when the Obj-Open method opens and locks an object from the database. then if we declare a page and class in pages and classes tab. the system automatically releases the lock. the ReleaseOnCommit parameter is selected. When a later Commit method executes. Typically. The system appends the name of the new page as the value of the last element of the Value List property. 62 . the system creates the new page of the class that is the first key part of the current activity. NewClass: Optional.propertyname. Identify a class — in most cases concrete class — for the new page. 2) Page-Clear-Message: Clears all the messages in the page. (It retrieves the class of this page from the array entered in the Pages & Classes tab of the Activity form. Normally validation/error messages. Enter the keyword $NONE to create a classless page. identify a Value List property (not a PageList property). Use the notation pagename. Model: Represents the model of the class for which we create the page. the system creates the new page using the class of the page specified in the Step Page column of the activity step being executed.OutPut: Note: If we have used a model for a class. 3) Page-Unlock: Use this method to unlock a page in the unusual situation that the page was locked during the Obj-Open operation but the ReleaseOnCommit parameter was not selected. If left blank. this method can be expensive in terms of system resources. the PageValidate method is not necessary. Use the Obj-Validate method. Required -> Value is required else set an error message “value not present”.However. which remains in force. This capability facilitates multiple Commit operations on one page without the need to re-acquire the lock. It actually refers the Rule-Edit-Validate and Rule-Declare-Constraints to validate the properties on the Page. If the page has hundreds or thousands of properties. The system adds a message to each clipboard property that fails validation against the restrictions in its property rule. This is different from Page-Validate in one case. -A Page-Clear-Messages method applied later to the page removes the messages set by this method. and also validates any property values not changed since the page was opened.5) Obj-Validate: Use this method to apply a validate rule (Rule-Obj-Validate rule type) for the object identified on the primary page or step page. the Commit operation has no effect on the lock. 4. The properties on the page already set (through the Property-Set method or similar methods) may already be validated. not the Page-Validate method. This method validates them again. when the ReleaseOnCommit parameter is not selected. Default -> Set a value if null. But Page-Validate validate all the properties. You can also use this method to release a lock that is no longer needed. to validate specific properties identified in a Rule-Obj-Validate rule. 63 . It only validates the selected property not all the property. 4.3) Property-Validate Uses Rule-Edit-Validate. Unless the content of the page was altered by Java code or by unorthodox means. Continue -> Continue if error found else stop. 4) Page-Validate Use the Page-Validate method to force validation (or revalidation) of the value of all properties on the step page. regardless of the ReleaseOnCommit parameter value. Typically. this may involve the interpretation of JSP tags (or the older directives). HTMLStream Enter the Stream Name key part of an HTML rule (Rule-Obj-HTML rule type) to be processed to produce the value of the property. or XML Stream rule. StreamName StreamType Enter the second key part of the rule to be processed. Identify the property that to receive its value from stream processing. The system uses the class of the step page as the Applies To key part of the HTML rule. the system uses the class of the of the step page as the Applies To class of the rule. Database related methods 9) Obj-Open: Use the Obj-Open method to open an instance stored in the PegaRULES database or in an external database linked to an external class. If you selected Rule-Obj-Corr or Rule-Obj-XML as the StreamClass value. 7) Show-Stream Use the Show-Stream method to apply stream processing to an HTML rule. 64 . 6) Show-HTML Use the Show-HTML method to cause the activity to process an HTML rule and send the resulting HTML to a user for display by Internet Explorer. which can access the clipboard to obtain property values. such as: Rule-Obj-Corr Rule-Obj-HTML Rule-Obj-XML If blank. and so on. enter here the third key part of the rule (the Correspondence Type or XML Type). choose a property that has a Text type. Identify the class of a rule type derived from the Rule-Stream class. Parameter HTMLStream Description Identify the Stream Name key part of an HTML rule (Rule-Obj-HTML rule type) to be processed. the default value is Rule-Obj-HTML. Parameter Description PropertyName Enter a Single Value target property reference. correspondence rule. and send the results to a browser-based requestor session. Known as stream processing. The property value can then be mapped as output for transmission to an external system. Do not use this method with list view or summary view rules. and save it as a clipboard page. or can insert other HTML rules. 8) History Add We can append the history details of a work object. To locate the rule using rule resolution. 5) Property-Set-HTML Use this method to save the contents of an HTML stream as the value of a Single Value property. Parameter StreamClass Description Optional.Validate: The Rule-Obj-Validate rule OverrideClass: The class name from which the search for the above rule will start. Optional. LockInfoPage: Use this page if acquiring of lock fails. Here it’s DLFREALSTATE-MATERIALS-Work-Employee Lock: Lock this instance. this page is created in clipboard and shows the details. if we want to update/save/delete. So that it cannot be accessed by other requestor. This method is deprecated. if commit is encountered.OpenClass: This is the Data table class. the handle for EmpId = 23 and data class DLF-REALSTATE-MATERIALS-WORKEMPLOYEE would be ----- DLF-REALSTATE-MATERIALS-WORK-EMPLOYEE 23 We can put PropertyName = pzInsKey and value as DLF-REALSTATE-MATERIALS-WORKEMPLOYEE 23 11) Obj-List : This retrieve data from a data table to the clipboard as an array of embedded pages. 65 . Handle is a key column (pzInsKey) which is a combination of data class + primary key. hence kills the performance. In that case. We can give multiple properties too. Use Obj-Browse and Obj-List-View followed by Obj-Filter Instead. The above method fires a query: Select * from DLF-REALSTATE-MATERIALS-Work-Employee where EmpId = 23 10) Obj-Open-By-Handle : This is another way to open the database instance by using handle. as it returns the value of all the columns. ReleaseOnCommit : Use this to release the lock. whose instance we want to open. So for the above example. Property Name: Enter the property that would appear in where clause. SelectionProperty: The property specified here will take part in where clause of the query. we put the value as: pages : MyResult. values of properties that are not exposed as columns. including embedded properties. ObjClass: Name of the data table class whose instance needs to be searched. 13) Obj-Browse : This queries the Database with only selected properties. However. can be returned. Classes : code-pega-list (Normally it should be this class only to hold the retrieved records in embedded pages. In pages and classes. 66 . In pages and classes. Only properties exposed as columns can be used as selection criteria. all the records will come. Page Name: Name of the page from pages and classes that will hold the record of the returned values. RuleObjList: Optional. Identify the second key part — List Name — name of a list rule that specifies which properties are to be retrieved. The query here will be: select * from <data class table> where EmpId is between 1 and 25. Classes : code-pega-list (Normally it should be this class only to hold the retrieved records in embedded pages.Page Name: Name of the page from pages and classes that will hold the record of the returned values. If left blank. we put the value as: pages : MyResult. We give logic for or. The database results are organized into a results page of class Code-Pega-List. but not the formatting and display processing. Logic : Below logic. RDB-List. When: Provide a when condition to filter the data. Obj-List-View or Obj-Browse methods) based on one or more when condition rules. Sort: Can short ascending and descending. 13) Obj-Filter : Use the Obj-Filter method to filter the embedded pages of a results page (such as a Code-Pega-List page produced by the Obj-List. all properties will be retrieved. We have used here Obj-Browse then Obj-Filter to filter the resultset. and conditions. If check none. there are steps label (A and B). ResultClass: The data table class. Field: Only exposed properties can be there in Field value. (A OR (B AND C) ). of a list view rule. 14) Obj-List-View : Use the Obj-List-View method to execute the retrieval and sorting operations. The selection criteria of the list view rule and the sorting requirements (recorded on the Content tab) are converted to an SQL query that is sent to the PegaRULES database. but does not produce any HTML output display. Select: If select this check-box.) 67 .Empld < 100). (A OR B). Like (A AND B) . (Here when is . It will be used for selection criteria. The name of this page is determined by the Content Page Name field on the Content tab of the List View form.ObjClass: Name of the data table class whose instance needs to be searched. only those properties will be retrieved in result-set. List page: The page (code-pega-list) used above in Obj-browse to hold the result set as embedded page. The system uses rule resolution to find the list view rule and executes it. (The Step Page field on the step is ignored. Condition: We can give a number of conditions and the property to be part of where clause must be exposed property. GetRowKey: Include the primary key in the result-set. in the same Thread. This method can create a new database instance or overwrite a previous instance with that key. only on the current page. do not save a page that contains messages and so is marked as invalid. You can reverse the effect of an Obj-Save method — if it has not yet been committed — with the Obj-Save-Cancel or the Rollback method. and does not release locks. developers use this method perform a "deferred write" operation. not only the most recent one. 68 . You can also use this method to undo an Obj-Delete that has not yet been committed. This method does not always cause the object to be written immediately to the database. Cautions In all but rare situations. the Obj-Save method does not operate on all previously marked-for-commit objects. In such cases. Parameter ObjClass Description The Data table class ListView The List-View Rule of the Data table class Owner Owner of the List-View rule 15) Obj-Save Use this method to request that the system save a clipboard page to the PegaRULES database or (if the page belongs to an external class) an external database. 16) Obj-Save-Cancel Use this method to cancel the most recent uncommitted Obj-Save method. Select the WriteNow parameter to force this page (and only this page) to be written to the database as part of the Obj-Save method. An object that is stored in the PegaRULES database is persistent. later execution of the Commit method. and remains after the requestor session that created it ends.Parameters Specify all three key parts of a list view rule. Use the similar Rollback method to cancel all uncommitted Obj-Save and Obj-Delete operations. Often. completes the database update. The Obj-Save method uses properties on the page to derive the internal key under which it will be saved. Unlike the Commit method. The object is available to other users. so that the instance is not written as part of a later Commit operation. 17) Rollback Use this method to cancel or withdraw any previous uncommitted changes to the PegaRULES database (and to external databases accessed from an external class) from the current Thread. All pending Obj-Save and Obj-Delete methods are cancelled. 18) Obj-Sort Use this method to sort the clipboard pages that are the values of a property of mode Page List. You can specify one or more properties to sort on, and whether the sort sequence is ascending or descending for each sort level. Parameters This method has two base parameters and an array of two parameters per row: Parameter Description PageListProperty Class Enter a property reference that identifies a target property of mode Page List to be sorted. Identify the class of the pages within the Page List property. SortProperty Enter the property based on which we’ll sort the pages. Descending Select to cause the method to sort in descending order for the property. Clear the box to sort in ascending order. 19) Obj-Delete Use the Obj-Delete method to delete a database instance corresponding to a clipboard page and optionally to delete the clipboard page too. You can cause the deletion to occur immediately, or (more commonly) defer deletion until a later execution of a Commit method. This method can operate on objects of both internal classes (corresponding to rows in a table in the PegaRULES database) and external classes (corresponding to rows in an external relational database). 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. Unless you check the Immediate check box on the activity form, the database deletion does not occur until the system next processes the Commit method. You can reverse or cancel a previously executed Obj-Delete method by using the Obj-Save-Cancel method (like the method Obj-Save can be reversed), unless the Immediate box is selected or the Commit method has already occurred. Parameters This method has two parameters: Parameter Description Remove Immediate If selected, the system deletes the page identified in the Step Page column of this step from your clipboard and marks the corresponding persistent instance for deletion. If selected, the system deletes the database instance immediately (commits this deletion). To delete the database instance immediately from the database, select this box. If this box is cleared, the database instance is deleted by the next Commit operation. 69 Results The system finds the clipboard page identified in the Step Page column of the current step and checks whether it the current requestor holds a lock on the corresponding object. If the object is not locked (and the class rule allows locking), the method fails and no clipboard or database changes occur. If the page is locked and the Remove parameter is selected, the system deletes the page. It marks the persistent object in the database for deletion, or deletes it immediately, depending on the Immediate parameter. The system automatically performs index processing for an immediate delete, or later when a Commit method follows the Obj-Delete method. Fail and Warn conditions These situations cause the method status to be Fail or Warn. You cannot delete an instance without locking it first (usually with the Obj-Open method). You cannot delete an instance while it is locked by another requestor. 20) Obj-Delete-by-Handle : Delete an instance by handle. 20.5) Commit: Use this method 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). Decision Methods (Property-Set-Decision-) 21) Property-Map-DecisionTable Use the Property-Map-DecisionTable method to evaluate a decision table rule and save the result as the value of a property. PropertyName: Property to receive the return value of Decision Table. 22) Property-Map-DecisionTree Use the Property-Map-DecisionTree method in to evaluate a decision tree rule (Rule-DeclareDecisionTree rule type) and store the result as the value of a property. 70 PropertyName: Property to receive the return value of Decision Table. Input: Optional. Enter a literal value or property reference that is the source value for the decision tree evaluation. When provided, this value is used for comparisons in the top-level structure of the true, for evaluations with no left-hand value, such as: if > "Hello" When you leave this blank, the system uses the value of the Property field on the Input tab of the Decision Tree form for the rule. 23) Property-Map-Value The Property-Map-Value method evaluates a one-dimensional map value (Rule-Obj-MapValue rule type) defined in the parameter. The method sets the result as a value for a Single Value property. 24) Property-Map-Value-Pair The Property-Map-ValuePair method evaluates a two-dimensional map value rule identified in the parameters. It sets the value that results into a specified property. 71 But deprecated now. This capability is 72 . If you select this box. or reference a message rule key that in turn contains message text. Pass current parameter page? Select to cause the calling activity's parameter page to be passed to (shared with) the called activity. The system reads the appropriate property and adds the message to the page. 26) Property-Set-Messages Use this method to associate a text message with a property or a step page. You can provide the entire literal text of the message. 28) Call <Activity Name> Use the Call instruction to cause the current activity find another specified activity and execute it. which can alter its contents in any way. We can use the Proprty-Set method only. Message: This field can contained a pre-defined message or a Field Value. based on Declare Expression rules. Clear to use the array that appears below the check box to pass parameters to the called activity.25) Property-Seek-Value: Use this method to initiate backward chaining computations for the value of a property. 27) Property-Set-Special : Used to set special properties like py properties. When that activity completes. control returns to the calling activity. the parameter page remains available to the calling activity after the return. control transfers to another activity found through rule resolution. RDB-Save. Or pass the parameters required by the called activity. When the branched activity ends. RDB-Delete.sometimes known as call-by-reference. RDB-Browse are not used individually. Execution of the original activity pauses. RDB Methods The four RDB Methods RDB-Open. If you select this box.e C. But they are used in conjunction with Connect SQL rules. no steps after the Branch step are executed. 73 . 29) Branch <Activity Name> : Similar to call but. (New -> Integration-Connectors -> Connect SQL). When the system executes a Branch step. make sure that input parameter values needed by the called activity are present on the parameter page before calling the activity. You can pass parameters to the target activity. processing of the current activity ends also. Here we pass two input parameter (A and B) and one output parameter i. Use the Branch instruction to cause the current activity to find another specified activity and branch to it without a return. or you can share the current activity parameter page with the target activity. 31) The RDB-Delete -> will use the SQL query written in the Delete Tab of Connect SQL tab. It has the same parameters as above. ORACLE. Use this method in conjunction with a Connect SQL rule that contains SQL SELECT or EXECUTE statements in the Open tab. 74 . Define the SQL statements so that the database returns exactly one row. 32) The RDB-Save -> will use the SQL query written in the Save Tab of Connect SQL tab. Use this method 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. This method operates in conjunction with an SQL statement in the Delete tab of a Connect SQL rule (RuleConnect-SQL rule type) that contains the DELETE. SYBASE. RequestType -> 3rd Key Part of the Connect SQL rule (See in previous page) Access-> MSSQL. Use this method to delete a row or rows from an external relational database using SQL. TRUNCATE or DROP SQL statement. OpenClass -> The data class name. It has the same parameters as above.30) The RDB-Open -> will use the SQL query written in the Open Tab of Connect SQL tab. whose instance we want to open. DB2 etc. ClassName Enter a class name. such as a SELECT WHERE statement. If you select this option. The system does not use class inheritance to find the Rule-Connect-SQL rule instance. which you identify in the SQL code in the Rule-Connect-SQL rule. The search can do anything you can specify in a SQL statement. The pxResults pages are embedded in this page. Hence include a page/page-list accordingly in the browsePage of RDB-Browse method. Enter a positive integer that is the maximum number of rows to return in the search results. UPDATE. It can be a class that you created to hold the results. Any constraints on the returned data are in the SQL. Identify the exact class of the rule. the Applies To key part of a Rule-Connect-SQL rule. This is also the class of the pxResults embedded pages which hold the search results. This class is distinct from the class which the RDB-List method searches. in browse tab. 33) The RDB-List -> will use the SQL query written in the Browse Tab of Connect SQL tab. This method references a Connect SQL rule instance. ApplyDeclaratives Select to cause change tracking for Declare Expression and Declare Constraint rules processing to be applied to the properties returned by this method. If left blank. This method operates in conjunction with a Connect SQL rule that contains SQL statements such as INSERT. and CREATE statements on the Save tab. Optional. Complex and Dynamic SQL Statements in Connect SQL. Identify the top-level page into which the search results are to be returned. The system saves the properties on the specified step page to the specified table in the database. do not select the RunInParallel option. Use this method 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. MaxRecords BrowsePage Optional.Use this method to save the contents of a clipboard page into a row of a relational database. 75 . Parallel operations cannot update the single top-level browse page. the system uses the step page you specified for the RDB-List method in the activity step. You cannot select this box if the RunInParallel box is selected. we can include lots of complex queries. In Connect SQL Rule. Note the results can be either a record or sets of record. and executes SQL statements stored in the Browse tab of that rule instance. property} for an indirect reference that at runtime becomes the class.MarketPriceprop" : To include column name that includes lowercase letters. follow the format: {Table:TableName} for a direct.inkey3}.inkey2}.propertyname" or "page. static reference to one Database Table instance. To create multiple resultsets in one procedure. place a {resultset} marker for each parameter for each example that returns a resultset. {dataPage. {dataPage.OutProperty1 out}.zipcode Integer} : Integer is the database specific data type. Table or Class name Literals. enter a line at the top of your SQL code in the format: {SQLPage:mySQLPage} 76 . Use it to replace a SELECT * from . You cannot use the Param keyword in these property references. use the format: {class:ClassName} for a direct reference to a fixed. {dataPage. include as.- Select MarketPrice as ". statement.propertyname". WHERE zipcode={myPage. {Table: {CustomerMaster.. or: {class: {page. or: {Table: {page.inkey1}. contains in its value a Database Table name.property}} for an indirect reference to a property that.OutProperty2 out}. References to elements of Page List and Value List properties must contain integer constant index values such as 7 or 23 or keywords such as <LAST> or <CURRENT>. {dataPage. {resultset}. at runtime. Use this syntax when entering a SELECT statement: SELECT columnname AS ". {resultset}) } Capturing SQL statements and status responses To include SQL debugging and return status information from the database software. For example: { {resultset} = call testFunc( {dataPage. For example.OracleAddressTable}}. to select all the columns in the table. the Class keyword is similar to the Table keyword.. With Class keywords. known class. {class:Data-Customer-Address-Details} Table keyword To use Table keywords. For example. For example: SELECT {all} from {class: Data-Customer-Summary} Calling a stored procedure {call procedure({resultset})} we use resultset keyword. To Map to external DB. pxRDBSQLVendorError1 — An error code from the database vendor. the system creates a page with this name and adds two properties: pxSQLStatementPre — The SQL you entered in the Connect SQL form. 77 . pxRDBSQLVendorMessage1 — An error message from the database vendor software. Username and Password.xml Use JDBC URL : Provide JDBC URL. Use configuration in preferences -> configuration in prConfig. We can create a instance of Data-Admin-DB-Name.Enter the name of page on which the system records the error messages. New -> SysAdmin -> Database. so you can verify the references. When the Connect SQL rule executes. pxSQLStatementPost — The SQL you entered in the Connect SQL form tab with the references resolved to show their values. Use JDBC Connection pool : Use JNDI Resource pool. additional properties appear on this page: pxRDBError — An error message from Process Commander. and Fail-over Data base. we have connection pool size. pxRDBSQLCode — A result code from the database access driver. pxRDBSQLVendorError2 — An error code from the database vendor. In Advanced Tab. If errors occur. The page can have a class or be a classless page. pxRDBSQVendorMessage2 — An error message from the database vendor software. for each page. We are iterating on the pagelist EmpPageList (This is created in the clipboard. Similarly Other connect methods also are used to connect to the respective services. 34) Java: Used to write custom java code. The resulsets will be stored inside the browsePage which must be of code-pega-list.DynamicWhere} The ASIS keyword is essential. Store the dynamic part of SQL statements in a property in clipboard. But only in SQL Server and Sybase. if we use this pagelist in repeating layout in a flow-action to collect values). you can create a text property named DynamicWhere and use a Property-Set method to store the value: "pyLabel like 'Mexico%'" Then. using the syntax: where {ASIS: pyWorkPage. 35) Connect SOAP: This is used to connect to the SOAP services method. for each embedded page etc. Iteration in activities can be done using for loop. Giving 3 ways to iterate in activities. 78 . 1) Using <CURRENT> This <CURENT> tag holds the current index of iteration. so that Process Commander does not place spaces or double quotes around the value. you can use this as a WHERE clause. in a Connect SQL rule. ASIS KEYWORD Used for dynamic SQLs. See Integration section for more details. For example.To return Multiple ResultSet Use keyword Mutiset. This method is used by the connector Activity to connect to a SOAP services. It is updated automatically in each iteration. Note in the below screen-shot. Iteration in Activities. EmpPageList (<CURRENT>).4) .1 to 1. 79 .Primary page refers to pyWorPage here.Create a new page (for data class ) .EmpId = EmpPageList (1). as we have 3 records.) Using parameter pyForEachCount This is a parameter passed automatically to the activity by PRPC Application only when the activity uses looping. EmpPageList (2). we are collecting values for a single page or single record of repeating layout and saving in data base.Save the page in data-base. So in each itration.Iterate on . 2.EmpId in first iteration. Under iteration. The iteration will perform 3 cycles here. .Set Properties in the page that we want to save in data-base.EmpId in second iteration etc.EmpPageList. we have several sub-steps (1. we just need to add this parameter as input. . To access it. in the parameters tab in the activity. Similar to above. In parameter page. 80 . initialize this variable to 1. 3. increment it manually. Update a local variable there. we have entry for local variable. The same concept as above. Now in the activity. and in each sub-step.) Using local variable. Use this variable as index. Param. Get values from Data Tables and display in flow action.pyForEachCount holds the index of current iteration. - Obj-Browse method used to get the records from the Data table. Iterate on the resul-set (returned by Ob-Browse method as pageList DataPage. the results can be shown. Copy each page from pageList to our pyWorkPage.pxResults.EmpPageList (PageList declared in our class). use these values.In Pages and classes. All the values of the pageList will be available in the Clip-board. If we use the pagelist properties in a repating layout. Creating WorkBasket New-> Organization -> WorkBasket 81 . Give the name of WorkBasket in the WorkGroup. Now in the OperatorID provide the WorkGroup and WorkBasket name under work-Setting tab 82 .Give the name of WorkGroup it contains. Similarly create a Workgroup. New -> Organization -> WorkGroup. the availability of the selected operator.5 The assignment properties will need to be configured according to the rule used to route the Work Object: Figure 5. Usually. the developer shall specify "ToWorkList" on the "Rule" field and then. to know to the worklist the assignment must be sent. Within a flow. Figure 4. a list containing the Work assignments that are assigned to a specific operator.Sending Work object to Worklist/Workbasket An assigment is a state of a Work Object which requires some action by a user. PRPC shows a Review Harness as depicted in the image below: 83 . the Operator ID to whom he wants to send the Work Object assignment. Setting the routing type on the properties of an assigmnet shape in PRPC 5. as "Parameter". before routing the object. A Worklist is. Properties of a router shape using ToWorklist routing rule in PRPC 5. the business process will require that particular Work Objects be performed by specialized users. When a Work Object assignment is routed to an operator different than the one who is working on it. a Work Object assignment is sent to a specific user through the use of a Router Shape. There is an adittional option to check.5 As shown in Figure 4. In the configuration section for the router. as its name indicates. PRPC handles this situation using Worklists. the ToWorklist routing rule takes as parameter a user ID. the selected workbasket.5 Work Basket A Workbasket is a queue of Work Object assignments that are not directly linked to an operator. A specific User can have different skills in different levels.Figure 5. work objects are sent to them through the use of a Router Shape. In a similar way as with WorkLists. configuring it to use the rule ToSkilledWorkbasket. Do not forget to set the routing type to "Workbasket" on the assignment's properties. a workgroup and a calendar. which parameters are the required skills and levels and. so a group of operators can work on the assignments contained in it. Figure 6. 84 . Properties of a router shape using ToWorkbasket routing rule in PRPC 5.5 In a similar way as when routing to Worklists. the router shape must be configured using the rule "ToWorkbasket". this configuration is made through the Router Shape. PRPC notifies the operator that the current Work Object has been routed to a work list through a review screen: Workbasket routing can also improved upon when used in conjunction with Skills. Workbaskets are related to an organization unit. and Work Objects assignments can be sent to an skilled workbasket allowing only the users with a certain skill at a certain level to work on them. and within a flow. setting as parameter the name of the selected workbasket. This kind of filtering can be accomplished using skills. Work Object has been routed to a different operator in PRPC 5. even if there are more users that have access to that specific workbasket. Again. Skilled Workbaskets¶ Also a workbasket can be used in a way that only allows a subset of users to access certain work object assignments. of course. As parameters. 85 .. Create the skill and it will be available for selection here. French. Properties of a router shape used for Skilled Routing in PRPC 5.5 In this case.Figure 8: displays how different skills with different ratings can be defined for an operator. The following image displays the required rule and its parameters: Figure 9. by checking the Required checkbox or as "desired". Java. the router shape will have to be configured. Skills can be set as "required". this activity takes the destination workbasket and also the required skills and its levels. PRPC provides standard skills (English. without checking it. Skills are instances of Rule-Admin-Skill. In order to use a skilled workbasket.). HTML. the Router must be configured to use the rule "ToSkilledWorkbasket".. so that it’ll provide the data in XML format. 1) Create an activity (to fetch data from DB) This Activity browses a Data Table and fetches the records from it and places it in Step-page.Dynamic select When we want to populate data from Database. Note: The data class is DLF-REALSTATE-MATERIALS-Work-Employee Now. which will be used by the dynamic select Property to parse and display the data. Now we call show page. It always retrieves unique values in the field. Ways to do it. to be filled in a dynamic select (drop-down) we need this concept. 86 . Duplicate values are not shown. we need to modify the property in the UI. Class name where the List View is present. . And in the again near it. 87 button of Name field. Options In Dynamic Select If we select List View: Then Provide : .Name of the List View. If we select Activity .Class Name of Activity . It opens a parameter page. Now click the magnifier symbol Fill the details.Class whose properties will be returned. So click on the Display As Give “DynamicSelect”.We want to make Name as dynamic select.Activity Name . . If you choose Advanced. Normally it’s same as the “Property for Option Display” FILTERS Param Name: Name of the Parameter that the above List View or Activity will receive. so that it can be referred in other Dynamic Select. Like States… Property for Option Display: The property from the returned result-set whose value would be shown. Next Page.Select ID: We can give a unique ID to this Dynamic Select Property. Default Caption: The default first selected name in the drop down. Select ID: Name of the Select ID (of a different Dynamic Select which will affect our value). Property for Option Value: The name of source property that will capture the values of above property. 88 . ParentID : Optional. Use this syntax: pyActivity=myClass. when changed. The activity of the latter control is then executed to populate it. the following string sets the values of a Dynamic Select to the class names in a list: pyClassName. Enter one or more semicolon-delimited text value to identify the ID(s) of the other Dynamic Select controls whose values depend on the value selected in this Dynamic Select control. The value of the selected option in the first Dynamic Select then becomes the value of the parameter in the activity of the target Dynamic Select. Default Caption: The default first selected name in the drop down.Select ID: We can give a unique ID to this Dynamic Select Property. Enter the ID of another <SELECT > element that. This technique is known as cascading. 89 ... Use URL encoding (commonly called percent-encoding) for blanks and other special characters. When a user selects a value in this Dynamic Select control.. so that It can be referred in other Dynamic Select.. or HTML form depends on the results selected by users for this Dynamic Select control. Complete this field when the results of another Dynamic Select control on the same harness. section. Click the magnifying class button ( ) to open an Activity Picker window for guidance on entering input parameter values. triggers a refresh of this control. propertyName2.myActivity¶m=value. For example. TargetID: Optional.. Like States… Value: Enter a semicolon-delimited string of property names that form the values of the HTML Option elements in the format: propertyName1. the system appends the value to the Source of the target Dynamic Select control. Source: Enter the query string form of the activity to call. including values for parameters. The Source of the target control must end with the following syntax: parameterName=.. . It opens a parameter page. And in the again near it. The concept is similar as above. Now click the magnifier symbol Fill the details. Now we want to make Name as AutoComplete.Output: Auto Complete This is the feature similar to that we see in Google. We need to create an activity to browse the values from a data table. So click on the Display As Give “AutoComplete”. See next page 90 button of Name field. Activity Applies To: Name of the class which contains the activity. If we choose Clipboard Page. Search Property Applies To: The data table name which will provide the data for the AutoComplete. of characters after the AutoComplete will work. Minimum search Characters : No. Display Field : Name of the property in data table. Activity Name: Name of the activity. 91 . Clipboard Page Name. Property Name.(Provide these Details) Declared Pages (Rule-Declare-Pages) Declare pages are read-only clipboard pages that can be available to multiple users on the system (node level) or just one user (thread level). 92 .. Class Name. If above conditions meet also. - Declare pages are not subject to Rule Resolution Note That. If we reference the properties in the Declare Pages. 93 . we need 2 conditions. Decision rules etc. Load Activity used in Declare Pages. 1) The Refresh timings declared must be expired. then the Declare page refreshes and calls the Load Activity (Provided above 2 conditions satisfy). activities. For the page to refresh. it’s not necessary that the Declarative page will be calling the activity and refreshing at the background. 2) The when condition must return false. This activity is of type : Load Declarative Page.Note: The properties in the declare pages can only be modified by the Activity defined in the declare page Load Activity. in our flow. the save-as form will provide the circumstance options and date range options. We create a base rule. If “Platinum” -> 15 % discount. 2) Single Property and Date Property Circumstance. we have a property called customerType. If “Gold” -> 10 % discount. 94 . 1) Single Property value Circumstance. 3) Multiproperty/Mutivariant Circumstance. Flow actions etc) based on this property. So we create Circumstances for same rule (activities. Types of Circumstance 1) Single Property value Circumstance.Circumstance A circumstance is an optional qualification available for all rules. 4) Date Range Circumstance. For example. If “Silver” -> 5 % discount. Using a circumstance allows your application to support multiple variants of a rule. Then use the save-as button to create a circumstance. They allow you to specify that different rules should be used for different situations. 2) Single Property and Date Property Circumstance. 95 . Here we provide the circumstance based on single property as well as date property. 96 . New-> Technical -> Circumstance Template. we need to create 2 things. Here we provide the date range along with the property.3) Date Range Circumstance. We can create more than one definations.Circumstance Defination Circumstance Teemplate. Provide the properties that you need for circumstance.Circumstance Template . 4) Multiproperty/Mutivariant Circumstance. . Circumstance Defination New-> Technical -> Circumstance Definition Provide the properties values that you need for circumstance in the definition. For multi property/Multivariant circumstance. the circumstance will be valid. / RollNo=2./ RollNo=4. Name= “Aaj”. 97 . Gender = Male. Gender = Male. Name= “Abhi”. Gender = Female. And RollNo = 3. Name= “Kabhi”. Gender = Female. Use -> Template instead of property. Now Save-as your base rule and in the form provide the value of Template and Definitions. Name= “Raj”.Note: Here two definitions we have created. we need to lock our original ruleset (version) and proceed with migration. Ruleset Versioning While moving/migrating the application into another system. one with RollNo = 1. the while creating any rules further. Or you can save-as the existing ruleset version and change the patch. To Migrate to another system New -> sysAdmin -> Product.View -> sysAdmin -> Ruleset version. If we create a new version. New -> sysAdmin-> Ruleset version. 98 . Create a new version. we will have the option to select between the rulesets versions. Lock the version for Unlocking/add-update this version. Provide the details of . we need to migrate the application to Quality Assurance server (QA server) for the testers to test it. Save the file. Normal classes come along with rulesets). New -> sysAdmin -> product. For E. Give product name and version. We’ll use the product rule here to create a zip file of our application that can be migrated to another PRPC server.Application. Migration Migration is a process to export the application from one System to another.classes (only data classes.See next page. Process Commander provides several tools to archive rules. data instances. . 99 . Now click on “create a zip file”. .rule-sets. Then finally to the production server. and work objects into ZIP files and move them from one Process Commander System to another. After development is completed.g the developers develop the application in development server. simplifying data analysis 100 . Provide Application Name and Version. Reports: Reporting is the process to represent data in a particular format which would be beneficial for decision making. flexible. dynamic reporting lets stakeholders know what is going on and makes good decision-making possible. A report is a way to answer a question about your application. or some other measurable assembly of data. you can: • incorporate reports into manager and user portals • share reports between managers • export reports as spreadsheets or PDF documents • drill down into reports that summarize data and see the actual data that lies behind the summary • add charts to summary reports. Now migrate the lower version locked rule-set. Accurate. your team. your sales. Provide RuleSet Name and Version. and which are having trouble meeting their deadlines?" Process Commander Reports assemble the data you specify and display it in customizable tables and charts.Note: Lock your rule-set and create another higher version rule-set. (Work related classes are included in this) Provide Classes (Derived from Data-) Create a ZIP file and save it. Reports can answer questions like o "How long does it take for us to resolve an order we receive?" o "Are there seasonal trends in sales that we should adjust our inventory plans for?" o "Which teams are processing works well. In Process Commander. in a system managing employees. We can also incorporate Pie-Charts. 101 . We can also create List View to represent data from. users can generally click on an entry in the report or a section of the chart to 'drill down' into the report and see in more detail the data supporting the top-level display. and then assembles information related to a particular data object based on relationships between the various tables. Bars. a manager may want to see a report of the number of sales made per month over the past year. For instance. diagrams etc in the Summary view. modify (including adding charts to summary-type reports). the table holding the basic employee record might hold the person's first and last name. External Data base etc. Curves. Summary View: Displays summarized or aggregated information (grouped by subtotals. simplify creating. and export reports. Managers use trend reports to understand their business processes: for instance. Both managers and developers can create and manage reports using report definition rules. a code for the person's job title that refers to an entry in the "Positions" table. averages. and sharing reports. Important Terminology Dashboard: A dashboard is an assembly of charts based on reports that is designed to provide a manager or stakeholder with a quick view of the current status of the work the reports cover. Viewers can normally drill down (see below) into the charts to see more details about the information they depict. or other factors) for work items or class instances.List View: Displays information in a spreadsheet format about work objects of a particular class where each row represents data about a single work object and each column presents the data held in a database field associated with the work objects. Process Commander Uses SQL commands (see below) to tell the database what data to retrieve. adapting. SQL is a language designed for managing data in relational database management systems. modify existing reports. Report Viewer: The composite Manager portal includes a report viewer that lets a manager review. The Report Viewer simplifies selection and assembly of SQL statements: creating Process Commander Reports requires no extensive knowledge of SQL. These reports can further drill down to produce more grandeur level information. Drill down: In summary reports. SQL: Process Commander uses Structured Query Language (SQL) to query the database for the information the report needs. a code for the person's department that refers to an entry in the "Dept" table. Data tables. and so on. dates. and in charts associated with them. and share reports with other managers. Report definition rules. Trend report: A trend report organizes data along a time line or other progress indicator. Relational database: A relational database stores information in multiple tables. introduced in PRPC V6. Report Browser: The composite Manager portal includes a report browser that lets a manager create new reports. data grams. And other from Managers Portal. Display Field Tab 102 . Give work type (class) name when you want to create report on work object. using the report wizard. First from the developer portal by using New -> Reports -> List View. Applies To : Name of the class whose properties will be used/displayed.List View Report List View reports can be created in two ways. Write ALL if you wish to share this report to all. View Purpose: Just a name to describe the report Owner: Owner of the report. New -> Reports -> List View. Give data class name if you want to represent data from a different table/external database. This causes the headers to remain fixed. Choose one of seven standard categories to cause this report to be listed in a corresponding group on the Monitor Activity workspace (present in manager portal). where as the rows are scrolled. select from the Smart Prompt list. Fixed Header: Optional. Embedded: Select if the output display of this list view is to appear within the runtime presentation of another rule. JOIN is described later in this section.Property. Enable Sorting/Filtering: Self explanatory. Content Tab 103 . choose Work Analysis to list this report in the Analyze Quality area. You need to declare the page and class name under pages and classes.) For example. Here I am using the EmpID property of data class employee. You can use properties from another table/data class also. Select to indicate that the header area is to be excluded from the scrollable area. Hence use pageName. we need to JOIN it with our current class. such as a section rule or flow action. Note that in order to use the properties of different class.Category: To assign a category to this report. SHOW THESE FIELDS: Use to name the properties to be displayed in the report. (and so available to those users who can access this workspace. This page will have a pageList pxResults to hold the records. Mostly this is not customized. Prompt Settings: These are used to prompt to user (while running the report) a criteria value to provide at run time. Selectable Tab This tab enables selection of rows. because they may be used for calculation purpose etc. We can also provide values for criteria at run-time using page. Edit Input: Provide a Edit Input rule.value (need to be declared in parameters tab). Only properties from this list mentioned in Display fields tab will be visible in the report. Get These Fields: Include the properties that you want to be present in result-set. Content Page Name: The page name in clipboard that will hold the records. if you want to change the format of the field. Either single selection (radio button will appear before rows) or multiple selection (check box). We use this in cases. Organize Tab 104 . when we want some properties to be present in result-set.Criteria: We can provide criteria on properties. Activity Name: By default getContent Activity (pre-defined) which queries the database to fetch result. These criteria will come as where clause in the SQL query. but not shown in the Report. Normally we give the page which represents the class CodePega-List (Mentioned in pages and classes tab). Ignore Case and Use Null is self explanatory.propertyName or by using parameters param. Export to Excel etc. Format Tab. Describes the HTML/CSS Formatting styles for report/rows/alternate rows etc. It can call Activity on single click or double click on rows.Provides options for paging. Means if the report is very large. then it will come in pages like 1 2 3 4 … etc. Pages and Classes tab 105 . Input parameters can be used to receive values at run time. Like Export to PDF. Parameters Tab Used to describe parameters. Also provides options for the buttons that will appear in the Report. Also describes event handling. propertyName (used in Display Field Tab). hence we can access the properties of Employee class by B. that you want to use in JOIN conditions in SQL query. Here B is prefix for Employee class. Edit Conditions: Used to provide JOIN Conditions.Name = Primary.Name = (Steel Class).JOIN Tab Provide the data table name here. It means (Employee class/table).Name. B. Normally a equi-join. See in next page. Here we tried to Join Employee and Steel classes (Tables). 106 . Prefix: This value will be used to create a Page for the particular class in Pages and Classes tab.Name. We can also pass run time values to the list view through properties and parameters. trend reports. Use these parameters and properties in the Display Fields or Criteria values. We can create Summary View reports by Report Wizard and also by Summary View Form. presenting summary counts. Specify the Index. Note: List View Reports can also be used to show data/records/tables in a section or flow actions. This facilitates using Rule-Declare-Index rules for performance by avoiding retrieving properties from the BLOB (Storage Stream) column. Summary View (Rule-Obj-SummaryView) A summary view rule defines a two-level report display. The prefix is assigned to all the properties in the class and used to reference the properties from these fields for the Display Fields and Content tabs.class created by the Declare Index rule. and allowing users to click a row to drill down to supporting detail for that row. New -> Reports -> Summary View 107 . totals or averages to be displayed initially. Summary view rules support interactive charts. Drag and Drop the list view in the particular section/flow action.Declarative Index Join: Indexes created by Rule-Declare-Index rules can be specified here to reference embedded properties for both display and criteria from the Applies To class. Prefix Index Name Enter a text string to be used as an alias for the joined declarative index class and all its properties. and the use of AJAX for pop-up Smart Info windows. You can attach an alias to any declarative index that you have previously defined. Move Group By Caption to header: Select to present the Caption value from the current Group By element in the display header.) For example. View Purpose: Just a name to describe the report Content Tab Category : To assign a category to this report. where as the rows are scrolled. 108 .Applies To : Name of the class whose properties will be used/displayed. Select to indicate that the header area is to be excluded from the scrollable area. select from the SmartPrompt list. Give data class name if you want to represent data from a different table/external database. choose WorkAnalysis to list this report in the Analyze Quality area. Choose one of seven standard categories to cause this report to be listed in a corresponding group on the Monitor Activity workspace (present in manager portal). This causes the headers to remain fixed. Give work type (class) name when you want to create report on work object. (and so available to those users who can access this workspace. Fixed Header: Optional. Edit Input : Provide a Edit Input rule.value (need to be declared in parameters tab).Criteria: We can provide criteria on properties. if you want to change the format of the field. We can also provide values for criteria at run-time using page. Ignore Case and Use Null is self explanatory. FIELDS: We can provide the properties here to be used in an aggregate functions like count(). TREND REPORTING Click on the symbol to open a window for Trend Reporting.propertyName or by using parameters param. Prompt Settings : These are used to prompt to user (while running the report) a criteria value to provide at run time. Avg() etc. 109 . GROUP BY: Provide the properties that will be used in the Group By clause of the SQL queries required to retrieve the data. Sum(). These criteria will come as where clause in the SQL query. Configure. calendar months or calendar quarters. If the expression results in a boolean value. Select a Property Select a DateTime property to be the basis of trend intervals.Trend Choose an interval. enter a comparison. Choose: Yearly. Quarterly. Expression — Enter an expression to define break points. in units of days. This page will have a pageList pxResults to hold the records. Normally we give the page which represents the class CodePega-List (Mentioned in pages and classes tab). Mostly this is not customized. or Daily — For fixed intervals. click to enter threshold values and colors for each.. weeks. Content Page Name: The page name in clipboard that will hold the records. Activity Name: By default getContent Activity (pre-defined) which queries the databse to fetch result. Weekly. Drilled Down TAB 110 . If you selected the Define Thresholds box.. THRESHOLDS Select if you want to define one or colors to identify ranges on an interactive chart (as Define Thresholds backgrounds). Range (buckets) or Expression. Monthly. Range — You can determine the ending point of a series of past time intervals. Also describes event handling. Detailed View Provide the properties to be shown in the detailed view report. 111 . When the user viewing the summary report. We can also pass parameters to them. and all are exposed as columns. Detailed View. Format Tab. It can call Activity on single click or double click on rows. Organize Tab Provides options for the buttons that will appear in the Report. Modify the fields. 3 options --. You can choose a different concrete class that contains the properties to be displayed in the drilldown display. Describes the HTML/CSS Formatting styles for report/rows/alternate rows etc. when he clicks on the chart/bars. In case of List View and Summary View we have to provide the pre-created List View and Summary View rules. they open-up into another layer of report like List View. DATA SOURCE OF DRILL DOWN VIEW : Leave this field blank in most cases. The properties in the Group By array (on the Content tab) are present in both classes. to use instances of the Applies To key class of this rule as the source of drill-down information.DrillDown To: This option enables another layer of reporting.List View. Export to Excel etc. Like Export to PDF. if: All properties listed in the Criteria array (on the Content tab) are present in both the Applies To class and the class you enter in this field. Summary View or Detailed View. Summary View. what buttons to appear in the chart etc. Provide Field and Name Field value. Complete the remaining details on this form. Then click Configure Interactive Charts to specify parameters for this chart. Color Tab to define colors. but do not complete other fields on this tab. to be used in the charts. Parameters Tab 112 . Now Press Configure Interactive Charts Button to open a dialog to configure the charts. Interactive to develop an interactive chart as an Adobe Flash file. Complete the Select output layout field.Chart Tab Chart Output Type Select: Image to develop a static chart and send to the browser as a PNG image. You can define different options in Options TAB That how the chart will appear. size. You can define Chart Type. Input parameters can be used to receive values at run time. Prefix: This value will be used to create a Page for the particular class in Pages and Classes tab. hence we can access the properties of Employee class by B. Here B is prefix for Employee class. Edit Conditions: Used to provide JOIN Conditions. that you want to use in JOIN conditions in SQL query.Used to describe parameters. See in next page. Here we tried to Join Employee and Steel classes (Tables).propertyName (used in Display Field Tab). Pages and Classes tab JOIN Tab Provide the data table name here. Normally a equi-join. 113 . 114 .Name. Note: Summary View Reports can also be used to show data/records/tables in a section or flow actions. when any exception or event occurs. We can also pass run time values to the list view through properties and parameters.Name = (Steel Class). The prefix is assigned to all the properties in the class and used to reference the properties from these fields for the Display Fields and Content tabs. Tickets (Rule-Obj-Ticket) Tickets support business exception processing in a flow.Name = Primary. Here we are calling the activity from the flow action. To create a ticket New -> Process -> Tickets.Name. Drag and Drop the list view in the particular section/flow action. Declarative Index Join: Indexes created by Rule-Declare-Index rules can be specified here to reference embedded properties for both display and criteria from the Applies To class. It overrides the normal processing of a flow.class created by the Declare Index rule. Specify the Index. Use these parameters and properties in the Display Fields or Criteria values. It means (Employee class/table). This facilitates using Rule-Declare-Index rules for performance by avoiding retrieving properties from the BLOB (Storage Stream) column. we need an Activity to set tickets.B. You can attach an alias to any declarative index that you have previously defined. Prefix Index Name Enter a text string to be used as an alias for the joined declarative index class and all its properties. To call a ticket. Occasionally. It sets the ticket conditionally. the ticket is set and our flow returns back to the place where the ticket is set. The activity is shown below. It searches the ticket in main flow as well as sub flow. In the pre-condition we call a when to check if RollNo is less than 0 or negative. when the condition for Set ticket is met.Calling TicketAct activity and passing the name of the ticket in the parameter (TicketCollectInfo). In Flow action. Now. we can provide a HTML-Reference also to the flow action in order to set a note while ticket is set. otherwise removes the ticket. we change the HTML tab as : 115 . then it sets the ticket. Create a Ticket. ticket rules are optional. a ticket rule defines only a name. New -> Technical -> Ticket 116 .This HTML Reference “ActionSetTicket” creates a form to receive some note. It overrides the normal processing of the flow. Tickets (Rule-Obj-Ticket) Tickets support business exception processing in a flow. However. while setting the ticket. Output of the HTML-Reference. It causes the flow to move back to a specified place where the ticket is set. This parameter has to be passed at the place of calling the Activity.How tickets are raised 1) An activity can call the Obj-Set-Tickets method to set a ticket. This “Collect” is the ticket name. and call the same method again to reset (turn off) the ticket. We can call the activity from flow action. It passes parameter “Collect” to the activity. 117 . This flow action calls activity TicketAct (described above). Here the input parameter “Ticket” provides the name of the ticket. 2) Users can select the standard Work-. where we can select the Ticket manually and write a note. Or keep the Activity that raises ticket to test a precondition. which when fails raises the ticket. They do the same thing as above. They also refer to an HTML Source (HTML tag in Flow action) “ActionSetTicket” which provides a UI in the flow. They call an activity called “ActionSetTicket” which raises the ticket. These flow actions can be inherited (overridden) in our classes.SetTicket flow actions when processing an assignment. Normal practice is to keep this flow action (which raises ticket) as a local flow action.SetTicket or @baseclass. 118 .When the flow reaches this flow action. so that user has choice to raise ticket or move forward in the flow. the normal processing of the work object is stopped and the control goes back to the place where the ticket is placed. cancel the entire flow.pySLAName. that indicate the expected or targeted turnaround time for the assignment. If an assignment is not completed before the time limit. The time interval starts when the assignment is created. typically set up through a model for the class. not when a user begins processing the assignment.The Status-Resolved ticket When a work object becomes resolved (the status changes to a resolved status). the service level rule is referenced in the Assignment Properties panel of the assignment task. For the overall work object. A developer can associate service level rules with assignments in a flow and with the entire flow. and late intervals. escalate the assignment. the system can automatically notify one or more parties. For assignments. and so on. the service level rule is identified in the standard property . known as goals. or time-to-resolve for the work object. Each service level rule defines one to three time intervals. These provide metrics or standards for the business process. 119 . (The default value is the Default service level. Every flow execution in process for the work object that contains a ticket with this name is interrupted and control transfers to the ticket task in the flow.) The Pega-ProCom agent detects service levels not achieved — unmet goals or deadlines — promptly. Process Commander automatically turns on (or "raises") a ticket named Status-Resolved. deadlines. Service Level Aggreement (SLA) (Rule-Obj-ServiceLevel) A service level rule is an instance of the Rule-Obj-ServiceLevel type. Hence we need to modify the Pega-ProCom agent (rather Pega-ProCom agent schedule) inorder to detect our SLA and call accordingly. The details to modify the Pega-ProCom agent are given in following pages. we need to route the assignment to a worklist/workbasket . New -> Process -> Service Level The Escalation Activity is called.1) Create a SLA. Note: The Pega-ProCom agent is responsible for detecting the service level and calling the appropriate activity. deadline is passed. 2) For Assignment SLA Set the Assignment Properties for Service Level. Note: For Service level to start. when the goal. 120 . There are few predefined SLAs too. 3) For Work Object SLA. After a service level rule has been configured for a work type, whenever a work object from that class is created, a standard flow named Work-.Overall SLA starts running in the background. In its default state, the OverallSLA flow creates an assignment named SLAProcessing in the default workbasket for the operator's organization. This assignment stays open until the work object is resolved. The times specified in the work object's service level are tracked against the SLAProcessing assignment. Additionally, the OverallSLA flow appears in the clipboard as one of the executing flows on the pyWorkPage page: 2. Locate and open or create the pyDefault model rule for the work type of the work object for which you created the service level rule (Rules by Type explorer > Technical > Model). 3. In the model rule, configure an entry for the pySLAName property that specifies the name of the service level you created. Save the Model . For example: 121 Now when you create a work object of that work type, flow processing tracks the service level for the work object against the SLAProcessing assignment. Note that because you specify the service level in a model for the work class, the service level applies to all flows that create work objects of that class. Note: In order to make this Work Object SLA work properly, we need to define the Workbasket of the operator whom we route the work. 3) Configuring the Pega-ProCom Agent We need to configure the Pega-ProCom Agent Schedule in-order to make our SLA detectable. Open View->SysAdmin-> Agent Schedule. Open Pega-ProCom Agent. The second No. Agent, i.e ServiceLevelEvents must be modified and enabled. It calls Activity ProcessEvent. In the security tab, add the Application Rule-Set. AGENTS Agents are internal background processes operating on the server that run activities according to a schedule. Agents are autonomous and asynchronous. The activities they call run individually on their own schedules and one activity does not have to finish before another one runs. Agents route work according to the rules in your application; they also perform system tasks such as sending e-mail notifications about assignments and outgoing correspondence. 122 Every Process Commander system includes three standard agents named Pega-ProCom, PegaIntSvcs, and Pega-RULES. Agents are implemented through two Process Commander Objects: ■ Agent queue rules – instances of Rule-Agent-Queue. These rules specify the activities the agent runs and the interval, in seconds, at which it runs them. There can be no more than one agent queue rule in a RuleSet. ■ Agent schedule data objects – instances of Data-Agent-Queue. Process Commander generates these schedules for each node in the system, based on the settings in the agent queue rule. For each agent queue rule, one agent schedule is generated for each node in the system. An agents rule provides a template that specifies the global settings for that agent on all nodes. To modify the configuration settings for an agent, open the generated agent schedule object for a specific node and modify the settings in the agent schedule. The Agent Manager is a master agent that gathers and caches the agent configuration information set for your system when Process Commander starts. Then, at a regularly scheduled interval, it determines whether any new agents rules were created during the last period. If there are new agents rules, the Agent Manager adds them to its list of agents and generates agent schedule data instances for them for each node. The Agent Manager also notices when updates are made to existing agents rules or agent schedules. MASTER AGENTS The PegaRULES engine runs two master agents: ■ Agent Manager: This master agent gathers and caches the agent configuration information set for your system when Process Commander starts up. Then, at a regularly scheduled interval, it checks whether any new agent queue rules have been defined. If they have, the Agent Manager adds them to its list of agents and generates schedules (data objects) for them for each node. ■ Requestor Manager: At a regularly scheduled interval, this master agent examines the state of all the requestors in the system to see if any have timed out. If a requestor has timed out, the Requestor Manager terminates it. The master agents’ behavior is determined by settings in the prconfig.xml file, which is described later in this section. STANDARD AGENTS By default, Process Commander relies on two standard agents: Pega-ProCom and Pega-RULES. If your system is using the PegaDISTRIBUTION Manager application, Process Commander also uses the Pega-IntSvcs agent. The Pega-ProCom agent queue rule is configured to run two activities by default and two additional activities if you enable them: ■ ProcessServiceLevelEvents – compares the current time to the times specified as the goals, deadlines, and late times of the current assignments. This activity is enabled by default and it runs every 30 seconds. For more information, see “Configuring the SLA Agent” on page 7-17. 123 it runs once every 30 seconds. You enable this activity only if you are using PegaDISTRIBUTION Manager and you want to use it to convert Word files attached to work objects into PDF files. 124 .■ SendCorr – sends notify messages to users about assignments and outgoing correspondence to work parties. it’s created automatically for each node by the Agent Manager Master Agent). Figure 7-1 shows the Pega-ProCom agent queue rule. It’s created with the same name as the rule-set. provide the Access Group name. routes them according to the settings in the e-mail account. Note we can create only one Agent per rule-set. see the PegaDISTRIBUTION Manager for Process Commander Installation and Configuration. Give the rule-set Name in the form. When enabled. Now give the details. which is available on the Pega Developer Network (PDN). This activity is enabled by default and runs every 30 seconds. (Note: We cannot create Agent Schedule. Process to Create An Agent. ■ GetConvertedPDFsFromPDM – checks the PDM Requests table to see if any Word documents have been converted to PDF files. New->sysAdmin -> Agent. In security tab. For information about this product. ■ Email_CheckIncoming – checks the inboxes of any incoming e-mail accounts that have been configured and if it finds messages. say 30 secs. 125 . everyday etc. There are 2 Patterns here.After this. 2) Recurring: Means we can specify other advanced Interval. weekly. Click on the node. To check schedule agents (data agents) go to Nodes tab and check there. See Pega Developer Network article PRKB-25045 Understanding agent queues. the Agent scheduler is automatically created by Master Agent for this agent. Advanced — Specifies that this agent uses custom queuing. We have to use Queue-for-Agent method in an activity to enable the agent to process the specific objects from the System queue. This option is not available for agents created in V5. Standard — Specifies that this agent processes items from an agent queue and that it relies on the system to provide object locking and other transactional support. This method stores a request for processing as a persistent object (entry) in the system queue. monthly. The method specifies: Which agent is to process the queue entry How many times the agent attempts to process the entry How long the entry is to remain in the queue before the agent can try to process it the first time. We can see the details in System Management Application under tools. Modes of the Agents Legacy — Specifies that this is an agent that was created in a version prior to V5. And the activity runs in the timely manner. when to call the activity.4 or later. Eg: Daily.4 and has not yet been updated. 1) Periodic: Means the activity will be called periodically at equal interval. xml file. Requestors. and listeners. View. View executing threads and their characteristics. They can also see the contents of Memory. prconfig.xml file etc. and empty the cache. Force extraction and recompilation of the functions in a library. stop. Access any requestor and view the clipboard. Capabilities Using the System Management application. and terminate requestor processing. View rule cache statistics. SYSTEM MANAGEMENT APPLICATION The System Management application (SMA) is a Web application that developers can use to monitor and control caches. or restart agents and listeners. examine performance statistics. provide the details of Access group and Tick on Bypass Activity Authentication. Observe the utilization of requestor pools supporting stateless services. Extract and compile one activity rule or model rule. Tracing and Logging. 126 .In the security tab. View open JDBC database connections. Start or stop remote logging. you can: Review the memory used by the Java Virtual Machine on the server. cycle. and other processing in your Process Commander system. start the Tracer. The URL name is prsysmgmt. Review the status of the Java class loader. Display the prconfig. agents. Review the most recent ServletRequest and HTTPRequest details. Viewing or downloading the Pega log Select Tools > Log Files to view or download the current Pega log from the server to your workstation. We have options of Select the Agents that we want to trace. Now go to Requestor Management. Select the Requestor having a message in “Last Input Tab” : Waiting for 60 Secs for Tracer connection. It will start tracing the Agent. We can click on Agents. The log file is usually named PegaRULES-YYYY-MMM-DD.log. we have Agent Management. Now Click on Tracer. The Alert log contains only alerts and supports performance-related monitoring. Logging Each node on a Process Commander system produces two logs: The Pega Log — also known as the console log or system log — contains messages created since the server was most recently started. 127 . where the date portion of the name indicates the date the application server was recently started (on the current node).Tracing the Agent Activity In SMA. (It delays the Agents activity for 60 secs to connect to a Tracer). Then Click on Delay Button. and so cannot be accessed with the Tracer. Select Tools > System Management Application to start the System Management application. Create a Windows shortcut for the startSocketServer. 2. This file starts the LogFactor5 window that displays the contents of the log. 6. 5. 7.1 or later JVM installed and enabled.cmd file. 3. Review Internet Explorer settings to confirm that your workstation has a Java 1. (LogFactor5 was an open source project of the Apache Software Foundation." This download contains a licensed redistribution from the Apache Software Foundation. Save the file to a local drive and extract its contents. use logs to debug listeners. 4. Follow the steps in the following procedures to configure a listener or service requestor to send log messages to your workstation. Select the Logging and Tracing > Remote Logging menu item. You then can start LogFactor5 with a mouse click. Note the directory that you extracted it to so you know where to locate the startSocketServer. Click the link "here" in the sentence "To download log4j socket server click here.4. Then. using a modified version of the LogFactor5 log analysis module. On the System Management application window. Accordingly.) Install the log4j Remote Logging package To install remote logging client software on your workstation: 1. you can review detailed or filtered messages.cmd file and then place it on your desktop. select a node.Listeners operate as Java threads rather than as full requestors. 128 . Located in virtual memory. a higher limit applies). Rule Resolution cache — Per node. invalidates rules in the rule cache that were recently updated on another node. The PegaRULES agent. contains copies of rules recently accessed or recently updated by developers. especially during rule resolution searches. Caching provides a substantial performance and response time improvement for all users. functions. Provided by Oracle. Rules Assembly cache — Per node. All caches Rule cache — Per node. Supports faster rule lookup. Rule Cache Management in SMA (Under Advanced Link) 129 . Personal rules cache — Per node. during the periodic system pulse.CACHE Process Commander maintains a memory cache of recently found (and non-found) rules to improve the performance of the engine. Microsoft SQL Server or other database software. This can be an important factor in performance. PegaRULES database cache — System-wide. The Rules Assembly cache is an in-memory table that allows Process Commander to rapidly identify compiled Java CLASS files that correspond to compiled and assembled rules (such as activities. for rules checked out into private RuleSets by developers. Operation of your Process Commander system benefits from several caches. provided by various software facilities. and stream rules). Similar to the Rules Assembly cache. not by Process Commander software. but managed independently of Process Commander server caches. Occupies virtual memory. Formerly known as the FUA cache. links to loaded Java classes. This rule cache (also called the rule instance cache) operates invisibly and automatically. in virtual memory. The system adds to the cache any rule that is read three or more times (for some rule types. Reduces PegaRULES database traffic. Tracks rules for which Java generation and compilation is complete. Rule Assembly Cache in SMA (Under Advanced Link) SMA LINKS 130 . self-contained system that gathers. The console tracks these key statistics and events: • Number of active requestors • Number of agents running • Percentage of JVM memory being used • Last time of system pulse • Process CPU usage • Number of database connections • SQL exceptions • Average HTTP (browser or portal requestor) response time • Rule cache enabled • Alerts and exceptions the require immediate attention 131 . The installation and configuration package contains all the necessary files needed to set up the AES server and configure the nodes for monitoring. AES combines server-level and BPM-level enterprise monitoring in a single web-based tool. monitors. The AES Enterprise Health console provides up-to-the-minute enterprise. and node level monitoring.AES: ATOMIC EVENT SERVICES AES is an independent. cluster. AES can be quickly deployed on any SmartBPM enterprise configuration. The processes are straightforward and do not require deep technical expertise. and analyzes performance and health indicators from multiple SmartBPM systems across the enterprise. and may determine which properties are defined for that party. 132 . organization. Role: Enter a unique identifier for this role. The work party role associated with each work party identifies why a party is present. Five standard data classes derived from Data-Party are available for capturing information about work parties: Data-Party-Com — For business organizations Data-Party-Gov — For government organizations Data-Party-Operator— For Process Commander users (who each have a Data-Admin-Operator ID instance) Data-Party-Org — For nonprofit organizations Data-Party-Person — For people who may not be Process Commander users with Operator IDs Your application can include other classes derived from Data-Party or from one of the above concrete classes. For example.WorkParties (Rule-Obj-WorkParties) A work party is a person. Party Label : Enter a unique label that is to appear on the work object entry form to identify this party role. who can be the recipient of e-mail or other forms of correspondence. A work object may identify no work parties. or other actor identified in a work object. one. This may be same as above party label. Party Class : Any of the above Data-party classes. you can enter Lawyer or Design Manager. or many work parties. Create a Work Party as below. .pyEmail1Type. Some of the properties are.pyEmail1. .pyWorkPhone. . .pyEmail2.pyMobilePhone. This initializes the common Work-Party properties.pyTitle. following the party label on the work object entry form.pyEmail2Type. Model: This is optional. Attach a work party with the Flow/Work Object Workparty Info at New/Perform Harness CORRESPONDENCE 133 . .pyCompany.Party Prompt: Optional. Enter a short description of the Data-Party class.pyLastName.pyHomePhone . we may have to give values to each Properties appearing at WorkParty section in New Harness). (If this is not used. This short description appears at runtime. . . . .pyFirstName. . 2) Create a correspondence rule (Rule-obj-corr) and/or correspondence fragments. 5) Create correspondence. Stores the correspondence body as an instance of the Data-Corr-Letter class. where the body of the message is stored in an instance of the Data-Corr-Email class and the addresses are stored as instances of the Data-Address. 4) Create Models. These are Typically associated with one work object or a cover or folder and may consist of text. Incoming and Outgoing mail configuration and user account flow processing should use to send outbound email. 3) Correspondence rules are part of the Process category Correspondence Types Four standard correspondence type rules are installed with your Process Commander system. using Notify tasks 2) Flow action rules. indirectly through activities identified on the Action tab 3) Activities Steps for configuring correspondence generation in flows : 1) Configure an email account object (Data-EmailAccount) that holds information about the email server. printed Letters. 3) Create the work parties rules that associate work party roles with your work classes. correspondence fragment. 6) Configure your flows to call the standard correspondence activities and flow actions at the 7) Appropriate places. 4) Email For outgoing e-mail messages. These Models are important to set the properties of workparty. or facsimile transmissions produced by the system and its users. and the address in the Data-Address-Postal class. 2) Mail : For outgoing postal letters (handled by the Correspondence Output Server) to be printed. Where referenced Rules of three other rule types can reference correspondence rules: 1) Flow rules. 1) Fax : For outgoing letters to be sent by fax transmission through the Correspondence Output Server. 2) A correspondence rule is an instance of the Rule-Obj-Corr rule type. 3) PhoneText : For short outgoing text messages to be sent to a beeper (pager) or digital cell phones that support the Short Message Service. Images or both.1) Correspondence is the Process Commander term for outgoing e-mail messages. and HTML stream rules. General Cofiguration Steps 134 .Email class. Step1 : Configure an email account object (Data-EmailAccount). Input values for Outgoing and Incoming Mail. Provide values for SMTP/POP3 Server, Email Address, Pasword, SSL etc. New -> sysAdmin -> Email Acount Step 2: Create Correspondence rule. 135 We can create our own correspondence. For creating a correspondence, we can do it in two ways. 1) Create correspondence rule (Rule-Obj-Corr) directly. 2) Create a correspondence fragment (Rule-Corr-Fragment) Correspondence rule (Rule-Obj-Corr) A correspondence rule is an instance of the Rule-Obj-Corr rule type. Instances of this rule type define templates, such as preconfigured form letters, that can draw on the values of properties in the database to produce specific letters or e-mail. New -> Process -> Correspondence. Note: We can include text, image, properties, sections, correspondence fragments, paragraph rules etc. 136 Rules that can be included. All these rules, properties and fragments etc generate a JSP (uses pega custom tags). We can see that in Source mode. We can also use validation of properties used. We can give a validation rule (Rule-Obj-Validate) in prompts tab. Correspondence fragments (Rule-Corr-fragment) Similar to above, we can create a Correspondence fragment and use it in the Correspondence rule. Step 3: Create WorkParties Rule: As done above. Step 3 : Create a Model for each Role : 137 activities have an Activity Type of Notify. 2) In the Notify Properties pane in the left frame. ). 6) Save the flow. enter or select the name of a notify activity. CorrName is always required because you have to specify what to send. 4) NotifyAllAssignees 5) NotifyParty Steps: 1) Drag the Notify flow shape from the shape panel onto your flow and connect it to the assignment. connect a notify shape to the assignment. They can be used in the Notify task. CorrName: 138 . 4) Provide values for the activity's input parameters. enter a descriptive name for the task/shape. represented by the Notify shape ( 1) Notify 2) Notify All 3) NotifyAssignee 6) Each Assignee.1) Configuring flows that generate automatic notification messages: When you want to configure your flow to automatically send notification messages about assignments. The description is given below. Party Role: Provide the party role of the workparty. Notify Activities These standard Work. 5) Click Apply. Rule: Any of the above options. 3) In the Rule field. A notify shape identifies a notify activity. In the History/Attachments window. When the work object reaches the assignment with the notify shape. 7) Create a work object to test your configuration. expand the Attachments section and verify that the notify message was generated: 139 . To create a correspondence rule: New-> Process -> Correspondence.Here we can provide the correspondence rule that we have created. click the attachments icon. Write the email. Flow With ‘Notify’ Activity (Single Party same as notifyParty) Notify : Send an E-mail message as Correspondence to a Party identified through a Parameter. 140 . Flow With ‘NotifyAll ‘ Activity (All the Workparties identified in the work object) Notify All : Send a Single e-mail message to each Work Party identified in the Work Object. an e-mail message goes to the first operator listed in the Contacts array of the Workbasket tab. If the assignment is in a workbasket rather than a worklist. 1) Create Operator Ids 2) Create a WorkBasket 141 .Flow With ‘NotifyAssignee’ Activity NotifyAssignee : Send an e-mail message to the Process Commander user who received the assignment. Flow With ‘NotifyAllAssignees’Activity NotifyAllAssignees : Send an e-mail message to the Process Commander user who received the assignment. If the assignment is in a workbasket rather than a worklist. 1) Create Operator Id 2) Create WorkBasket 142 . an e-mail message is sent to each operator listed in the Contacts array. Flow With ‘NotifyParty’Activity NotifyParty : Send an e-mail message as correspondence to a party identified through a parameter. Flow With ‘EachAssignee’ Activity 143 . but only send when a threshold urgency level is reached or exceeded. 3) In the Rule field. 2) In the Utility Properties panel in the left frame. 4) Click Apply. enter a descriptive name for the task/shape. 144 . 6) Click Apply. 8) Create a work object to test your configuration. 5) Enter values for CorrName and PartyRole (required).Configuring flows that automatically generate correspondence (Utility Task) Steps 1) Drag the Utility shape onto your flow in the appropriate place and ensure that it is connected. Fields for the CorrNew activity's input parameters of appear in the Properties panel. select or enter CorrNew. 7) Save the flow. Configuring Flows (Flow action rules. indirectly through activities identified on the Action tab) 145 . Sending Correspondence Using “Send Correspondence” Flow 146 . select the action and ensure that you can add a party.Select the Assignment and in the Assignment Properties pane in the LocalActions Section. Creation of work object to test our configuration.Configuring flows so users can add work parties to work objects Steps: 1) In the Flow . Select AddParty. 3) Create a work object to test your configuration. 147 . 2 ) Click Apply and Save the flow. When the work object reaches the assignment with the AddParty flow action. 148 . and the output parameter values that can be extracted from a SOAP response message. hence we need to connect to some of the external systems providing these values. time of flight etc. It sends parameter like No. The Airline Systems here are external systems which act as Server as they expose a service.w3c.com connects to several external systems (Like Air-India System. Service and connectors can be running in different Operating system. which allow your application (as a server) to respond to requests it receives from another system (a client). to request data or services from another system (in the role of server) Service capabilities. And receives the values from them like. MakeMyTrip. or need to respond to requests from other systems for data or computations. The external system exposes certain services to the outside world that can be used by the connector application. seats available. price. to get the data. hence we need a universal language to interact between the two. of seats required. which allow your application (in the role of client). Source and destination Airport etc. Since. Jet Airways Systems. For E. Each WSDL file describes network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information. written in different language etc. SOAP is an XML-based protocol with three components: An envelope for describing what is in a message and how to process it Encoding rules for expressing instances of application-defined data types A convention for remote procedure calls and responses Services implemented using SOAP are often called Web services.com uses connectors to connect and receive the service. The web-services provides a WSDL file to connector systems which facilitates the data transfer between the web-services and connector systems. Indigo etc) to fetch Airline data. Date of travel. distributed environment.Integration with SOAP Most systems applications require access to data or computations that are provided by another system. The common language is xml (developed by Microsoft).g: The MakeMyTrip. E.org. 149 . Software tools are available that generate WSDL files from other representations of the service. The SOAP standard is maintained by the World Wide Web Consortium (W3C) at www. It includes XML schema information that describes the input parameter values that need to be sent in a SOAP request message. The data transfer occurs between them in form of xml. Connector capabilities. A WSDL file describes a SOAP service. WSDL (Web Services Description Language) is an XML format defined by the World Wide Web Consortium (W3C).g: Our Application may require the latest currency exchange rates. It also specifies the delivery method (usually HTTP) and the URL of the Process Commander servlet that processes the SOAP requests. SOAP: Simple Object Access Protocol It is a protocol that is used for the exchange of information in a decentralized. as we have not created services and methods. tested. Use a Service Package data instance to define a package name. Service Access Group: Provide the access group. Service. and support deployment of services. and deployed together. 150 . The Service Methods described in the screen-shot. define access for listeners.Creating Service Package. this corresponds to a package of Java classes. Service Type: Give Rule-Service-SOAP. Hence do not click on the button “Show Service Methods” now. Then use this name as the first key part of the service rules. For some service rule types. create an instance of the Data-Admin-ServicePackage class. New -> Integration-Resource -> Service Package. Connectors in PRPC 1) Service Package: A service package is a name that groups one or more service rules that are designed to be developed. will not appear now. To define a service package. here. To call a Process Commander SOAP service. 2) Service SOAP A SOAP service provides service method for an external application to use. Customer Package Name: Provide the value of previously created Service Package name Customer Class Name: Provide a Unique Service Class Name. Each method in the service package corresponds to a SOAP service rule that identifies an activity to run and maps the incoming and outgoing data. Hence leave this blank. we have not created Service Class yet. and posts the envelope to the URL of the Process Commander PRSOAPServlet servlet. The PRSOAPServlet servlet routes the request to the appropriate SOAP service package and rule. New -> Integration-Service -> Service SOAP. 151 . Customer Method Name: Provide a unique Service Method name. an external application collects data values. Don’t Click on Generate Deployment Files.Deployment Type: WSDL. Similarly. wraps them in an XML document envelope (SOAP envelope) that contains the name of the requested service. This check box is ignored when the Processing Mode on the service package data instance is set to Stateless. 152 . Page Name: top-level clipboard page that Process Commander uses as the primary page by the activity being called through the SOAP service. This activity is called by the Service system on request by the connector. Execution Mode End requestor when done? Select one of the following options: Execute synchronously — select this when you want the service to run the request immediately. Execute asynchronously — select this when you want the service to queue the request. return it after some time. This is the main activity in Server. Service Activity Name: Name of the Activity that the service will call to perform operation and return data to connectors. The activity property values may be written to or read from this page.Page Class: The concrete class where my Service Activity will be present. Page Model: Model to initialize the properties of the class in the page created. It returns the data by output parameters to the connector. This check box affects only stateful processing. Select to have the system end this requestor session when the activity completes. which does the actual processing. It serches the database and returns 2 output parameter to the connector (Name and Salary for EmpID) system. 153 . Save the rule.My service receives one input parameter (EmpID). Mentione Request Parameter here. Similarly we mention the response parameters here. It creates the following service rule inside the Service Soap Section of class group. Create WSDL Now again go to Service Package that we had created before.wsdl 4) Connector (Connect SOAP) Use SOAP connector rules when your Process Commander applications need to call an external Web service. http://localhost:8888/prweb/PRServlet?pyActivity=Data-AdminServicePackage.xml) to be used by the connector system to connect the service. Now go to Deployment tab Click on button Generate Deployment Files It’ll generate WSDL file (. IN PRPC 5. or use the above URL to locate it. We can perform the same steps in different systems also.2 connect wizard 154 .3) Update Service Package. We’ll use the 5.ServeWSDL&pzAuth=guest&wsdlPath=SOAP/EmpDetailsPKG/EmpDetailsClass . Click on the button Show Service Methods. It’ll register the Service class and methods.5 open the wizard by Tools -> Integration -> 5. But we are creating this in same system. The message will come as in figure. We can download the WSDL file and copy it in the local folder of connector system. Note: The connector and services normally are in diferent systems.2 connect wizard to create the connector. Select them.ServeWSDL&pzAuth=guest&wsdlPath=SOAP/EmpDetailsPKG/EmpDetailsClass. Connector Activity Class : The concrete class which will contain the connector Activity. Port and Method. The connector class with properties will be created as a child class of this.Source DataType: Web Service (SOAP) Base Class: Provide an abstract class here. Press NEXT.g :- C:\PRPC\EmpDetailsWSDL.xml (if saved locally) If not saved use the generated URL path. Provide the WSDL URL: E. 155 .wsd l Now one by one it’ll ask for Service Class. http://localhost:8888/prweb/PRServlet?pyActivity=Data-AdminServicePackage. The following Class structure is created in my application.(Abstract class) Hence it created Another connector class (abstract) DLF-REALSTATE-MATERIALSEmpDetailsClassService- 156 . I had provided Base Class: DLF-REALSTATE-MATERIALS.Click NEXT. 157 .Click on The Connect SOAP Method EmpDetailsMethod. It’s completed by the wizard automatically. 158 . Just right click on it and do a save-as with availability = Yes.The wizard also creates a Connector Activity with the same name as of the method in the class we mentioned in the wizard. this Activity is created with availability = No. So it’ll not open. Normally. Connects the input parameter and output parameter with the properties of the connector class.Open this Connector Activity. 159 . Parameter Tab. This Activity just creates a new page (for the connector class). Pages and Classes Tab. This Activity accepts one Input parameter (EmpID) and calls the Service Activity in the Server. Give the EmpID I/P Parameter. sending the I/P parameter. . Pages and Classes tab. it returns the name and salary as output parameter to the connector Activity. If record found. 160 . Service Activity The Activity in the server (mentioned in previous pages) takes EmpID as input and it does a Obj-Browse in the data-table to find a matching record. Test Connector Activity Open the connector Activity and Click on the Button. Output Explaining the Concepts 161 . 162 . which is set in its class properties. Hence we can say that the connector properties and service properties are connected via parameters. EmpDetails_Salary). it sets the values in it’s own Class properties (Name and Salary) which are mapped with O/P Params. The Service Class receives I/P parameter.Points to be Noted The Connector Activity calls Service Method and sends I/P parameter. Calling the connector Activity in Flow. After the processing work. (EmpDetails_Name. which sets in it’s class properties. It receives the O/P parameters. Rule: The name of connector Activity. view or set the value of watch variables. not just your own session.e . or Pause ( on your access role. You can view trace events for any requestor connected to your server node. and watch variables. The Tracer tool provides full debugging facilities. Click Play ( ) to start the Tracer. services. rules. Select which RuleSets. 163 . and declarative rules. 1) Tracer Use the Tracer tool to debug flows. including step-by-step execution. Button Connection Function ) to stop tracing. We provide the value of property here i. Setting Tracer options Options Setting breakpoints Set or change breakpoints. and events are to be traced. You can pause and resume processing. activities.EmpDetailsMethod_EmpID. parse rules. breakpoints. Depending Help Choose a requestor session other than your own. Setup Use these controls to set up trace conditions.This is parameter that we need to provide. Wait a Selecting a connection few seconds until the Tracer connects. (We set the value of this property in the above Flow Action FA1). and drill down to step-by-step details.EmpDetails_EmpID . some Tracer capabilities may not be available to you. 2. 4.) 2) Rules-Inspector Rules inspector is a tool used to identify few things inside UI. the Tracer display lists the events of each type that you selected in the Trace Options dialog box. (Now check the above things which we need to identify). depending on prconfig. Clear Pause the session being traced at the next possible moment. Appears only after a pause.Harness. Abbreviate Events? Tips and notes Operations After selecting the connection and setting other options: 1. Flow Actions. At any time tracing is paused. you can change any options using the buttons in the above table. Continue Save the Tracer results in the current window into a text file in Comma-Separated-Values format or as a more detailed XML file. It can be started as Run -> Rules Inspector. Perform the work that you want to trace (or wait for it to be performed. 3.Breakpoints Setting watch variables Set or change watch variables Watch Save Tracer output on the workstation as an Excel CSV or XML file. (This operation is available only on user workstations that have installed the PegaClientSupport ActiveX control. you can use these buttons: Button Function Erase the displayed events. select to reduce the amount of clipboard detail retained for each Tracer row. Save You can open and print the saved CSV file with Microsoft Excel. Restore the Tracer window to review its results. when tracing a requestor session other than your own session).xml settings. After tracing begins. or after a breakpoint event. Sections. E. 164 . Minimize the Tracer window. Save After clicking Play ( ).g : 1) HTML Rules:. 2) Property Rules: 3) Declarative Rules: 4) Field Value Rules: 5) Style Rules. As the target session runs. Pause Resume processing after a Pause button click. See Tracer — Adjusting the buffer size. which corresponds to the pr_index_warnings database table. However. They can degrade system reliability by slowing performance (for instance. You can save the decision table rule and execute it within your application. Application -> Preflight Download High Priorities Warnings Performance and DataIntegrity warning types are considered to be high priority. As a best practice. the conflict may indicate that the rule was not entered correctly. but still be marked with a warning ( Application Preflight tool summarizes these warnings. Eliminating high priority warning conditions before putting the rules into production is strongly recommended. because the uppermost row of the table is used at runtime. use the Application Preflight tool before you lock a RuleSet version. The For example.3) Preflight The Application Preflight tool reports the results of several checks on the rules in the currently selected application. a list view that retrieves embedded properties) or by violating data integrity (for example. as codified in the guardrails and elsewhere. and other conflicting rows are ignored. Warnings are instances of the Index-Warning class. Research each warning message. a decision table rule may contain two rows that conflict — give a different result for the same inputs. 165 . These checks encourage good design and implementation practice. ). an activity that uses the Commit method incorrectly). You can perform the preflight check at any time during development. A rule in your application may work correctly and save without errors. and HTML fragment rules in your application. 166 . Because this feature displays existing data. Process Commander always accumulates cumulative resource statistics for the Performance tool. The Performance tool is sometimes known as PAL. or the SQL statements sent to the PegaRULES database by the requestor session. Open the Full details window. 2. 4) Performance tool (PAL) Use the Performance tool to understand the system resources consumed by processing of a single requestor session. To use this facility: 1. Warnings by Rule Type chart This bar chart appears when you choose Application > Preflight.The Download High Priority Warnings option enables you to: Create and download Excel spreadsheets containing all high priority warnings in the RuleSets comprising your current access group. HTML. flow action. This report checks the value set in the Browser Support field (on the HTML tab) of all the harness. and to open the rule form containing the warning. Pie Chart of Warnings by Severity Displays a pie chart and summary report of total warnings by severity level (four levels). It displays the number of rule instances with warnings for each rule type for all available RuleSets in your application. The summary report and Criteria functionality are the same as described above for the All Warnings by Rule Type report. Performance Warnings by Rule Type Displays a bar chart and summary report of rule instances that have performance-type warnings. This option displays a chart that assesses the user interface rules in your application for compatibility across these browser types. Familiarity with SQL is required to interpret the output. Level one signifies a warning that is most likely to compromise expected processing behavior. section. Links within the spreadsheet enable you to open a PDN article relevant to each warning. and the operation of the rule cache. and to identify incremental resources (in the delta rows) consumed by your processing. Use the tool to display these statistics. See Setting DB Trace options. You can change the rule type range in the display using the slider widget at the top of the chart. HTML property. Browser Compatibility Report Work object forms and reports that are part of a Pega Composite application can be designed to operate with Firefox 2.0+ browsers as well as Internet Explorer. Run > Performance Monitoring SQL operations with DB Trace You can monitor the interactions between Process Commander's server engine and the PegaRULES database or other relational databases. Click the DB Trace Options link to set up which database events are monitored. its use does not degrade processing. DB Trace processing can produce voluminous output and may adversely affect session performance. See Interpreting DB Trace Results. In addition. 167 . System-wide database trace An alternative approach that provides comprehensive tracing of SQL statements sent to the PegaRULES database is the dumpStats parameter in the prconfig.SetRequestorLevelDBTrace to turn the DB Trace tool on and off. Use this setting only for brief periods. The DB Trace tool link is not displayed in a production system — a system with the Production Level on the System form set to 5. the tool closes the output text file when tracing is turned off. the DB Trace feature is normally off. Unlike the resource statistics feature. by calling the standard activity Code-PegaRequestor. DB Trace Dialog. When enabled.xml file to add this element: <entry key="dumpStats" value="true" /> 2.pyDBTraceEnabled property. This setting generates a system-wide database trace file in the ServiceExport directory that can become very large quickly. and when a single-requestor DB trace is not suitable. Use the DB Trace feature only for a brief interval. the DB Trace is available only to users who have the PegaRULES:SysAdm4 access role. Click the Start DB Trace link to turn on the facility and record SQL statements that Process Commander sends to the database software. 4.PerformanceTools. Click Stop DB Trace to end data collection and access the trace results as a text file or with Microsoft Excel. These access roles provide access to the standard privilege named Code-Pega-. You can start and stop this tool from an activity. This activity sets the pxRequestor.3. Stop and restart the application server. To enable this feature: 1.xml file. and can affect system performance. Update the <database> node of the prconfig. Documents Similar To Pega NotesSkip carouselcarousel previouscarousel nextPEGA Tutorial|PEGA Study Material|pega training material Pega Study Tutorial&Interview QuestionsP7F 71ML6 ExerciseGuide 20140929PEGA_PRPCPega Q&APEGA dumps documentInterview Questions UpdatedSepPRPC52 Integrating With External Systems [PDF Library]Pega 7 Designer StudioSystem_Architect_Essentials_Student_Guide 7.2.pdfPega 7 Day 1Pega-FAQPega Real Time ScenarioPRPC Interview Questions _ Pega4uPega Fast Start Guide Rule SetsPega Interview QuestionspegaPRPC Custom Login ScreenPega sample ResumesPega 7 CSA Dumps | pega online Training pega cssaPega Interview Prep v3SAEI 71ML 6 ExerciseGuide 20141218PRPC ReportingWhats New in Pega 7.1.8Circumstancing in PegaPEGA 7 CSA QuestionsLesson Companion83520304 Build Your First Application PegaMore From KumarReddySkip carouselcarousel previouscarousel nextPresentation 6Presentation 7Skill Development SectorCCTV CamerasPresentation6.pptxPresentation 1Presentation 2Presentation 9Presentation 8Presentation 2Presentation 3Presentation 5Presentation 4Presentation7.pptxAa Installation GuideCS0Introduction to NETBalanced Diet ChartFlowerDay3 Hanselman KeynoteState of Dot NetAspDotNetCore Intro MVC WebAPI ShahedChowdhuriPresentation 1BENGAL TIGER.docxAa Okkati AdakuFresher OpeningFlow ChartCompany Fake ListedSchnider PenDiet ChartBest Books About Business Process ManagementService Orchestration as Organization: Building Multi-Tenant Service Applications in the Cloudby Malinda Kapuruge, Jun Han, and Alan ColmanDetective Auditing: an internal auditor's journeyby Frank JoseyBPMN: the Business Process Modeling Notation Pocket Handbookby Patrice BriolThe Complete Business Process Handbook: Body of Knowledge from Process Modeling to BPM, Volume 1by Mark von Rosing, Henrik von Scheel, and August-Wilhelm ScheerBusiness Process Management Complete Self-Assessment Guideby Gerardus BlokdykRetail Banking Technologyby Suresh SamudralaFooter MenuBack To TopAboutAbout ScribdPressOur blogJoin our team!Contact UsJoin todayInvite FriendsGiftsLegalTermsPrivacyCopyrightSupportHelp / FAQAccessibilityPurchase helpAdChoicesPublishersSocial MediaCopyright © 2018 Scribd Inc. .Browse Books.Site Directory.Site Language: English中文EspañolالعربيةPortuguês日本語DeutschFrançaisTurkceРусский языкTiếng việtJęzyk polskiBahasa indonesiaSign up to vote on this titleUsefulNot usefulMaster Your Semester with Scribd & The New York TimesSpecial offer for students: Only $4.99/month.Master Your Semester with a Special Offer from Scribd & The New York TimesRead Free for 30 DaysCancel anytime.Read Free for 30 DaysYou're Reading a Free PreviewDownloadClose DialogAre you sure?This action might not be possible to undo. Are you sure you want to continue?CANCELOK