CSSA Bullets
-
Author
phanidhar-atreya -
Category
Documents
-
view
849 -
download
11
Embed Size (px)
Transcript of 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

*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

“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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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