28
CSSA Bullets *BRE.............................................. 2 *UI............................................... 3 *Implementation Tools.............................5 *Security.........................................8 *BPM............................................. 11 *REPORT.......................................... 13 *PERFORMANCE.....................................14 *GENERAL PRPC ARCHITECTUES.......................16 *Rule Resolution & Achieving Reusability.........18 *Other........................................... 20 1

CSSA Bullets

Embed Size (px)

Citation preview

Page 1: CSSA Bullets

CSSA Bullets

*BRE..........................................................................................................2

*UI............................................................................................................3

*Implementation Tools.............................................................................5

*Security...................................................................................................8

*BPM......................................................................................................11

*REPORT.................................................................................................13

*PERFORMANCE......................................................................................14

*GENERAL PRPC ARCHITECTUES..............................................................16

*Rule Resolution & Achieving Reusability................................................18

*Other.....................................................................................................20

1

Page 2: CSSA Bullets

*BRE 6 Declarative Rule Types

o Expression

o Constraint

o On Trigger

o On Change

o Index

o Declare Page

3 key principles to drive declarative ruleso Reuse

o Delegation

o Build for Change

Delegation of Ruleo Delegated rules (Decision Table, etc.) can be accessed from the

manager’s dashboard – “My Business Rules” area.o From the developer’s portal – View > My Rules > label

o Rules can be managed outside developer’s environment

o To delegate a rule, click the Favorites toolbar button , which adds to

“System-User-MyRules”o Make sure security and ortal configuration for this group of user is

appropriate.

When to use declare ruleso All the time

o When rules not well defined

o Only when the input data changes

o Only when the stored result of the rule is used

Declare Expression – “Change Tracking” Tabo Whenever input change Forward Chaining

o Rule Collection Forward Chaining (or BC?)

o Whenever used if no value present Backward Chaining

o When used if property is missing Backward Chaining

o Whenever used Backward Chaining (performance can be costly)

When you have a property used as a target in Declarative Expression, you cannot use Property-Set to set the property in an activity.

Backward Chain - Property-Seek-Value method used Calculation types (sum of, value of) depend on type of target property in Dec-Exp

Rule collectiono Define a set of rules that will be executed sequentially as a group

Declare Pageo The name of a declare pages rule is the name of the page it creates.

o It must begin with the string “Declare underscore” (Declare_) with a

capital D.o No Applies To, thus No Inheritance (No class) – declare page rules are

referred to by name only.o Declare Pages specifies PageScope(Node/Thread), Page Class, Load

Activity, Refresh Strategy, Access Group (Node)o Load activity – LoadDeclarativePage select this type in the Security

tab of activity – the name of the activity does not have to start with “Load_”.

o Thread level – shared by single requestor

o Node level – shared across all requestors

o DP typically contains – lookup list, code tables, org info, translation

tables, system settings, external data that changes infrequently, any commonly used enterprise info – end-point URL for service/connector

o Possible to have multiple versions of a declare pages rule – Rule

Resolved but No Class Inheritanceo In the load activity, set “LoadDeclarativePage” under the Security tab

o A declare page gets created at the time it is first referenced.

o WHEN rule – the page is refreshed when the “WHEN”

condition=FALSE; apply to thread-level only, not node-level o You can include section on a harness for Declare-Page as long as they

are “read-only”o Conditional Refresh Strategy (Under Definition Tab)

Set Time Period - simply specify Days, Hours, Minutes, Seconds – applies to both Node & Thread

For Node, you must set Access Group Or by When Rule (Thread Only) – if True (Is Refreshed?), no

refresh. If False, refresh – applies to Thread onlyo Expiration (deletion of declare page)

2

Page 3: CSSA Bullets

“Allow external expiration request?” you can force the expiration of a declared page by using a java function

Check ‘Allow idle timeout’ If Refresh Strategy is used with longer than 24 hours,

this is used. If ‘Allow idle timeout’ unchecked

DP in Node gets removed when the system shuts down.

DP in Thread gets removed when you log off (sessions ends).

o Remember Declare Page is reloaded only when it’s accessed next time

(not WHEN=False or refresh period has expired)o You can debug DP using Tracer

o Connect rules retrieve the values of environment properties, such as endpoint URL, server name, request queue, response queue, etc. from Global Resource Settings using the syntax =MyDeclarativePage.pySOAPURL

o Declare Page should not contain username/password for Connect rules.

Declare On Change – on property; o When clipboard (memory) change (i.e. Property-Set) calls an activity

o The activity type has to be “OnChange”

o Not referenced from anywhere

o Can be executed by PRPC running a Property-Set

Declare Trigger – when DB change; instances of class change calls an activityo Not referenced from anywhere

o Can run on current requestor

Can be configured to run on a child requestor (“In Background On Copy”)

o Cause an activity to run when instances of a specific class are created,

updated, or deleted in the DB.

Decision tree can call Decision tree/table/map, but decision table can only call other decision table

Decision tree can take advantage of function aliases as well as WHEN, Constraint, and Declare Expression rules.

Use JSP Tags to include rules

o Rule-Obj-HTML

o Rule-HTML-Fragment

o Rule-Obj-ListView

Rule-HTML-Property can be referenced directlyo Rule-Obj-Property

o Rule Obj-FlowAction

o Rule-HTML-Section

o Rule-Obj-ListView

o Rule-Obj-SummaryView

Parameters can be passed directly to Rule-HTML-Property in the following rule types: Rule-Obj-Property Rule-Obj-FlowAction Rule-HTML-Section

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*UI UI Best Practices

o For ListView, use paging rather than scrolling

o For ListView, use Smart Info (show 5 or less)

o Button label should be in a verb form.

o Intent Driven

Skin Wizard createso Rule-Portal-Skin

o 6 CSS style sheets

o 2 portal rules: WorkManage & WorkUser

o All in a same ruleset

3 Flow Action Typeso Drop down

o Buttons

o Links

CSS files are cached by IE

3

Page 4: CSSA Bullets

Client side validationo OnChange (Event)

o OnClick (Event)

o OnBlur (Event)

o Hide/Show (Action)

o Refresh (Action)

Saving section rules in the “data” portion of the class hierarchy is usually better because the rules can then be reused wherever its associated data is used, without having to worry about correct property referencing.

Primary benefit of smart layout in 5.5 is that it forces vertical alignment even when layouts are nested.

Users can have multiple portals which are defined in access group Validation can run at different execution points within data entry, what are they?

o Client side

o Validation rule on flow action

o Post processing in an activity

Portal is rule resolved (Rule-Portal) – contains Skin – portal access is dependent on Access Group and Ruleset list.

Gadgeto Rectangular area on a portal display.

o Each gadget contains a control that a user can interact with – e.g. the

worklist area of the worker’s home page is implemented through a gadget.

o Each gadget defines the appearance and behavior of a rectangular

portion of the navigation panel – there are 19 gadgets on the WorkManager’s portal – e.g. the standard HTML rule Data-Gadget.IChartsDashboard presents four interactive charts in this space.

CSS styles and JavaScripts are instances of Rule-File-Text Define the report to be displayedin gadget in Report Model – I think ‘System-

User-MyRules’ Here is where you name the report Dshboard, Report, Rules, Tools, Administer – Not on standard WorkUser portal Dashboard, Report are on WorkManager’s Portal, but not on WorkUser Developer’s portal can be modified even though unlikely. No UI for BRE – Declare Expression, Declare On Change, etc. Portal rules specify – Skins, Gadgets, Menus, Toolbars Where do you define Gadget in ‘Rule-Portal’? Tabs How do you display a Gadget? “Show-HTML”

To maintain guardrail compliance when using a section to display an individual element within a page group property, the JSP tag should be defined in “Rule-HTML-Fragment”

Skinning a customer’s application should be done whenever customer prefers, given sufficient styles.

Standard Edit Validate: SSN, Zip, TIN, (Not US Address) Auto Complete CANNOT drive a “Dynamic Select” Select multiple selections in a List to List – “Shift+Click” OOTB PegaWAI RS – Style control, Frame control, Date control, (Not TextArea

control) Local flow action may change the work status, but cannot complete a work

o Local flow action is optional

o When buttons are used for flow actions, local actions listed on the

assignment shape become unavailable. AutoComplete control allows up to 10 items to be displayed by default – type at

least one character to activate. Last screen flow screen will have “Finish” button

Screen flow o Has a “single” user and “single harness”

o There is no assignment in a screen flow – screen flow has limited set of

shapes available compared to a regular flow.o SF can operate on a temporary work object, one that is never saved to

the database.o SF cannot be a starter flow rule. Use a regular flow to create the work

object. Then call the SF as a subflow.o Contain Split-For-Each, but not Spin-Off nor Split-Join

o Types

Perform Screen Flow (by default) Tree Navigation Tabbed Screen Flow

>> These different screen flow work even when an error is present – you can switch to different screen even when an error is present.

If user needs to see more info on LV, use PRPC SmartInfo feature to show this as the user hovers over the row keep performance in mind (show 5 or less)

Best Practice – by building HTML form rule in the same class as the property, you inherently achieve reuse.

Screen Flow – all assignments assumed to be worked on by a single user Java Script file – “Rule-File-Text”

4

Page 5: CSSA Bullets

Rule-HTML-Paragraph rule can be included in flowactions and sections using the paragraph icon.

CSS files – desktop, work object harnesses, reports, and rule form Modal popups are available only for local flow actions. Portal rules specify – skin, gadget, menus, and toolbar Standard Navigation panel bar – dashboard, process work, monitor Access Group Portal Skin Access Group can reference one or more portal Gadget – HTML stream rules that belong to the Data-Gadget class Most Portal Rule contains – Skins, Tabs, Custom, Options, History “Developer” portal rule – skins, options, history (*No “Tabs”, “Custom”) –

“Developer” is the type of portal selected in the skin tab About the Tab tab in the portal rule

o Determines which bars appear in the navigation panel of the portal,

which gadgets appearo For gadget, the checkbox “Custom” is used to indicate that an activity

defined in the “custom” tab is used to create the gadget, rather than an HTML rule name.

“Custom” tabo Includes an array of activities called to populate the gadgets defined in

the Narrow and Wide columns of the Tabs section that have “Custom” field checked.

“Option” tabo Logo, tooltip, Help URL, Show Launch/Log off, Application Selector,

Monitor Activity Workspace, HTML Fragments, Exit Option, Localize, Download user ocx plug-ins

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*Implementation Tools Run “Application > Preflight” before you lock the rulesets Run “Run > Tracer” flows, activities, services, parse rules, declarative rules Pega Log (Tools > Log Files) error, debug, info, java exception Alert Log (Tools > My Alerts) performance-related messages

o Alert Log is a subset of Pega Log

o Don't confuse the Alert log with the Pega log, which contains error messages, debug messages, information messages and Java-related diagnostics. The Alert log typically contains only a small fraction of entries that appear in the full system log, usually those that identify events with performance implications.

o preconfig.xml contains thresholds for alerts Prlogging.xml

o Controls the level of details in log

“File > Import > Refactor on Import”o Rename classes in a ruleset archive or product archive

o *.jar or *.zip are readinto memory, renamed, and copied to PRPC

database. o The original import archive files are not modified.

Logging Toolso SMA

o Tools > Log Files

PegaRules Log Analyzer (PLA)o “Daily” summary of Alert, System log, Garbage Collection logs.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+*Services & Connectors

Protocol Generalo Caller packages data in Request

o Request sent to service provider

o Service provider parses the request data

o Service provider processes the parsed data

o Service provider packages the processed data in Response

o Response sent back to caller

o Caller parses out the Response data

Synchronous – SOAP, HTTP, JMS, MQ, SMTP, Java (???), EJB (???) Asynchronous – SOAP, HTTP, JMS, MQ, SMTP (use SendAsync), Java, EJB

Asynchronous call has no Response

Tight coupling is bad. That’s why we has SOA & SOAP.

Two-phase commit – EJB, JMS, Java

How to detect long-running services: ALERT Logs (performance related)

SOA

5

Page 6: CSSA Bullets

o SOA is composed of an Enterprise Service Bus (ESB) – you do not

directly communicate with another app.o Loosely coupled

o Increased reusability of components.

Service Packageo Has one or more service rules, each service rule calls an activity

o Identifies Access Group, granting necessary authorization to the service

request.o SP is specific to a particular integration protocol, i.e. SOAP.

o Must have system-wide unique name

o Separate packages must be created for each implementation layer.

Template is defined in Framework Layero Instances of the data class: Data-Admin:ServicePackage

o Represents the service as an application

Service Ruleo Do the mappings for Request and Response data

o Has “Faults”, “Exception” tabs to handle errors Email, file, JMS, and

MQ don’t have thiso Calls activity

o Contains URI

Unit Test Service Ruleso Clipboard

o “Run” Service activities

o “Run” Rule-Parse-XML

o “Run” Service Rule

o Tracer

o PAL

o Log Files (prlogging.xml)

o Alert Files (prconfig.xml)

Connector Ruleo Prepares Request data

o Call Connect-SOAP

o Process Response data upon receipt.

o You can run connectors in parallel - click the check box in the

connector methodo Connector methods: Connect-SOAP, Connect-HTML, Connect-SQL

o Contains protocol specific configuration, such as the endpoint URL for a

SOAP connector and SQL statement for the SQL connector.

WSDLo Describes a web service

o Define a set of operations

o Define type of data expected in the request and response

SOAPo XML-based protocol

o Contains userid/password

o Contains operations to be executed with request and response data

o Can be asynchronous (which means it is inherently synchronous)

o Uses HTTP & HTTPS protocols.

o (I think) More reliable than HTTP – since this is newer and HTTP is only

for those predated SOAP.

HTTPo No WSDL

o Just Send XML Data

o Good for customers having an interface predating SOAP (legacy)

o HTTP-Post & HTTP-Get

o When to use? If a customer had an interface predating SOAP

JMSo Java Messaging Service – messaging in J2EEo Can be both synchronous and asynchronous

External tables contain no pxInsKey, pxObjClass

RDB calls do “auto-commit” – no need to use “Commit” in activity

File Listenero Contains one or more service file rules (which do the data mapping)

o These service file rules call activities (to send and process data)

o No response – this is asynchronous

o This simply takes a data file (if present) and process

o Has no ‘Fault’ nor ‘Exception’ tab

XML Rule

6

Page 7: CSSA Bullets

o Used by connector rule

o Used to move clipboard data into XML format

o Sent to the service function in an external system

Parse XML (opposite to XML Rule)o Used by service rule

o Used to move XML data into clipboard for processing

o Received from a caller in an external system

In executing PRPC service, it’s possible to change the state of an existing WO by executing a flow action ‘resumeWorkProcess’

Service rule returns simple values in ‘pySimulationDataPage.pyResponseParameterValue’

Default error handling for connector generated via connector Wizard – the connector activity does not handle it. Processing transferred to ‘ConnectionProblemFlow’

Most appropriate data transformation for “BIG#DIV#ORG” – write your own Rule-Utility-Function

JMS, MQ requires Listener. JMS, MQ contain no Exception or Fault Configure ‘Data-Admin-IS-Simulation’ for connector simulation ‘Rule-Connect-HTML’ for non SOAP compliant service Cannot connet o a stored procedure which returns cursor to a table {ASIS} tells system not to replace quotes around the value You can retrieve CLOB from RDB call File listener CANNOT listen on ‘read-only’ directory Two HTML methods that does ‘Rule-Connect-HTTP’ – GET, POST

Handling Exceptiono Connector activity set pyStatusMessage & pyStatusValue to indicate

any exceptions.o Service SOAP has “Faults” tab where an error message is returned to

the external SOAP client.o Connector SOAP has “Faults” tab that map any SOAP faults returned

by the Web service (not required)

Which connector has the Faults tabo Connect .Net (not required)

o Connect SOAP (not required)

o Connect MQ

o Connect JMS

o Connect SQL

o Connect EJB

o Connect HTML

o Connect Java

o Connect JCA

Which service has the Faults tabo Service .Net

o Service SOAP

o Service MQ

o Service JMS

o Service HTTP

o Service Email

o Service File

o Service COM (Exception tab)

o Service CORBA (Exception tab)

o Service EJB (Exception tab)

o Service JRS94 (Exception tab)

o Service Java (Exception tab)

If I have disabled my MQ listeners by editing prconfig.xml and I want to enable them. How do I do that? Via SMA. Locate listeners and start them.

Stateful vs. Stateless Service o Specified in the “Context” tab of the Service Package form.

o Stateless – any requestor in a pool requestor can perform without

regard to processing that the requestor performed earlier Clipboard properties are cleared after the service completes its

processing. Use requestor pooling improve performance. Requestor pool deoes not include authenticated requestors

(users) requestor pooling won’t be available if the service runs as an authenticated user.

o Stateful (Default) – maintain a clipboard across second and subsequent

service requests same requestor will perform. The state of the clipboard remains intact Do not use requestor pooling Select “End requestor when done” check box only on a service

rule that is the last one of a series of requests you are finished with the requestor, so that it can be destroyed. This has no impact for stateless where the requestor is only used once and automatically freed up.

7

Page 8: CSSA Bullets

Service simulator does not exist – as these are outbound – you can test a service via a “RUN” button.

Why Axis2?o If you are connecting to a service which has SOAP attachment

o If you are connecting to SOAP1, 2 based web service

Div1-Int holds generated class structures for a specific division-wide services and connectors

Connect-File & Connect-FTP can not execute in parallel – EJB, JMS, SOAP, RDB-* can.

Connector Simulator

o A connector simulator specifies an activity that bypasses the connector and returns static test data to the Integrator task in the flow.

o Has a simulation activity

o Instance of “Data-Admin-IS-Simulation”

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*Security Login authentication & Requestor authentication

o Control how long a user session may be left idle before the user is

required to login again.o Intervals are controlled in PregaRULES.xml

o Login Authentication – amount of time the system waits for more input

before requiring the user to re-authentication; controlled by the “Data-Admin-Operator-AccessGroup”, the authentication timeout field on the Settings tab; if no inputs within an interval, the system displays a dialog box requiring operator id & password once entered she can continue her work.

o Requestor authentication – dedicated to user’s session; amount of time

the system waits for additional input from a requestor before deleting the requestor itself from the system, and doing cleanup tasks.

Normally requestor timeout is set to a longer time interval than the login authentication timeout.

If requestor timeout happens, it may not be possible for the user to return directly to the task being done.

Since the login authentication timeout happened as well, the user first must re-enter id/password, then depending on the situation the system determines whether the use can go back to the task last left off. In case of requestor timeout and cleanup tasks already happened, this may not be possible.

There were a lot more exam questions in authorizations than in authentications.

LDAP – used to look up “encryption certificates” and provide “single-sign-on” where one password for a user is shared between many services.

4 types of authenticationso User name & password

o Two-factor authentication – token

o Digital certificates – electronic credit card

o Biometric authentication

Enterprise Identify Management and Single Sign On – a nice way to manage multiple authentication info at once.

o Directories – LDAP

o Web Access Management

o Password Management

o Single-Sign On

EIM Componentso Central ID management

o Identity federation component – enables users to securely access data

o Centralized policy

o Web access management control

In Web SSO, once logged in, the credential is stored in session cookies. PRPC authenticates user by matching user name & password stored in “Data-

Admin-Operator-ID” Guest is not authenticated

PRPC authentication typeso PR Basic

o PRSecuredBasic – similar to PRBasic but via SSL

o PRCustom – External LDAP directory

o PRExtAssign – External Assignments

8

Page 9: CSSA Bullets

o J2EEContext – JAAS to authenticate users

At least 1 org, 1 div, 1 unit must be created for Operator ID to use in PRPC.

PRPC Managed Authenticationo Native PRPC – Plain text or SSL (rare in prod)

o Web Access Management – deployed as a web application PRPC

servlet URL protectedo Container-Managed – PRPC runs in a Servlet container that uses JAAS

implementationso Custom Corporate – uses corporate LDAP directory enforces password

policies

Protocol – Web Access Managemento User request

o Check cache for Authentication

o Check cache for Authorization

o Generate and send page requested by user

Access Roleo When you create a new access role, you must associate it with the

appropriate classes using the Access of Role to Object rule form or Role Editor this enables “class based” security.

Access Groupo Not Subject to Rule Resolution – AG is a data instance

o References access roles, work pools, production rulesets, and

applicationo 1 AG can be referenced by one or more operators

o By default, AG is assigned to a requestor until an operator authenticates

o AG can be assigned to Requestor (required), Org (required), Div

(optional), and Operator ID (optional) – Operator ID take precedence over the other, overwriting whatever AG is assigned before – the order here is significant, later taking precedence over the previous ones.

o Operator ID can have more than one AG but only one default AG is

designated.o AG has one or more Access Roles has one or more Privileges.

o Also contains production rulesets

o Multiple access groups can be applied to one Operator ID.

Access Deny

o Allow/disallow a requestor to perform an operation on an instance of a

specified class.o Strongest - AD takes precedence and prevents any “keys” (roles) from

being tried.o Not subject to a rule resolution – only one copy in a ruleset (no

versions) – only specify Role Name and Applies To no Acccess Deny name

o Can reference Access-When, as an alternative to a system production

level number.

Access Roleo Defines various levels of access to classes (rules and instances of

classes)o No “Applies To” – subject to rule resolution

Access of Role to Objecto For each of the 8 categories in the array, you can enter an Access

When rule name, or a numeric value between 0 and 5. o Enter 0 or blank to prohibit all access.

o E..g. if the production level is 3, and the value in the ‘Open Instances’ is

4 the user can open the instance; If a production level of 5, the user cannot open the instance.

o Access role Editor: “Tools > Security > Role Names”

o Production levels are referenced in ARO

o References Privileges

o Instances of class = individual work items

o Rules that “apply to class” = i.e. flow, activity, section rules, etc.

o Not subject to a rule resolution – only one copy in a ruleset (no

versions) – only specify Role Name and Applies To no Access of Role to Object name.

Access Wheno Conditional grants of privileges based on a property

o Referenced by Access of Role to Object and Access Deny rules.

o Allow/disallow a requestor to perform an operation on an instance of a

specified class.o Subject to a rule resolution (vesioning) there is a Access When name

with “Applies To”o Does not reference Access Role

o Only specify “Applies To”

o Subject to Rule Resolution

9

Page 10: CSSA Bullets

o Rule-Access-When

Production Levelo When the system is first installed, the production level = 2.

o The current level is recorded as the value of the pzProduction Level

property on the process page – pxProcess.pxAdminSystem.pyProductionLevel

o High number means very restrictive.

o Lower number means more open to everyone to access.

o Referenced in Access of Role to Object

o Production levels can be directly referenced in Access of Role to Obj and Access Deny rules, not Access When

Privilegeo The privilege form defines only the existence (name and Applies To

class) of a new privilege. It contains no other information and conveys no capabilities by itself. By referencing privileges in Access of Role to Object rules and in certain rules rule types such as flows, privilege rules can affect which application users can do what.

o Privilege complement the security and access control features provided by access roles and ruleset lists, by restricting access to specific rules rather than to entire classes or RuleSet versions.

o Subject to a rule resolution (versioning) Privilege name & Applies To.

o Does not reference Access Role

Settingo Subject to rule resolution (versioning)

o Setting name and Applies To

o Does not reference Access Role

Privileges to follow 7o Activity

o Correspondence

o Flow

o Flow Action

o Harness Section

o List View

o Summary View

Encrypto Work Object – “Encrypt blob” in the class rule defition

o Properties

o Configured in prconfig.xml

o Encryp/decrypt takes time – performance overhead despite security

enhancement

Authorization Relationships – arrow indicates ‘references’

o A requestor thread can only be associated w/ a single access group at a time

o Access Roles implement the PRPC class based security model

o It’s best practice to list only roles for one application in each access group

o The order of roles in AG is NOT significant.

o Access of Role to Object is not subject to Rule Resolution

o Privileges can limit operations that can be performed on an attachment category

o If the production level of an Access Deny rule is zero (blank), access to the

respective class is permitted.o You need a separate Operator ID DB in PRPC even if you have centralized

identity managemento To determine whether a requestor holds a special privilege, your application can

call the standard Boolean function HavePrivilege() which returns true or false.o Native PRPC authentication is rarely used in production. Because this is only

meant to be a “starter” option to be used before your final authentication mechanisms are in place.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+*Deployment10

Page 11: CSSA Bullets

Product patch – contains rules from “single version” of ruleset Product – contains all rulesets – latest to original Best Practice

o Skim the first phase’s RuleSet version to the next highest minor version

upon completion of a specific milestone such as push to UAT.o Option would be to plan each phase to have its own minor version.

RAP includes datao DB Tables

o Class groups

o Operator ID

o Access Group

o Org

o Div

o Org Unit

o Workbasket

o Workgroup

Deployment Wizardso File > Migrate Product

o File > Package Work (move work objects, assignments, history,

attachments)o File > Export Archive

o Prdbutil

o Application > Purge & Archive

About Deployment and Ruleset1. You cannot lock a ruleset that contains checked out rules – you get an

exception: Cannot be secured: There are records checked out by users belonging to this RuleSetVersion.

2. You can create a production rule with ruleset version that is still unlocked – you can create a zip file as well – though not a good practice.

3. Checked-in versions of checked-out rules are not imported when a Product rule is used to create a ZIP archive of a RuleSet version (this implies that you can zip a ruleset that is not locked – it will display error if any rules are checked out but this can be ignored.). Checked-in version of checked-out are not exported to a ZIP archive with a product rule. You should require that all developers should check in rules, before you lock the RS version to ensure no further check-outs/check-ins can occur until the ZIP archive is built.

o Neither the checked out nor the checked in rule is included in the zip

4. What happens if you create a RAP and not all rules are checked in? Not IncludedErrors are reported.

Ruleset pre-requisite is enforced at design time.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*BPM Pull Routing

o Press ‘Get Most Urgent’ button, which calls an activity GetNextWork

o When the GMU button is pressed on users’ worklists, PRPC returns the

assignment that should be completed next, based on the assignment urgency.

o GetNextWork uses properties on the Operator ID rule – such as “Get

from workbaskets first?” & “Merge workbaskets?” & Skill Name & Rating Under the Work Access tab in Operator ID, check whether

assignments should be taken first from a workbasket or worklist – “Get from workbaskets first?”

Prevents cherry pickings – GetNextWork chooses the most next logical work – improves productivity – prevents users from picking easiest tasks only

o Using “GetNextWork” – gets the next high priority assignment –

examines contents of worklists, workbaskets, and other factors to retrieve an assignment.

. Push Routing

o Assignment is pushed to a worklist.

Benefits of BPM – Human factors, agility, process visibility, process – centric culture.

BPMS features – process modeler, engine, simulation, BAM, case, Content management, enterprise, portal

Covero Work object of concrete class

11

Page 12: CSSA Bullets

o Use AddToCover, CreatecoveredObject activities to add to a cover

o Derived from “Work-Cover-“

o Cannot be nested – cover cannot cover

o When a cover is locked, all covered will be locked automatically – you

can customize this and avoid automatic all lockingo Contains one or more work objects

o All child has to be resolved before a cover can be resolved

o Cover is associated with a covered item via “pxCoveredInsKeys”

Covered also retains cover keyo Cover & covered objects must belong to a same class group

o Work object belong to only one cover

o WO is added to WC using an activity during runtime

o Should not contain more than 20 covered work objects

o A single work object could be in only one cover

o Has a “Process Flow”

Foldero No Process Flow

o Database views

o Reporting purpose

o Contains folder, cover, and work objects

o Work object of concrete class derived from “Work-Folder-“

o No locking

o Need not belong to a single work pool

o Very loose

o Has UI

o E.g. Accident cases in Cambridge

o Work object can belong to more than one folder

o Work object and work cover can be added to work folder using an

activity during runtime.o Work object can belong to more than one folder

Locking acquired byo Obj-Open

o Obj-Open-by-Handle

o Obj-Refresh-and-Lock

o Requestor retains the lock Released when “Commit” or requestor

“logs off”

Flow Shape: Notify

o Attached to Assignment

o This is “Correspondence”

Flow Shape: Flow Actiono Connector coming out of an assignment

o Local actions – you still stay in an assignment

o 3 types: Dropdown, Button, Link

Flow Shape: Spin Offo Asynchronous – caller has no knowledge of callee

o Callee can be a different object from a caller

o Lets you call N different flows-defined in design-time

Flow Shape: SplitForEacho Creates a flow for each row of data in PageList/Group

o Synchronous – caller waits until all or one of subflow finishes

o Within only same work object

o Lets you call X number of flows depending on the size of list – decided

during runtime.

Historyo By default, written to pr_history

o History added when SLA is processed by the SLA agent

o Audit Notes on flow shapes are recorded in work history

o Level of history can be controlled.

Flow Shape: SplitJoino Within only same work object - Do not create new work object

o Synchronous

Flow Shape: Assignment-Serviceo Pass control to an external system; waits until an event is raised when

the service in the external system ends.

Flow Shape: Forko You can have more than 2 connectors coming out of a Fork

Flow Shape: Connectoro Connector Properties – Always, Staus (Dec. Rule), When, Else

Flow Shape: Flow

12

Page 13: CSSA Bullets

o Callee can run on a different work object (Spin Off)

o There is no assignment in a screen flow – screen flow has limited set of

shapes available compared to a regular flow.

Flow Shape: Ticketo You cannot resume processing from the point where the ticket was

invoked – this is like ‘go to’, you don’t know where you jumped from

Activityo If “Pages & classes” blank, then “Applies-To” assumed as primary page

o Local variables – less memory, less performance overhead, cannot be

traced; cannot be passed between activitieso Parameters can be traced

o Parameters not shown in clipboard

o Primary page automatically becomes a step page if left blank

o <LAST>, <APPEND>, <INSERT>2, <CURRENT>, <PREPEND>

o Leave step page blank “For Each Page”

o pxCoveredInsKeys – contained by cover, this ValueList can be iterated

using “For Each Element in ValueList/Group” to access all covered work objects.

o Do not use Java

o “May Start” – to promote security of your application and limit what

actions can start this activity – “May Start” means users can start the activity directly from an action within the UI or a URL, directly by user input processings

Assignmento If type is ‘screen flow’, flow action is defined ‘within’ the assignment

shape – in a regular assignment, the connector will have the FlowActiono An assignment cannot be routed to either worklist or workbasket.

How to refer to the step page of a java step in activity – use the implicit instance myStepPage

When processing a For loop or iteration over a ValueList or PageList, which start parameter would you inspect to get the value of the current iteration – pyForEachCount

Which classes are history records created for – Work, Data, Rule

SLAo Can be associated with flow assignment or entire work object

(pySLAName, use a model to set this)

Obj-Refresh-and-Locko In many cases more efficient and safer than Obj-Open

o Use this you do not know whether an object is locked and need to

update ito Assures that the contents of the step page (on clipboard) are current

and a lock is held on the corresponding objecto If the Object is locked by the caller and the lock has not expired, this

method has no effect o If the object is not locked by the caller, this method acquires a lock and

if necessary replace the step page contents with the current value of an object instance. If locked by other caller, ERROR.

Work-.AddHistory o This adds history

You can have a single assignment that can route to a worklist or workbasket by providing a custom assign activity that has a parameter that toggles between the two.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*REPORTo Wherever possible, leverage the Report Wizard when you need to create a new

report – then customize the generated LV or SV

o Exporting to Excel can be both for read and write purpose (not just view but you

can edit as well. Changes will be saved back).

o List View

13

Page 14: CSSA Bullets

o Select & Paging Options

o YES, you can pass parameters to a LV.o You can embed LV in UIo You can load data other than PRPC work objects – Data Table

Wizard is a good example – e.g. Locationso You can add/edit/delete data via List View.o No Chart

o Summary View

o No Select & Paging Options (LV only)

o YES, you can pass parameters to a SV.o The section where it is translated into ‘WHERE’ is called

CRITERIA (Not Filter by)o You can drill down to “Detailed View”, “List View”, or “Summary

View”o Can hae threshold, charts, and trend reporting (different from

LV)

o Use “reporting-image” HTML Property to display an image

o TRUE – one common technique for avoiding potential performance degradation

of the running transactional system, is to create a replicated database for reporting, refresh this data as needed. PRPC support the concept of a “reports database”

o The basis for standard reporting is by work pool.

o Report Wizard

o You launch Wizard from the toolbar of each report category on the

Monitor Activity page.o If you cannot start, you do not have the ReportWizard privilege.

o Does it allow the best performance? HMM…maybe but verify.

o JOIN

o Performance warning when you select two properties for joining data

that are completely unrelated in terms of values. Every row in the first table (n rows) will be joined with the second table (m rows) resulting in a result set of a total of m*n rows.

o Title of report is determined by full description of report rule, but the name on the

gadget is determined by a report model.o Custom activity for report should reside in “Embed-ListParams” for LV & SV

o PRPC populates ‘exposed column’ upon Commit to DB automatically

o How to expose embedded properties

o Page – use ‘declare expression’

o PageList – use Rule-Declare-Index

o OOTB Report

o Monitor Process Assignments – Assignment Table

“Open” assignments – That are past their goals and deadlines. Show assignments by organization so you can determine

which group might need help Data sources are from both worklist and workbasket.

o Monitor Process – Work Table

“Open”, unresolved work objects being processed Compare number of open work objects today with the number

a week ago, and so on.o Analyze Process Quality – Work Table

“Resolved” work objects from one application. The operator who resolve the most itesms, and the number of

work objects that were created in a specific time of period.o Analyze Process Performance – Work History Table

“Resolved” work objects and selected flow rules. Present performance information in terms of tasks. How often was each kind of flow action selected by assignment

o Change Dashboard – Data-Gadget-ICharts

o Customize the Monitor Activity favorite section under Analytics:

o System-User-MyRules

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*PERFORMANCEo Why not good storing in PR_OTHER by default when you create a class

group or work class? do not have exposed columns nor indexes queries from this table becomes slow.

o Byte Governor – number of bytes read from all queries in an interaction exeeds

the threshold

14

Page 15: CSSA Bullets

o When new classes created, by default, they are mapped to PR_OTHER

o Ideally no class should be mapped to any default tables

o PR_OTHER, PR_INDEX, PR_HISTORY, PR_Data

o Watch 3 areas for performance

o Class

o List View

o Activity

o 3 Performance tools

o PreFlight – find potential performance problems (design time)

o PAL – find hidden performance problems (unit test)

o Log/ALERT – find known problems (run time), (unit test)

o PreFlight –

o Reports the results of several checks on the rules, which encourage

good design and implementation practice.o Warnings are instances of the Index-Warning class, which corresponds

to the pr_index_warnings database table.o You can create additional warnings that are specific to your environment

or development practices. – override the empty activity named CheckForCustomWarnings. This is called immediately after the standard activity CheckForWarnings – use addWarning standard function rule.

o You can also override the standard behavior of the Application Preflight

toolo Do not prevent Save a rule (even if there is a warning)

o Does not cover Enterprise Class Structure best practice – PreFlight is

about performance, not about improving reusability.

o Write-Now (Obj-Save, etc.) defeats the benefits of deferred save function

o Rules Assembly significantly skews performance, PAL should be used after rules

assembly

o Details revealed by PAL

o PAL Int Count – how many times browser communicated w/ PRPC

o PAL CPU Time – how computationally intensive; only by Windows

system (not by Unix)o PAL Rule Count - # of rules executed between readings

o PAL Total Byte – how much data moved between client & server

o PAL Detail Screen – reading/writing the Blob or pxPVStream to/from DB

o Before UAT or Prod, ensure no logs nor alerts

o Common Alerts (Tools > My Alerts)

o DB Time – Root Causes – Indexing a table, SQL Syntax, Data filtering,

record locking, DB server capacity, size of data returns (not actual data fetch); from the time SQL sent from PRPC to time DB responds; the actual fetching of rows is not included in calculating the time; other possible cause for delay: too few connections in connection pool, missing index, lock contention

o DB Bytes – Root Causes – List View, Summary View, Obj-List, etc.

o Browser Interaction Time – PRPC response time for browser request

o Connect Total Time – a connector method calls an external system and

is taking a long time.

> Alert is generated in each of these cases when a threshold is exceeded.

o DB Trace – debugging aid, comprehensive & detailed log of accesses to the

PRPC databaseo PAL reading for Bytes read from db storage stream – how many bytes read from

pzPVStreamo pxOutputBytes – the # of bytes sent to browser (related to Browser Interaction

Time)o Alert msg can be retrieved from: MyAlerts, AES, Alert Log, (NOT PAL)

o Automatic Event Services (AES)

o Reads the alerts for you

o Proactively emails management of health via “scorecard”

o Chart patterns & trends

o SMA (System Management Application)

o Monitor and control - caches, agents, listeners, requestors, memory,

prconfig.xml, threads, JDBC db connections, functions in library, prlogging.xml (logging level definition), remote logging (start/stop)

o Operates one node at a time but can access any registered node

o Logging Level Settings (prlogging.xml)

Select a Loger and set a level (Alert, Debug, Error, Fatal, etc.) This implies that using SMA you can set prlogging.xml

o Garbage collector and log usage statistics.

o Open “Log Files”

o Open “Alert Log”

15

Page 16: CSSA Bullets

o Deployed as prsysmgmt.war file

o Provide PegaRULES build information

o BLOB advantages

o Compressed for low storage overhead

o No storage limit

o Data structure can be complex

o No need DBAs – no need to create separate normalized table for

application specific, user-defined data.

o Common root causes of performance bottleneck

o External system

o Clipboard

o Browser

o Rules DB

o Work DB

o Java App Server

o JVM

o OS

o CPU

o Network Overheads between systems

o PLA (PegaRULES Log Analyzer)

o Day-by-day analysis

o Application Profiler

o Use in conjunction with PAL

o When enabled, the Profiler adds significant overhead to performance

o This logs system’s processing at the finest level of details – more

detailed than PAL get every detail to activity stepo Output is written to a CSV file in the PRPC temp directory

o Detailed trace about activity, when, and model rules.

o Narrow down where time is being spent – dispays CPU and wall time for

each step.

o DB Trace

o When enabled, it creates a comprehensive and detailed log of accesses

to the PRPC database – shows SQL statement and the elapsed time for each operation, and whether found in the rule cache.

o Assist in tuning system performance

o If users perceive that work items take a long time to process, the DB

Trace facility might help point to where the time was being spent.o Does not know how much memory is occupied by returned data

o Does not know about Bytes sent to browser

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*GENERAL PRPC ARCHITECTUESo 6R’s – Receive, Route, Report, Research, Respond, Resolve

o Rules in DB perform as well as straight Java code because of ‘intensive caching

operations’o Two types of urgencies PRPC supports – Assignment, Work Object

o DB Connection Pooling – having db code create a new connection object on

every client request is expensiveo RETE – very slow, lots of memory

o DB indexing – a data structure that improves the speed of searches operations in

a table (PR_Other is not indexed; thus avoid using this)o Load Balancing

o Ensures one single node in a cluster does not get overloaded

o Session fail over – when one server fails, LB automatically switches to

other servero Incoming request hits LB first which optionally redirects to an HTTP

server and finally to the servlet container

o Use of prconfig.xml for DB connectivity

o Adv: EASY

o Disadv: user/password exposed

o Class loader – object that is responsible for loading class into memory

o External tables – no pxInskey, no pxObjClass

o “Test Connectivity” on Data-EmailAccount checks connection but does not send

emailso JAR – simple Java classes

o WAR – JAR + entire web applications

o EAR – JAR + WAR + EJB – Message-driven beans (MDB) are JMS listener,

which requires EAR deployments.o Use WAR if no need to “2-phase commit”, JMS, EJB, J2EE Security, all of which

requires EAR (heavy deployment)o No EAR for Tomcat – Tomcat is not full J2EE compliant

o 2 phase commit – Java, JMS, EJB

16

Page 17: CSSA Bullets

o For fast MQ message requirements – use WAR

o Rule Instance cache

o Holds data about reads from PRPC database – this is rule data only, not

including work object instanceso Memory Cache

o When rule accessed at least 3 times or updated once

o Contain XML of the rule

o Rule Assembly cache –

o Generating and compling Java code for rules in the work object

processingo PRGenClasses

o Memory Cache

o When first time it generates java code & class files

o Look Up List Cache

o Cache result of queries against PRPC db (reducing db access

improves performance)o Disk Cache

o Dictionary Cache

o Conclusion cache – Disk & memory cache

Property, Property Alias, Field Valueo Property definition cache – memory cache

o If a rule is in dictionary cache, then it’s not in rule cache.

o Static Content Cache

o Standard web browser cache

o Disk Cache

o Store 3 types – Rule-File-Binary, Rule-File-Text, Rle-File-Form

o System pulse

o Always run in all environments

o SMA – shows the time and date of the most recent ‘pulse’

o Pega-RULES agent

o Flagging a rule as ‘dirty’ in cache

o Doesn’t really synchronize the rule cache, simple ‘flags’

o Always run in all environments

o Local lookup list cache deletions

o Each node must be updated w/ rule changes

o E.g. saving a rule change will trigger, register change in pr_sys_updates

cache, all nodes record in this tableo Once per minute, the pulse on each node wakes up and queries the

table – standard PRPC agent

o Blob

o pzPVStream – not always required to have

o compressed – storage efficiency

o Encrypted – security

o Contains complex data structure – flexible

o All classes under class group are mapped to a same table

o Locks are held at the requestor level

o RDB-* do automatic Commit

o Every rule must belong to a ruleset

o Most db updates requires that the requestor holds a lock

o Obj-Open

o Obj-Open-By-Handle

o Obj-Refresh-And-Lock

o First Commit does not require a lock – creation of a new work object

o DB locks vs. Object lock (requestor)

o Commit/Rollback in PRPC happens @ Thread level (PRThread)

o Not every rule type in PRPC has to be compiled into a java class file (e.g. Portal,

Skill)o How do you get the info who has the lock? Leverage ‘LockInfoPage’

o Tools.getDatabase() – it gets a connection to PegaRules db instance associated

w/ the current processingo Obtain a lock using API – tools.getDatabase().getLockManager().lock(false)

o Each requestor runs within a Java thread

o Single threaded requestor – only one at a time

o Purpose is namespace – there can be many “Threads”

o Child requestors: e.g. Connect-* methods can be run “in parallel”

o Agents are autonomous & asynchronous

o 3 standard agents: Pega-Procom, Pega-Rules, Pega-IntSvcs

o One agent per ruleset – there are versions

17

Page 18: CSSA Bullets

o Agent Manager regularly generates agent schedules based on agent

rules. Rule-Agent-Queue (Agent) vs. Data-Agent-Queue(Agent Schedule) – you do not need to manually create agent schedule; it is configured automatically by AM.

o Agent modes: Standard (when let PRPC do the scheduling and

transaction handling), Legacy, Advanced

o Debugging an Agent

o Use Tracer – trace agents which are running on the same node where

the tracing is occurring. Tracing an agent is a bit different, as the agents can run quickly and be one before Tracer can catch them. Before the agent runs, go to the Agent Status screen (in SMA) and “Delay next execution of this queue for Tracer startup” by first choosing the agent and clicking the “Delay” button at the top.

o Use Log File – change prlogging.xml – enable logging for an activity ran

by an agent; o Use Log File – change prlogging.xml – if logging for an activity is not

sufficient, set the Log Levels to “DEBUG” for the agents themselves (i.e. com.pega.pegarules.engine.context.Agent) – this can be done in SMA

o Log-Agent this is only useful for debugging SLA agents.

o prconfig.xml

o Timeout intervals

o Configure Alert Files (prconfig.xml)

o Encryption is configured here

o Configure DB connectivity – user/passwd, connection info.

o SMA can allow viewing prconfig.xml (but not editing)

o Located in “APP_INF\lib\pega\prresrources.jar” in EAR deployment

o Located in “WEB-INF\classes” for WAR deployment

o prlogging.xlm

o Set the level of logging details

o Tools > Logging Level Setting or use SMA to change the logging level.

o PRPC Threads (PRThread)

o Different from java threads

o Each requestor has one OS thread but can have more than one Thread

o Thread = namespace which allows a Requestor to have separate

clipboard page that do not interact each other.

o Bean Managed Transaction

o PRPC directly uses the Java Transaction API (JTA) to begin, commit, or

roll back changes. That is, PRPC manages the transaction.o Calling methods such as Commit and the Obj-Save and Obj-Delete

methods with the WriteNow parameter selected cause operations to occur immediately.

o Container Managed Transaction

o E.g. WebSphere, WebLogic

o PRPC participates as one resource in a distributed transaction.

o Commit and WriteNow parameters are ignored – all operations are

deferred until the container completes the transaction PRPC does not manage the transaction.

o The application server (container) - WebSphere, WebLogic, etc. -

authenticates the user and PRPC just “lets them in”o Rule types in PRPC that support CMT – Java, JMS, EJB (EAR

Deployment)

o JDBC Transaction

o Controlled by the transaction manager of DBMS.

o When PRPC is deployed as an EAR file, it can participate in both Container

Managed Transaction and Bean Managed Transaction – provided you are using a JDBC driver with XA support.

o When PRPC is deployed as WAR file, PRPC uses DB commits without

transactions.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*Rule Resolution & Achieving Reusabilityo PRPC Base Product Layer – do not define enterprise wide rules here

o Enterprise Reuse Organizational Layer –

o Enterprise-wide extension to Work- classes

o E.g. – MyCo-, MyCo-FW-, MyCo-Data-, MyCo-Int-

o Divisional Reuse layer – e.g. MyCo-Div1-Data-

o Framework layer – stores base rules for a given application; serves as the basis

for an implementation; can stand on its own; the actual mapping of the application to production database tables occurs in the implementation layer; e.g. create connect rules and any activities that call Connect rules in the Framework layer; contains both Customer-Built Framework and Pega-Built Framework; include ‘templates’ for the service rule/service package with the CBF that can be

18

Page 19: CSSA Bullets

cloned for each implementation; FL is a generalized layer that enables assets to be used across implementation; FL is created by Application Accelerator;

o How to improve reusability

o Document

o Parameterize

o Implementation Layer – class group, work classes; mapping to the production

db happens here; IL is the specialized layer where assets specific only to the implementation are placed; IL is created by Application Accelerator.

o Primary purpose of ruleset is ‘deployment’

o 10 steps of rule resolution

o Check cache

o Gather all rules’ purposes

o Discard – Availability=No

o Discard – RS & vrsions not on Requestor’s list (RuleSet)

o Discard – Rules not in the class hierarchy (class)

o Rank the rules (Class, RS, Circum)

o Cache them

o Find BEST instances (circumstance)

o Ensure BEST instances NOT Blocked

o Check if Requestor has permission

o Application Accelerator supports creation of Frameworks & Enterprise Reuse

o AA creates generalized & specialized layers

o 4 Layers

o PRPC Shared Product – OOTB PRPC

o Enterprise Shared Product – a library of extension to PRPC

o Generalized App Layer – generic base application

o Organizational & Specialized App

o Higher the layer, more potential for reuse

o Reuse – “Work-“ activities, Util function, activity & flow defined in generalized

layero “Save As” is not reuse

o Specialization – locale, business line, product line, client, date

o By Class – security, reporting, work object persistence; class takes

precedence during rule resolutiono By RuleSet – promotion purpose

o By Circumstance – having a small # of different values, property-level,

date, date range; happens after Class & RS resolutions

o Circumstance

o Specialize based on a property and/or a date.

o Circumstance resolution occurs after class and ruleset resolution

o Base rule must exist before a circumstanced version can be created

o Property circ. – e.g. .MembershipType=Gold

Once you have created the first circumstanced rule, then choosing Save As to create additional copies of that rule will display a dropdown with the previously-chosen property name, instead of a field with a SmartPrompt.

o Date circ. – compares a single property on the clipboard to the as-of

date on the rule. The rule that has the most recent as-of circumstance date is selected. A future date will not be used – the as-of-date is the “nearest” before the specified date value

o Date-range circ. – Date-Range circumstance allows you to use the

current system time to determine which rule is applicable for this date range.

o Base rule is selected if none of the conditions matches.

o Before 5.2, higher RS overrules, After 5.2, circumstance in lower RS over rules

(unless there is a base rule that overrules the circumstances in the lower RS)o Before PRPC 5.2, a rule in a higher RS version would rank higher than

one in a lower RS version regardless of the circumstances.o After PRPC 5.2 , all rules with circumstances will rank ahead of

unqualified rules even if the unqualified rule is in a higher RuleSet version (assuming rules with the same RuleSet name and the same class)

Base Rule Flag - The base rule flag can only be applied to non-circumstanced rule instances. The base rule flag will prevent any circumstanced instance in the same class and RuleSet below a RuleSet version from being found by rule

19

Page 20: CSSA Bullets

resolution. In essence the base rule flag allows PRPC to behave similar to how it behaved before version 5.2.

o BEST Practiceo Define activities that create work objects in the implementation layero Create connect rules and any activities that call connect rules in the

Framework Layer.o Is not to have work object classes in production rulesets.o Building many steps in an activity is BAD.

o Parameterizing class names, activities, sections, HTML properties, improve quality of your rules Improves reusability

o Building MANY steps in activity – poor reusability

o Good way to minimize need for hard-coded class names – use the new class

parameter on the Page-New method & pass in a dynamic value from clipboard property

o Specialization by RS can be problematic because RS lists are static &

specialization can limit changes to what user can do.o If the “.class” file is not found, the Rule’s generates source code is compiled

stored in the caches (Rule Assembly Cache), loaded via the Java class loader & executed

o It is not possible to save a rule into ruleset that is a prerequisite for the class the

rule applies to.o It is best practice to use only the major and minor version numbers in access

groups when specifying production ruleseto It’s best practice to have only one unlocked Rule-Ruleset-version per Ruleset for

a single release of a project in development.o Ruleset version consists of three parts: major, minor, revision (03-01-02)

o Production RuleSet

o Associated with access group and defined separately from RuleSets in

application rule.o Unlocked so that modifications can be made to an application while it is

running on a production system.o Best practice is not to have work object classes in production RS.

o Best practice is, a production RS which is referenced in an access

group should also be listed in the application rule specified in that access group.

o E.g. a manager may want to modify the selection criteria for reports.

Anyone can run a report in a locked RS, but managers cannot create new reports unless they have access to an unlocked RS.

o Application RuleSet

o Locked for deployment to another system.

o Availability = Blocked rule

o Blocked rules are still included in ZIP archiveo if you want rule resolution processing to halt (with no rule

found) when it encounters this rule throws an exceptiono Cannot configure prconfig.xml to ignore the exception

o Availability = Withdrawn ruleo If you need to delete a rule in a locked ruleset version, it is not

possible to delete. But, you can withdraw the rule.o Those rules are removed from consideration during the rule resolution

process – all rules in lower version in same RuleSet and same AppliesTo class.

o Does not throw an exception – ignored and processed.

o Availability = No/Drafto The rule is ignored – one rule only – same rule in the next higher

version or in higher AppliesTo class will be selected.o Withdraw = this option withdraws the rule and all rules in lower version

of the same ruleset – where No/Draft ignores just one specific ruleo Ah, this makes sense – e.g. you are creating an activity – using No/Draft

option you can compare with the rule in a different version during debugging

o Blocked vs. Withdrawn rule

o A blocked rule and a withdrawn rule are both invisible to rule

resolution(really? Thought rule resolution finds blocked rules).

Similarly, both blocked rules and withdrawn rules prevent

lower-version rules with the same RuleSet and visible key from

being selected by rule resolution.

o However, a blocked rule may also block other rules in any

RuleSet, and a blocked rule stops rule resolution from finding

rules in higher Applies To classes. A withdrawn rule affects

other rules only in one RuleSet and one Applies To class.

o Skimming

o Skimming does not delete any rules

20

Page 21: CSSA Bullets

o Tools > Rule Management > Skim a RuleSet.

o Skimming copies rules with availability Yes, No/Draft, Withdrawn, and

Final – exclude Blocked.o Skimming simplifies the top most rule versions in a RuleSet after

multiple iterative development cycles. For example, if the highest version was previously 02-21-06:

After a major skim, the skimmed version number is 03-01-01. After a minor skim, the skimmed version number is 02-22-01. Rules in lower versions such as 02-21-05, 02-18-53, or 01-88-

15 of the same rule are not copied by the skim operation.o Rules in lower versions of the same rule are not copied by the skim

operation.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*Other History – what does it include?

o Time, Description, Operator, Flow

o SLA agent processing

o Flow

o When a work is routed to a worklist

o When a work is routed to a workbasket

o When UpdateStatus – Open, Pending, Resolved, etc.

o When a work object is created

Garbage Collectoro Clean up memory no longer needed

o PegaRULES agent periodically forces some memory segments to be

available for garbage collection using an activity (Code-.SystemCleaner)o Use Page-Remove to unleash pages that are no longer needed.

o Garbage collection can be done via SMA – this sometimes cause

frequent and unwanted garbage collection operations that affects performance.

o Garbage collection log can be analyzed via PLA (PegaRules Log

Analyzer)

PRPC runs within a Java Virtual Machine (JVM) on the server computers that make up the system.

Client-side validation

o Ensures that data entry on a work object form is correct before the form

is submitted to the application server – reduce HTTP traffic.o Requires you to create a custom edit validate rule (Rule-Edit-Validate) –

define a Java routine. Edit validate processing occurs only later, when uses client-side format validation.

o Select “Enable Client Side Validation?” under the HTML tab of the

Harness form.o Requires to add a JavaScript validator in a Rule-HTML-Fragment rule

named CustomValidators – client-side validation uses JavaScript for format checking – this exactly replicates the test performed by the edit validate rule – this JS is added in the “Scripts and Styles” tab of the Harness form

Edit Validate Ruleo Edit validate processing occurs only later, when an activity uses the

Property-Validate method with that property or uses client-side format validation.

o Two different ways to invoke Edit Validate Rule

Property-Validate Client-side format validation

External Class – Declare Index cannot be defined, rule resolution does not work. ValueList and PageGroup can never be exposed as DB column even through

declare index – only pagelist works.

21