Sunteți pe pagina 1din 21

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

*Other

1
• When you have a property used as a target in Declarative Expression, you
cannot use Property-Set to set the property in an activity.
*BRE
• 6 Declarative Rule Types • Backward Chain - Property-Seek-Value method used
○ Expression • Calculation types (sum of, value of) depend on type of target property in Dec-Exp
○ Constraint
○ On Trigger • Rule collection
○ On Change ○ Define a set of rules that will be executed sequentially as a group
○ Index
○ Declare Page • Declare Page
○ The name of a declare pages rule is the name of the page it creates.
• 3 key principles to drive declarative rules ○ It must begin with the string “Declare underscore” (Declare_) with a capital D.
○ Reuse ○ No Applies To, thus No Inheritance (No class) – declare page rules are
○ Delegation referred to by name only.
○ Build for Change ○ Declare Pages specifies PageScope(Node/Thread), Page Class, Load
Activity, Refresh Strategy, Access Group (Node)
• Delegation of Rule ○ Load activity – LoadDeclarativePage  select this type in the Security tab of
○ Delegated rules (Decision Table, etc.) can be accessed from the manager’s activity – the name of the activity does not have to start with “Load_”.
dashboard – “My Business Rules” area. ○ Thread level – shared by single requestor
○ From the developer’s portal – View > My Rules > label ○ Node level – shared across all requestors
○ Rules can be managed outside developer’s environment ○ DP typically contains – lookup list, code tables, org info, translation tables,
○ To delegate a rule, click the Favorites toolbar button , which adds to system settings, external data that changes infrequently, any commonly used
enterprise info – end-point URL for service/connector
“System-User-MyRules” ○ Possible to have multiple versions of a declare pages rule – Rule Resolved
○ Make sure security and ortal configuration for this group of user is but No Class Inheritance
appropriate. ○ In the load activity, set “LoadDeclarativePage” under the Security tab
○ A declare page gets created at the time it is first referenced.
• When to use declare rules ○ WHEN rule – the page is refreshed when the “WHEN” condition=FALSE;
○ All the time apply to thread-level only, not node-level
○ When rules not well defined ○ You can include section on a harness for Declare-Page as long as they are
○ Only when the input data changes “read-only”
○ Only when the stored result of the rule is used ○ Conditional Refresh Strategy (Under Definition Tab)
 Set Time Period - simply specify Days, Hours, Minutes,
• Declare Expression – “Change Tracking” Tab Seconds – applies to both Node & Thread
○ Whenever input change  Forward Chaining • For Node, you must set Access Group
○ Rule Collection  Forward Chaining (or BC?)  Or by When Rule (Thread Only) – if True (Is Refreshed?), no
refresh. If False, refresh – applies to Thread only
○ Whenever used if no value present  Backward Chaining
○ Expiration (deletion of declare page)
○ When used if property is missing  Backward Chaining
 “Allow external expiration request?”  you can force the
○ Whenever used  Backward Chaining (performance can be costly) expiration of a declared page by using a java function
 Check ‘Allow idle timeout’

2
• If Refresh Strategy is used with longer than 24 hours,
this is used.
 If ‘Allow idle timeout’ unchecked • Rule-HTML-Property can be referenced directly
• DP in Node gets removed when the system shuts ○ Rule-Obj-Property
down. ○ Rule Obj-FlowAction
• DP in Thread gets removed when you log off ○ Rule-HTML-Section
(sessions ends). ○ Rule-Obj-ListView
○ Remember Declare Page is reloaded only when it’s accessed next time (not ○ Rule-Obj-SummaryView
WHEN=False or refresh period has expired)
○ You can debug DP using Tracer • Parameters can be passed directly to Rule-HTML-Property in the following rule
○ Connect rules retrieve the values of environment types:
properties, such as endpoint URL, server name, request  Rule-Obj-Property
 Rule-Obj-FlowAction
queue, response queue, etc. from Global Resource  Rule-HTML-Section
Settings using the syntax +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
=MyDeclarativePage.pySOAPURL
○ Declare Page should not contain username/password *UI
for Connect rules. • UI Best Practices
○ For ListView, use paging rather than scrolling
• Declare On Change – on property; ○ For ListView, use Smart Info (show 5 or less)
○ When clipboard (memory) change (i.e. Property-Set)  calls an activity ○ Button label should be in a verb form.
○ The activity type has to be “OnChange” ○ Intent Driven
○ Not referenced from anywhere
○ Can be executed by PRPC running a Property-Set • Skin Wizard creates
○ Rule-Portal-Skin
• Declare Trigger – when DB change; instances of class change  calls an activity ○ 6 CSS style sheets
○ Not referenced from anywhere ○ 2 portal rules: WorkManage & WorkUser
○ Can run on current requestor ○ All in a same ruleset
 Can be configured to run on a child requestor (“In Background
On Copy”) • 3 Flow Action Types
○ Cause an activity to run when instances of a specific class are created, ○ Drop down
updated, or deleted in the DB. ○ Buttons
○ Links
• Decision tree can call Decision tree/table/map, but decision table can only call
other decision table • CSS files are cached by IE
• Decision tree can take advantage of function aliases  as well as WHEN,
Constraint, and Declare Expression rules. • Client side validation
○ OnChange (Event)
• Use JSP Tags to include rules ○ OnClick (Event)
○ Rule-Obj-HTML ○ OnBlur (Event)
○ Rule-HTML-Fragment ○ Hide/Show (Action)
○ Rule-Obj-ListView
3
○ Refresh (Action) • OOTB PegaWAI RS – Style control, Frame control, Date control, (Not TextArea
control)
• Saving section rules in the “data” portion of the class hierarchy is usually better • Local flow action may change the work status, but cannot complete a work
because the rules can then be reused wherever its associated data is used, ○ Local flow action is optional
without having to worry about correct property referencing. ○ When buttons are used for flow actions, local actions listed on the assignment
shape become unavailable.
• Primary benefit of smart layout in 5.5 is that it forces vertical alignment even • AutoComplete control allows up to 10 items to be displayed by default – type at
when layouts are nested. least one character to activate.
• Users can have multiple portals which are defined in access group • Last screen flow screen will have “Finish” button
• Validation can run at different execution points within data entry, what are they?
○ Client side • Screen flow
○ Validation rule on flow action ○ Has a “single” user and “single harness”
○ Post processing in an activity ○ There is no assignment in a screen flow – screen flow has limited set of
• Portal is rule resolved (Rule-Portal) – contains Skin – portal access is dependent shapes available compared to a regular flow.
on Access Group and Ruleset list. ○ SF can operate on a temporary work object, one that is never saved to the
database.
○ SF cannot be a starter flow rule. Use a regular flow to create the work object.
• Gadget
○ Rectangular area on a portal display. Then call the SF as a subflow.
○ Contain Split-For-Each, but not Spin-Off nor Split-Join
○ Each gadget contains a control that a user can interact with – e.g. the worklist
○ Types
area of the worker’s home page is implemented through a gadget.
○ Each gadget defines the appearance and behavior of a rectangular portion of  Perform Screen Flow (by default)
 Tree Navigation
the navigation panel – there are 19 gadgets on the WorkManager’s portal –
 Tabbed Screen Flow
e.g. the standard HTML rule Data-Gadget.IChartsDashboard presents four
>> These different screen flow work even when an error is present – you can
interactive charts in this space.
switch to different screen even when an error is present.
• CSS styles and JavaScripts are instances of Rule-File-Text
• If user needs to see more info on LV, use PRPC SmartInfo feature to show this
• Define the report to be displayedin gadget in Report Model – I think ‘System-
as the user hovers over the row  keep performance in mind (show 5 or less)
User-MyRules’  Here is where you name the report
• Best Practice – by building HTML form rule in the same class as the property,
• Dshboard, Report, Rules, Tools, Administer – Not on standard WorkUser portal
you inherently achieve reuse.
• Dashboard, Report are on WorkManager’s Portal, but not on WorkUser
• Screen Flow – all assignments assumed to be worked on by a single user
• Developer’s portal can be modified even though unlikely.
• Java Script file – “Rule-File-Text”
• No UI for BRE – Declare Expression, Declare On Change, etc.
• Rule-HTML-Paragraph rule can be included in flowactions and sections using the
• Portal rules specify – Skins, Gadgets, Menus, Toolbars
paragraph icon.
• Where do you define Gadget in ‘Rule-Portal’? Tabs
• CSS files – desktop, work object harnesses, reports, and rule form
• How do you display a Gadget? “Show-HTML”
• Modal popups are available only for local flow actions.
• To maintain guardrail compliance when using a section to display an individual
• Portal rules specify – skin, gadget, menus, and toolbar
element within a page group property, the JSP tag should be defined in “Rule-
• Standard Navigation panel bar – dashboard, process work, monitor
HTML-Fragment”
• Access Group  Portal  Skin
• Skinning a customer’s application should be done whenever customer prefers,
• Access Group can reference one or more portal
given sufficient styles.
• Gadget – HTML stream rules that belong to the Data-Gadget class
• Standard Edit Validate: SSN, Zip, TIN, (Not US Address)
• Most Portal Rule contains – Skins, Tabs, Custom, Options, History
• Auto Complete CANNOT drive a “Dynamic Select”
• “Developer” portal rule – skins, options, history (*No “Tabs”, “Custom”) –
• Select multiple selections in a List to List – “Shift+Click”
“Developer” is the type of portal selected in the skin tab
4
• About the Tab tab in the portal rule
○ Determines which bars appear in the navigation panel of the portal, which • PegaRules Log Analyzer (PLA)
gadgets appear ○ “Daily” summary of Alert, System log, Garbage Collection logs.
○ 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. + *Services & Connectors
• “Custom” tab
○ Includes an array of activities called to populate the gadgets defined in the • Protocol General
Narrow and Wide columns of the Tabs section that have “Custom” field ○ Caller packages data in Request
checked. ○ Request sent to service provider
• “Option” tab ○ Service provider parses the request data
○ Logo, tooltip, Help URL, Show Launch/Log off, Application Selector, Monitor ○ Service provider processes the parsed data
Activity Workspace, HTML Fragments, Exit Option, Localize, Download user ○ Service provider packages the processed data in Response
ocx plug-ins ○ Response sent back to caller
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ○ Caller parses out the Response data

*Implementation Tools • Synchronous – SOAP, HTTP, JMS, MQ, SMTP, Java (???), EJB (???)
• Asynchronous – SOAP, HTTP, JMS, MQ, SMTP (use SendAsync), Java, EJB
• Run “Application > Preflight” before you lock the rulesets
• Run “Run > Tracer”  flows, activities, services, parse rules, declarative rules • Asynchronous call has no Response
• Pega Log (Tools > Log Files)  error, debug, info, java exception
• Alert Log (Tools > My Alerts)  performance-related messages • Tight coupling is bad. That’s why we has SOA & SOAP.
○ Alert Log is a subset of Pega Log
○ Don't confuse the Alert log with the Pega log, which • Two-phase commit – EJB, JMS, Java
contains error messages, debug messages, information
• How to detect long-running services: ALERT Logs (performance related)
messages and Java-related diagnostics. The Alert log
typically contains only a small fraction of entries that
• SOA
appear in the full system log, usually those that identify ○ SOA is composed of an Enterprise Service Bus (ESB) – you do not
events with performance implications. directly communicate with another app.
○ preconfig.xml contains thresholds for alerts ○ Loosely coupled
• Prlogging.xml ○ Increased reusability of components.
○ Controls the level of details in log
• Service Package
• “File > Import > Refactor on Import” ○ Has one or more service rules, each service rule calls an activity
○ Rename classes in a ruleset archive or product archive ○ Identifies Access Group, granting necessary authorization to the service
○ *.jar or *.zip are readinto memory, renamed, and copied to PRPC request.
database. ○ SP is specific to a particular integration protocol, i.e. SOAP.
○ The original import archive files are not modified. ○ Must have system-wide unique name
○ Separate packages must be created for each implementation layer.
• Logging Tools Template is defined in Framework Layer
○ SMA ○ Instances of the data class: Data-Admin:ServicePackage
○ Tools > Log Files ○ Represents the service as an application
5
• HTTP
• Service Rule ○ No WSDL
○ Do the mappings for Request and Response data ○ Just Send XML Data
○ Has “Faults”, “Exception” tabs to handle errors  Email, file, JMS, and ○ Good for customers having an interface predating SOAP (legacy)
MQ don’t have this ○ HTTP-Post & HTTP-Get
○ Calls activity ○ When to use? If a customer had an interface predating
○ Contains URI
SOAP
• Unit Test Service Rules
○ Clipboard • JMS
○ “Run” Service activities ○ Java Messaging Service – messaging in J2EE
○ “Run” Rule-Parse-XML ○ Can be both synchronous and asynchronous
○ “Run” Service Rule
○ Tracer • External tables contain no pxInsKey, pxObjClass
○ PAL
○ Log Files (prlogging.xml) • RDB calls do “auto-commit” – no need to use “Commit” in activity
○ Alert Files (prconfig.xml)
• File Listener
• Connector Rule ○ Contains one or more service file rules (which do the data mapping)
○ Prepares Request data ○ These service file rules call activities (to send and process data)
○ Call Connect-SOAP ○ No response – this is asynchronous
○ Process Response data upon receipt. ○ This simply takes a data file (if present) and process
○ You can run connectors in parallel - click the check box in the ○ Has no ‘Fault’ nor ‘Exception’ tab
connector method
○ Connector methods: Connect-SOAP, Connect-HTML, Connect-SQL • XML Rule
○ Contains protocol specific configuration, such as the endpoint URL for a ○ Used by connector rule
SOAP connector and SQL statement for the SQL connector. ○ Used to move clipboard data into XML format
○ Sent to the service function in an external system
• WSDL
○ Describes a web service • Parse XML (opposite to XML Rule)
○ Define a set of operations ○ Used by service rule
○ Define type of data expected in the request and response ○ Used to move XML data into clipboard for processing
○ Received from a caller in an external system
• SOAP
○ XML-based protocol • In executing PRPC service, it’s possible to change the state of an existing WO by
○ Contains userid/password executing a flow action  ‘resumeWorkProcess’
○ Contains operations to be executed with request and response data • Service rule returns simple values in
○ Can be asynchronous (which means it is inherently synchronous) ‘pySimulationDataPage.pyResponseParameterValue’
• Default error handling for connector generated via connector Wizard – the
○ Uses HTTP & HTTPS protocols.
connector activity does not handle it. Processing transferred to
○ (I think) More reliable than HTTP – since this is newer and HTTP is only
‘ConnectionProblemFlow’
for those predated SOAP.

6
• Most appropriate data transformation for “BIG#DIV#ORG” – write your own Rule- ○ Service JRS94 (Exception tab)
Utility-Function ○ Service Java (Exception tab)
• JMS, MQ requires Listener. • If I have disabled my MQ listeners by editing prconfig.xml and I want to enable
• JMS, MQ contain no Exception or Fault them. How do I do that? Via SMA. Locate listeners and start them.
• Configure ‘Data-Admin-IS-Simulation’ for connector simulation
• ‘Rule-Connect-HTML’ for non SOAP compliant service • Stateful vs. Stateless Service
• Cannot connet o a stored procedure which returns cursor to a table ○ Specified in the “Context” tab of the Service Package form.
• {ASIS} tells system not to replace quotes around the value ○ Stateless – any requestor in a pool requestor can perform without
• You can retrieve CLOB from RDB call
regard to processing that the requestor performed earlier
• File listener CANNOT listen on ‘read-only’ directory
 Clipboard properties are cleared after the service completes its
• Two HTML methods that does ‘Rule-Connect-HTTP’ – GET, POST
processing.
• Handling Exception
 Use requestor pooling  improve performance.
○ Connector activity set pyStatusMessage & pyStatusValue to indicate  Requestor pool deoes not include authenticated requestors
any exceptions. (users)  requestor pooling won’t be available if the service
○ Service SOAP has “Faults” tab where an error message is returned to runs as an authenticated user.
the external SOAP client. ○ Stateful (Default) – maintain a clipboard across second and subsequent
○ Connector SOAP has “Faults” tab that map any SOAP faults returned service requests  same requestor will perform.
by the Web service (not required)  The state of the clipboard remains intact
 Do not use requestor pooling
• Which connector has the Faults tab  Select “End requestor when done” check box only on a service
○ Connect .Net (not required) rule that is the last one of a series of requests  you are
finished with the requestor, so that it can be destroyed. This
○ Connect SOAP (not required)
has no impact for stateless where the requestor is only used
○ Connect MQ
once and automatically freed up.
○ Connect JMS
○ Connect SQL • Service simulator does not exist – as these are outbound – you can test a service
○ Connect EJB via a “RUN” button.
○ Connect HTML
○ Connect Java • Why Axis2?
○ Connect JCA ○ If you are connecting to a service which has SOAP attachment
○ If you are connecting to SOAP1, 2 based web service
• Which service has the Faults tab
○ Service .Net • Div1-Int  holds generated class structures for a specific
○ Service SOAP
division-wide services and connectors
○ Service MQ
○ Service JMS • Connect-File & Connect-FTP can not execute in parallel – EJB, JMS, SOAP,
○ Service HTTP RDB-* can.
○ Service Email
○ Service File
○ Service COM (Exception tab) • Connector Simulator
○ Service CORBA (Exception tab)
○ Service EJB (Exception tab)

7
○ A connector simulator specifies an activity that bypasses
the connector and returns static test data to the Integrator • Enterprise Identify Management and Single Sign On – a nice way to manage
task in the flow. multiple authentication info at once.
○ Directories – LDAP
○ Has a simulation activity
○ Web Access Management
○ Instance of “Data-Admin-IS-Simulation” ○ Password Management
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ○ Single-Sign On

*Security • EIM Components


○ Central ID management
• Login authentication & Requestor authentication ○ Identity federation component – enables users to securely access data
○ Control how long a user session may be left idle before the user is ○ Centralized policy
required to login again.
○ Web access management control
○ Intervals are controlled in PregaRULES.xml
○ Login Authentication – amount of time the system waits for more input • In Web SSO, once logged in, the credential is stored in session cookies.
before requiring the user to re-authentication; controlled by the “Data- • PRPC authenticates user by matching user name & password stored in “Data-
Admin-Operator-AccessGroup”, the authentication timeout field on the Admin-Operator-ID”
Settings tab; if no inputs within an interval, the system displays a dialog • Guest is not authenticated
box requiring operator id & password  once entered she can continue
her work. • PRPC authentication types
○ Requestor authentication – dedicated to user’s session; amount of time ○ PR Basic
the system waits for additional input from a requestor before deleting ○ PRSecuredBasic – similar to PRBasic but via SSL
the requestor itself from the system, and doing cleanup tasks. ○ PRCustom – External LDAP directory
 Normally requestor timeout is set to a longer time interval than ○ PRExtAssign – External Assignments
the login authentication timeout.
○ J2EEContext – JAAS to authenticate users
 If requestor timeout happens, it may not be possible for the
user to return directly to the task being done.
• At least 1 org, 1 div, 1 unit must be created for Operator ID to use in PRPC.
 Since the login authentication timeout happened as well, the
user first must re-enter id/password, then depending on the
• PRPC Managed Authentication
situation the system determines whether the use can go back
○ Native PRPC – Plain text or SSL (rare in prod)
to the task last left off. In case of requestor timeout and
○ Web Access Management – deployed as a web application PRPC
cleanup tasks already happened, this may not be possible.
servlet URL protected
• There were a lot more exam questions in authorizations than in authentications. ○ Container-Managed – PRPC runs in a Servlet container that uses JAAS
implementations
• LDAP – used to look up “encryption certificates” and provide “single-sign-on” ○ Custom Corporate – uses corporate LDAP directory enforces password
where one password for a user is shared between many services. policies

• 4 types of authentications • Protocol – Web Access Management


○ User name & password ○ User request
○ Two-factor authentication – token ○ Check cache for Authentication
○ Digital certificates – electronic credit card ○ Check cache for Authorization
○ Biometric authentication ○ Generate and send page requested by user

8
• Access Role ○ E..g. if the production level is 3, and the value in the ‘Open Instances’ is
○ When you create a new access role, you must associate it with the 4  the user can open the instance; If a production level of 5, the user
appropriate classes using the Access of Role to Object rule form or Role cannot open the instance.
Editor  this enables “class based” security. ○ Access role Editor: “Tools > Security > Role Names”
○ Production levels are referenced in ARO
• Access Group ○ References Privileges
○ Not Subject to Rule Resolution – AG is a data instance ○ Instances of class = individual work items
○ References access roles, work pools, production rulesets, and ○ Rules that “apply to class” = i.e. flow, activity, section rules, etc.
application ○ Not subject to a rule resolution – only one copy in a ruleset (no
○ 1 AG can be referenced by one or more operators
versions) – only specify Role Name and Applies To  no Access of
○ By default, AG is assigned to a requestor until an operator authenticates Role to Object name.
○ AG can be assigned to Requestor (required), Org (required), Div
(optional), and Operator ID (optional) – Operator ID take precedence • Access When
over the other, overwriting whatever AG is assigned before – the order ○ Conditional grants of privileges based on a property
here is significant, later taking precedence over the previous ones. ○ Referenced by Access of Role to Object and Access Deny rules.
○ Operator ID can have more than one AG but only one default AG is
○ Allow/disallow a requestor to perform an operation on an instance of a
designated.
specified class.
○ AG has one or more Access Roles  has one or more Privileges.
○ Subject to a rule resolution (vesioning)  there is a Access When name
○ Also contains production rulesets
with “Applies To”
○ Multiple access groups can be applied to one Operator ID.
○ Does not reference Access Role
○ Only specify “Applies To”
• Access Deny
○ Subject to Rule Resolution
○ Allow/disallow a requestor to perform an operation on an instance of a
○ Rule-Access-When
specified class.
○ Strongest - AD takes precedence and prevents any “keys” (roles) from
• Production Level
being tried.
○ When the system is first installed, the production level = 2.
○ Not subject to a rule resolution – only one copy in a ruleset (no
○ The current level is recorded as the value of the pzProduction Level
versions) – only specify Role Name and Applies To  no Acccess Deny
property on the process page –
name
pxProcess.pxAdminSystem.pyProductionLevel
○ Can reference Access-When, as an alternative to a system production
○ High number means very restrictive.
level number.
○ Lower number means more open to everyone to access.
○ Referenced in Access of Role to Object
• Access Role
○ Defines various levels of access to classes (rules and instances of ○ Production levels can be directly referenced in Access of Role
classes) to Obj and Access Deny rules, not Access When
○ No “Applies To” – subject to rule resolution
• Privilege
• Access of Role to Object ○ The privilege form defines only the existence (name and Applies To
○ For each of the 8 categories in the array, you can enter an Access class) of a new privilege. It contains no other information and conveys
no capabilities by itself. By referencing privileges in Access of Role to
When rule name, or a numeric value between 0 and 5.
Object rules and in certain rules rule types such as flows, privilege rules
○ Enter 0 or blank to prohibit all access.
can affect which application users can do what.

9
○ 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.
○ Subject to a rule resolution (versioning)  Privilege
name & Applies To.
○ Does not reference Access Role

• Setting
○ Subject to rule resolution (versioning)
○ Setting name and Applies To
○ A requestor thread can only be associated w/ a single access group at a time
○ Does not reference Access Role
○ Access Roles implement the PRPC class based security model
• Privileges to follow 7 ○ It’s best practice to list only roles for one application in each access group
○ Activity ○ The order of roles in AG is NOT significant.
○ Correspondence ○ Access of Role to Object is not subject to Rule Resolution
○ Flow ○ Privileges can limit operations that can be performed on an attachment category
○ Flow Action ○ If the production level of an Access Deny rule is zero (blank), access to the
○ Harness Section respective class is permitted.
○ List View ○ You need a separate Operator ID DB in PRPC even if you have centralized
○ Summary View identity management
○ To determine whether a requestor holds a special privilege, your application can
• Encrypt call the standard Boolean function HavePrivilege() which returns true or false.
○ Work Object – “Encrypt blob” in the class rule defition ○ Native PRPC authentication is rarely used in production. Because this is only
○ Properties meant to be a “starter” option to be used before your final authentication
○ Configured in prconfig.xml mechanisms are in place.
○ Encryp/decrypt takes time – performance overhead despite security ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
enhancement
+ *Deployment
• Authorization Relationships – arrow indicates ‘references’
• Product patch – contains rules from “single version” of ruleset
• Product – contains all rulesets – latest to original
• Best Practice
○ Skim the first phase’s RuleSet version to the next highest minor version
upon completion of a specific milestone such as push to UAT.
○ Option would be to plan each phase to have its own minor version.

• RAP includes data


○ DB Tables
○ Class groups
○ Operator ID

10
○ Access Group ○ GetNextWork uses properties on the Operator ID rule – such as “Get
○ Org from workbaskets first?” & “Merge workbaskets?” & Skill Name & Rating
○ Div  Under the Work Access tab in Operator ID, check whether
○ Org Unit assignments should be taken first from a workbasket or
○ Workbasket worklist – “Get from workbaskets first?”
○ Workgroup  Prevents cherry pickings – GetNextWork chooses the most
next logical work – improves productivity – prevents users from
• Deployment Wizards picking easiest tasks only
○ File > Migrate Product ○ Using “GetNextWork” – gets the next high priority assignment –
○ File > Package Work (move work objects, assignments, history, examines contents of worklists, workbaskets, and other factors to
attachments) retrieve an assignment.
○ File > Export Archive
○ Prdbutil
○ Application > Purge & Archive

• About Deployment and Ruleset


1. 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. • Push Routing
3. Checked-in versions of checked-out rules are not imported when a Product rule ○ Assignment is pushed to a worklist.
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 • Benefits of BPM – Human factors, agility, process visibility, process – centric
this can be ignored.). Checked-in version of checked-out are not exported to a culture.
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- • BPMS features – process modeler, engine, simulation, BAM, case, Content
outs/check-ins can occur until the ZIP archive is built. management, enterprise, portal
○ 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 • Cover
IncludedErrors are reported. ○ Work object of concrete class
Ruleset pre-requisite is enforced at design time. ○ Use AddToCover, CreatecoveredObject activities to add to a cover
○ Derived from “Work-Cover-“
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ○ Cannot be nested – cover cannot cover
○ When a cover is locked, all covered will be locked automatically – you
*BPM ○
can customize this and avoid automatic all locking
Contains one or more work objects
• Pull Routing ○ All child has to be resolved before a cover can be resolved
○ Press ‘Get Most Urgent’ button, which calls an activity GetNextWork ○ Cover is associated with a covered item via “pxCoveredInsKeys”
○ When the GMU button is pressed on users’ worklists, PRPC returns the  Covered also retains cover key
assignment that should be completed next, based on the assignment ○ Cover & covered objects must belong to a same class group
urgency. ○ Work object belong to only one cover
○ WO is added to WC using an activity during runtime
11
○ Should not contain more than 20 covered work objects ○ Creates a flow for each row of data in PageList/Group
○ A single work object could be in only one cover ○ Synchronous – caller waits until all or one of subflow finishes
○ Has a “Process Flow” ○ Within only same work object
○ Lets you call X number of flows depending on the size of list – decided
• Folder during runtime.
○ No Process Flow
○ Database views • History
○ Reporting purpose ○ By default, written to pr_history
○ Contains folder, cover, and work objects ○ History added when SLA is processed by the SLA agent
○ Work object of concrete class derived from “Work-Folder-“ ○ Audit Notes on flow shapes are recorded in work history
○ No locking ○ Level of history can be controlled.
○ Need not belong to a single work pool
○ Very loose • Flow Shape: SplitJoin
○ Within only same work object - Do not create new work object
○ Has UI
○ Synchronous
○ E.g. Accident cases in Cambridge
○ Work object can belong to more than one folder
• Flow Shape: Assignment-Service
○ Work object and work cover can be added to work folder using an
○ Pass control to an external system; waits until an event is raised when
activity during runtime.
the service in the external system ends.
○ Work object can belong to more than one folder
• Flow Shape: Fork
• Locking acquired by
○ You can have more than 2 connectors coming out of a Fork
○ Obj-Open
○ Obj-Open-by-Handle
• Flow Shape: Connector
○ Obj-Refresh-and-Lock ○ Connector Properties – Always, Staus (Dec. Rule), When, Else
○ Requestor retains the lock  Released when “Commit” or requestor
“logs off” • Flow Shape: Flow
○ Callee can run on a different work object (Spin Off)
• Flow Shape: Notify ○ There is no assignment in a screen flow – screen flow has limited set of
○ Attached to Assignment shapes available compared to a regular flow.
○ This is “Correspondence”
• Flow Shape: Ticket
• Flow Shape: Flow Action ○ You cannot resume processing from the point where the ticket was
○ Connector coming out of an assignment invoked – this is like ‘go to’, you don’t know where you jumped from
○ Local actions – you still stay in an assignment
○ 3 types: Dropdown, Button, Link • Activity
○ If “Pages & classes” blank, then “Applies-To” assumed as primary page
• Flow Shape: Spin Off ○ Local variables – less memory, less performance overhead, cannot be
○ Asynchronous – caller has no knowledge of callee traced; cannot be passed between activities
○ Callee can be a different object from a caller ○ Parameters can be traced
○ Lets you call N different flows-defined in design-time ○ Parameters not shown in clipboard
○ Primary page automatically becomes a step page if left blank
• Flow Shape: SplitForEach ○ <LAST>, <APPEND>, <INSERT>2, <CURRENT>, <PREPEND>
12
○ Leave step page blank “For Each Page” ○ If the Object is locked by the caller and the lock has not expired, this
○ pxCoveredInsKeys – contained by cover, this ValueList can be iterated method has no effect 
using “For Each Element in ValueList/Group” to access all covered work ○ If the object is not locked by the caller, this method acquires a lock and
objects. if necessary replace the step page contents with the current value of an
○ Do not use Java object instance. If locked by other caller, ERROR.
○ “May Start” – to promote security of your application and limit what
actions can start this activity – “May Start” means users can start the • Work-.AddHistory
activity directly from an action within the UI or a URL, directly by user ○ This adds history
input processings • 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
• Assignment two.
○ If type is ‘screen flow’, flow action is defined ‘within’ the assignment +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
shape – in a regular assignment, the connector will have the FlowAction
○ An assignment cannot be routed to either worklist or workbasket.
*REPORT
○ Wherever possible, leverage the Report Wizard when you need to create a new
report – then customize the generated LV or SV

○ 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).

○ List View
○ Select & Paging Options
○ YES, you can pass parameters to a LV.
• How to refer to the step page of a java step in activity – use the implicit instance
○ You can embed LV in UI
myStepPage
○ You can load data other than PRPC work objects –
• When processing a For loop or iteration over a ValueList or PageList, which start Data Table Wizard is a good example – e.g.
parameter would you inspect to get the value of the current iteration – Locations
pyForEachCount
○ You can add/edit/delete data via List View.
• Which classes are history records created for – Work, Data, Rule ○ No Chart

• SLA ○ Summary View


○ Can be associated with flow assignment or entire work object ○ No Select & Paging Options (LV only)
(pySLAName, use a model to set this)
○ YES, you can pass parameters to a SV.
• Obj-Refresh-and-Lock ○ The section where it is translated into ‘WHERE’ is
○ In many cases more efficient and safer than Obj-Open called CRITERIA (Not Filter by)
○ Use this you do not know whether an object is locked and need to ○ You can drill down to “Detailed View”, “List View”,
update it
○ Assures that the contents of the step page (on clipboard) are current
or “Summary View”
and a lock is held on the corresponding object

13
○ Can hae threshold, charts, and trend reporting The operator who resolve the most itesms, and the number of
work objects that were created in a specific time of period.
(different from LV)
○ Analyze Process Performance – Work History Table

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


 “Resolved” work objects and selected flow rules.
 Present performance information in terms of tasks.
○ TRUE – one common technique for avoiding potential performance degradation
 How often was each kind of flow action selected by assignment
of the running transactional system, is to create a replicated database for
○ Change Dashboard – Data-Gadget-ICharts
reporting, refresh this data as needed. PRPC support the concept of a “reports
○ Customize the Monitor Activity favorite section under Analytics:
database”
○ System-User-MyRules
○ The basis for standard reporting is by work pool.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
○ Report Wizard
○ You launch Wizard from the toolbar of each report category on the *PERFORMANCE
Monitor Activity page.
○ If you cannot start, you do not have the ReportWizard privilege. ○ Why not good storing in PR_OTHER by default when you
○ Does it allow the best performance? HMM…maybe but verify. create a class group or work class? do not have exposed
columns nor indexes  queries from this table becomes slow.
○ JOIN
○ Performance warning when you select two properties for joining data ○ Byte Governor – number of bytes read from all queries in an interaction exeeds
that are completely unrelated in terms of values. Every row in the first the threshold
table (n rows) will be joined with the second table (m rows) resulting in a
result set of a total of m*n rows. ○ When new classes created, by default, they are mapped to PR_OTHER
○ Ideally no class should be mapped to any default tables
○ Title of report is determined by full description of report rule, but the name on the ○ PR_OTHER, PR_INDEX, PR_HISTORY, PR_Data
gadget is determined by a report model.
○ Custom activity for report should reside in “Embed-ListParams” for LV & SV ○ Watch 3 areas for performance
○ PRPC populates ‘exposed column’ upon Commit to DB automatically ○ Class
○ How to expose embedded properties ○ List View
○ Page – use ‘declare expression’ ○ Activity
○ PageList – use Rule-Declare-Index
○ OOTB Report ○ 3 Performance tools
○ Monitor Process Assignments – Assignment Table ○ PreFlight – find potential performance problems (design time)
 “Open” assignments – ○ PAL – find hidden performance problems (unit test)
 That are past their goals and deadlines. ○ Log/ALERT – find known problems (run time), (unit test)
 Show assignments by organization so you can determine
which group might need help ○ PreFlight –
 Data sources are from both worklist and workbasket. ○ Reports the results of several checks on the rules, which encourage
○ Monitor Process – Work Table good design and implementation practice.
 “Open”, unresolved work objects being processed ○ Warnings are instances of the Index-Warning class, which corresponds
 Compare number of open work objects today with the number to the pr_index_warnings database table.
a week ago, and so on. ○ You can create additional warnings that are specific to your environment
○ Analyze Process Quality – Work Table or development practices. – override the empty activity named
 “Resolved” work objects from one application.
14
CheckForCustomWarnings. This is called immediately after the ○ Alert msg can be retrieved from: MyAlerts, AES, Alert Log, (NOT PAL)
standard activity CheckForWarnings – use addWarning standard
function rule. ○ Automatic Event Services (AES)
○ You can also override the standard behavior of the Application Preflight ○ Reads the alerts for you
tool ○ Proactively emails management of health via “scorecard”
○ Do not prevent Save a rule (even if there is a warning) ○ Chart patterns & trends
○ Does not cover Enterprise Class Structure best practice – PreFlight is
about performance, not about improving reusability. ○ SMA (System Management Application)
○ Monitor and control - caches, agents, listeners, requestors, memory,
○ Write-Now (Obj-Save, etc.) defeats the benefits of deferred save function
prconfig.xml, threads, JDBC db connections, functions in library,
○ Rules Assembly significantly skews performance, PAL should be used after rules
prlogging.xml (logging level definition), remote logging (start/stop)
assembly
○ Operates one node at a time but can access any registered node
○ Logging Level Settings (prlogging.xml)
○ Details revealed by PAL
 Select a Loger and set a level (Alert, Debug, Error, Fatal, etc.)
○ PAL Int Count – how many times browser communicated w/ PRPC
 This implies that using SMA you can set prlogging.xml
○ PAL CPU Time – how computationally intensive; only by Windows
○ Garbage collector and log usage statistics.
system (not by Unix)
○ Open “Log Files”
○ PAL Rule Count - # of rules executed between readings
○ Open “Alert Log”
○ PAL Total Byte – how much data moved between client & server
○ Deployed as prsysmgmt.war file
○ PAL Detail Screen – reading/writing the Blob or pxPVStream to/from DB
○ Provide PegaRULES build information
○ Before UAT or Prod, ensure no logs nor alerts
○ BLOB advantages
○ Compressed for low storage overhead
○ Common Alerts (Tools > My Alerts)
○ No storage limit
○ DB Time – Root Causes – Indexing a table, SQL Syntax, Data filtering,
○ Data structure can be complex
record locking, DB server capacity, size of data returns (not actual data
○ No need DBAs – no need to create separate normalized table for
fetch); from the time SQL sent from PRPC to time DB responds; the
application specific, user-defined data.
actual fetching of rows is not included in calculating the time; other
possible cause for delay: too few connections in connection pool,
○ Common root causes of performance bottleneck
missing index, lock contention
○ External system
○ DB Bytes – Root Causes – List View, Summary View, Obj-List, etc.
○ Clipboard
○ Browser Interaction Time – PRPC response time for browser request
○ Browser
○ Connect Total Time – a connector method calls an external system and
○ Rules DB
is taking a long time.
○ Work DB
> Alert is generated in each of these cases when a threshold is exceeded.
○ Java App Server
○ DB Trace – debugging aid, comprehensive & detailed log of accesses to the ○ JVM
PRPC database ○ OS
○ PAL reading for Bytes read from db storage stream – how many bytes read from ○ CPU
pzPVStream ○ Network Overheads between systems
○ pxOutputBytes – the # of bytes sent to browser (related to Browser Interaction
Time) ○ PLA (PegaRULES Log Analyzer)

15
○ Day-by-day analysis ○ Adv: EASY
○ Disadv: user/password exposed
○ Application Profiler
○ Use in conjunction with PAL ○ Class loader – object that is responsible for loading class into memory
○ When enabled, the Profiler adds significant overhead to performance ○ External tables – no pxInskey, no pxObjClass
○ This logs system’s processing at the finest level of details – more ○ “Test Connectivity” on Data-EmailAccount checks connection but does not send
detailed than PAL  get every detail to activity step emails
○ Output is written to a CSV file in the PRPC temp directory ○ JAR – simple Java classes
○ Detailed trace about activity, when, and model rules. ○ WAR – JAR + entire web applications
○ Narrow down where time is being spent – dispays CPU and wall time for ○ EAR – JAR + WAR + EJB – Message-driven beans (MDB) are JMS listener,
each step. which requires EAR deployments.
○ Use WAR if no need to “2-phase commit”, JMS, EJB, J2EE Security, all of which
○ DB Trace requires EAR (heavy deployment)
○ When enabled, it creates a comprehensive and detailed log of accesses ○ No EAR for Tomcat – Tomcat is not full J2EE compliant
to the PRPC database – shows SQL statement and the elapsed time for ○ 2 phase commit – Java, JMS, EJB
each operation, and whether found in the rule cache. ○ For fast MQ message requirements – use WAR
○ Assist in tuning system performance
○ If users perceive that work items take a long time to process, the DB ○ Rule Instance cache
Trace facility might help point to where the time was being spent. ○ Holds data about reads from PRPC database – this is rule data only, not
○ Does not know how much memory is occupied by returned data including work object instances
○ Does not know about Bytes sent to browser ○ Memory Cache
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ○ When rule accessed at least 3 times or updated once
○ Contain XML of the rule

*GENERAL PRPC ARCHITECTUES ○ Rule Assembly cache –


○ 6R’s – Receive, Route, Report, Research, Respond, Resolve ○ Generating and compling Java code for rules in the work object
○ Rules in DB perform as well as straight Java code because of ‘intensive caching processing
operations’ ○ PRGenClasses
○ Two types of urgencies PRPC supports – Assignment, Work Object ○ Memory Cache
○ DB Connection Pooling – having db code create a new connection object on ○ When first time it generates java code & class files
every client request is expensive
○ RETE – very slow, lots of memory ○ Look Up List Cache
○ DB indexing – a data structure that improves the speed of searches operations in ○ Cache result of queries against PRPC db (reducing db access 
a table (PR_Other is not indexed; thus avoid using this) improves performance)
○ Load Balancing ○ Disk Cache
○ Ensures one single node in a cluster does not get overloaded
○ Session fail over – when one server fails, LB automatically switches to ○ Dictionary Cache
other server ○ Conclusion cache – Disk & memory cache
○ Incoming request hits LB first which optionally redirects to an HTTP  Property, Property Alias, Field Value
server and finally to the servlet container ○ Property definition cache – memory cache
○ If a rule is in dictionary cache, then it’s not in rule cache.
○ Use of prconfig.xml for DB connectivity
16
○ Static Content Cache ○ Tools.getDatabase() – it gets a connection to PegaRules db instance associated
○ Standard web browser cache w/ the current processing
○ Disk Cache ○ Obtain a lock using API – tools.getDatabase().getLockManager().lock(false)
○ Store 3 types – Rule-File-Binary, Rule-File-Text, Rle-File-Form
○ Each requestor runs within a Java thread
○ System pulse ○ Single threaded requestor – only one at a time
○ Always run in all environments ○ Purpose is namespace – there can be many “Threads”
○ SMA – shows the time and date of the most recent ‘pulse’ ○ Child requestors: e.g. Connect-* methods can be run “in parallel”
○ Pega-RULES agent
○ Flagging a rule as ‘dirty’ in cache ○ Agents are autonomous & asynchronous
○ Doesn’t really synchronize the rule cache, simple ‘flags’ ○ 3 standard agents: Pega-Procom, Pega-Rules, Pega-IntSvcs
○ Always run in all environments ○ One agent per ruleset – there are versions
○ Local lookup list cache deletions ○ Agent Manager regularly generates agent schedules based on agent
○ Each node must be updated w/ rule changes rules. Rule-Agent-Queue (Agent) vs. Data-Agent-Queue(Agent
○ E.g. saving a rule change will trigger, register change in pr_sys_updates Schedule) – you do not need to manually create agent schedule; it is
cache, all nodes record in this table configured automatically by AM.
○ Once per minute, the pulse on each node wakes up and queries the ○ Agent modes: Standard (when let PRPC do the scheduling and
table – standard PRPC agent transaction handling), Legacy, Advanced

○ Blob ○ Debugging an Agent


○ pzPVStream – not always required to have ○ Use Tracer – trace agents which are running on the same node where
○ compressed – storage efficiency the tracing is occurring. Tracing an agent is a bit different, as the
○ Encrypted – security agents can run quickly and be one before Tracer can catch them.
○ Contains complex data structure – flexible 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
○ All classes under class group are mapped to a same table the agent and clicking the “Delay” button at the top.
○ Locks are held at the requestor level ○ Use Log File – change prlogging.xml – enable logging for an activity ran
○ RDB-* do automatic Commit by an agent;
○ Every rule must belong to a ruleset ○ 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.
○ Most db updates requires that the requestor holds a lock com.pega.pegarules.engine.context.Agent) – this can be done in SMA
○ Obj-Open ○ Log-Agent  this is only useful for debugging SLA agents.
○ Obj-Open-By-Handle
○ Obj-Refresh-And-Lock ○ prconfig.xml
○ Timeout intervals
○ First Commit does not require a lock – creation of a new work object ○ Configure Alert Files (prconfig.xml)
○ DB locks vs. Object lock (requestor) ○ Encryption is configured here
○ Commit/Rollback in PRPC happens @ Thread level (PRThread) ○ Configure DB connectivity – user/passwd, connection info.
○ Not every rule type in PRPC has to be compiled into a java class file (e.g. Portal, ○ SMA can allow viewing prconfig.xml (but not editing)
Skill) ○ Located in “APP_INF\lib\pega\prresrources.jar” in EAR deployment
○ How do you get the info who has the lock? Leverage ‘LockInfoPage’ ○ Located in “WEB-INF\classes” for WAR deployment

17
○ prlogging.xlm ○ Enterprise Reuse Organizational Layer –
○ Set the level of logging details ○ Enterprise-wide extension to Work- classes
○ Tools > Logging Level Setting or use SMA to change the logging level. ○ E.g. – MyCo-, MyCo-FW-, MyCo-Data-, MyCo-Int-
○ Divisional Reuse layer – e.g. MyCo-Div1-Data-
○ PRPC Threads (PRThread)
○ Framework layer – stores base rules for a given application; serves as the basis
○ Different from java threads
for an implementation; can stand on its own; the actual mapping of the
○ Each requestor has one OS thread but can have more than one Thread
application to production database tables occurs in the implementation layer; e.g.
○ Thread = namespace which allows a Requestor to have separate create connect rules and any activities that call Connect rules in the Framework
clipboard page that do not interact each other. layer; contains both Customer-Built Framework and Pega-Built Framework;
include ‘templates’ for the service rule/service package with the CBF that can be
○ Bean Managed Transaction cloned for each implementation; FL is a generalized layer that enables assets to
○ PRPC directly uses the Java Transaction API (JTA) to begin, commit, or be used across implementation; FL is created by Application Accelerator;
roll back changes. That is, PRPC manages the transaction.
○ Calling methods such as Commit and the Obj-Save and Obj-Delete ○ How to improve reusability
methods with the WriteNow parameter selected cause operations to ○ Document
occur immediately. ○ Parameterize

○ Container Managed Transaction


○ Implementation Layer – class group, work classes; mapping to the production
○ E.g. WebSphere, WebLogic
db happens here; IL is the specialized layer where assets specific only to the
○ PRPC participates as one resource in a distributed transaction. implementation are placed; IL is created by Application Accelerator.
○ Commit and WriteNow parameters are ignored – all operations are
deferred until the container completes the transaction  PRPC does ○ Primary purpose of ruleset is ‘deployment’
not manage the transaction.
○ The application server (container) - WebSphere, WebLogic, etc. - ○ 10 steps of rule resolution
authenticates the user and PRPC just “lets them in” ○ Check cache
○ Rule types in PRPC that support CMT – Java, JMS, EJB (EAR ○ Gather all rules’ purposes
Deployment) ○ Discard – Availability=No
○ Discard – RS & vrsions not on Requestor’s list (RuleSet)
○ JDBC Transaction
○ Discard – Rules not in the class hierarchy (class)
○ Controlled by the transaction manager of DBMS.
○ Rank the rules (Class, RS, Circum)
○ Cache them
○ When PRPC is deployed as an EAR file, it can participate in both Container
○ Find BEST instances (circumstance)
Managed Transaction and Bean Managed Transaction – provided you are using
○ Ensure BEST instances NOT Blocked
a JDBC driver with XA support.
○ Check if Requestor has permission
○ When PRPC is deployed as WAR file, PRPC uses DB commits without
○ Application Accelerator supports creation of Frameworks & Enterprise Reuse
transactions.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ○ AA creates generalized & specialized layers

○ 4 Layers
*Rule Resolution & Achieving Reusability ○ PRPC Shared Product – OOTB PRPC
○ PRPC Base Product Layer – do not define enterprise wide rules here ○ Enterprise Shared Product – a library of extension to PRPC

18
○ Generalized App Layer – generic base application ○ Before PRPC 5.2, a rule in a higher RS version would rank higher than
○ Organizational & Specialized App one in a lower RS version regardless of the circumstances.
○ After PRPC 5.2, all rules with circumstances will rank ahead of
○ Higher the layer, more potential for reuse unqualified rules even if the unqualified rule is in a higher RuleSet
version (assuming rules with the same RuleSet name and the same
○ Reuse – “Work-“ activities, Util function, activity & flow defined in generalized class)
layer  Base Rule Flag - The base rule flag can only be applied to non-
○ “Save As” is not reuse circumstanced rule instances. The base rule flag will prevent any
circumstanced instance in the same class and RuleSet below a
○ Specialization – locale, business line, product line, client, date RuleSet version from being found by rule resolution. In essence the
base rule flag allows PRPC to behave similar to how it behaved
○ By Class – security, reporting, work object persistence; class takes before version 5.2.
precedence during rule resolution
○ By RuleSet – promotion purpose ○ BEST Practice
○ By Circumstance – having a small # of different values, property-level, ○ Define activities that create work objects in the implementation layer
date, date range; happens after Class & RS resolutions ○ Create connect rules and any activities that call connect rules in the
Framework Layer.
○ Is not to have work object classes in production rulesets.
○ Circumstance
○ Building many steps in an activity is BAD.
○ Specialize based on a property and/or a date.
○ Circumstance resolution occurs after class and ruleset resolution ○ Parameterizing class names, activities, sections, HTML properties, improve
○ Base rule must exist before a circumstanced version can be created quality of your rules  Improves reusability
○ Property circ. – e.g. .MembershipType=Gold ○ Building MANY steps in activity – poor reusability
 Once you have created the first circumstanced rule, then choosing ○ Good way to minimize need for hard-coded class names – use the new class
Save As to create additional copies of that rule will display a parameter on the Page-New method & pass in a dynamic value from clipboard
dropdown with the previously-chosen property name, instead of a property
field with a SmartPrompt. ○ Specialization by RS can be problematic because RS lists are static &
specialization can limit changes to what user can do.
○ 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
○ It is not possible to save a rule into ruleset that is a prerequisite for the class the
rule applies to.
○ Date circ. – compares a single property on the clipboard to the as-of ○ It is best practice to use only the major and minor version numbers in access
date on the rule. The rule that has the most recent as-of circumstance groups when specifying production ruleset
date is selected. A future date will not be used – the as-of-date is the ○ It’s best practice to have only one unlocked Rule-Ruleset-version per Ruleset for
“nearest” before the specified date value a single release of a project in development.
○ Date-range circ. – Date-Range circumstance allows you to use the ○ Ruleset version consists of three parts: major, minor, revision (03-01-02)
current system time to determine which rule is applicable for this date
range. ○ Production RuleSet
○ Base rule is selected if none of the conditions matches. ○ Associated with access group and defined separately from RuleSets in
application rule.
○ Before 5.2, higher RS overrules, After 5.2, circumstance in lower RS over rules ○ Unlocked so that modifications can be made to an application while it is
(unless there is a base rule that overrules the circumstances in the lower RS) running on a production system.

19
○ Best practice is not to have work object classes in production RS. lower-version rules with the same RuleSet and visible key from
○ Best practice is, a production RS which is referenced in an access being selected by rule resolution.
group should also be listed in the application rule specified in that ○ However, a blocked rule may also block other rules in any
access group.
○ E.g. a manager may want to modify the selection criteria for reports. RuleSet, and a blocked rule stops rule resolution from finding
Anyone can run a report in a locked RS, but managers cannot create rules in higher Applies To classes. A withdrawn rule affects
new reports unless they have access to an unlocked RS. other rules only in one RuleSet and one Applies To class.

○ Application RuleSet ○ Skimming


○ Locked for deployment to another system. ○ Skimming does not delete any rules
○ Tools > Rule Management > Skim a RuleSet.
○ Availability = Blocked rule ○ Skimming copies rules with availability Yes, No/Draft, Withdrawn, and
○ Blocked rules are still included in ZIP archive Final – exclude Blocked.
○ if you want rule resolution processing to halt (with no rule ○ Skimming simplifies the top most rule versions in a RuleSet after
found) when it encounters this rule  throws an exception multiple iterative development cycles. For example, if the highest
○ Cannot configure prconfig.xml to ignore the exception version was previously 02-21-06:
 After a major skim, the skimmed version number is 03-01-01.
○ Availability = Withdrawn rule  After a minor skim, the skimmed version number is 02-22-01.
○ If you need to delete a rule in a locked ruleset version, it  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.
is not possible to delete. But, you can withdraw the
○ Rules in lower versions of the same rule are not copied by the skim
rule. operation.
○ Those rules are removed from consideration during the +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
rule resolution process – all rules in lower version in
same RuleSet and same AppliesTo class. *Other
○ Does not throw an exception – ignored and processed.
• History – what does it include?
○ Time, Description, Operator, Flow
○ Availability = No/Draft
○ SLA agent processing
○ The rule is ignored – one rule only – same rule in the next higher
○ Flow
version or in higher AppliesTo class will be selected.
○ When a work is routed to a worklist
○ Withdraw = this option withdraws the rule and all rules in lower version
○ When a work is routed to a workbasket
of the same ruleset – where No/Draft ignores just one specific rule
○ When UpdateStatus – Open, Pending, Resolved, etc.
○ Ah, this makes sense – e.g. you are creating an activity – using No/Draft
○ When a work object is created
option you can compare with the rule in a different version during
debugging
• Garbage Collector
○ Blocked vs. Withdrawn rule ○ Clean up memory no longer needed
○ PegaRULES agent periodically forces some memory segments to be
○ A blocked rule and a withdrawn rule are both invisible to rule
available for garbage collection using an activity (Code-.SystemCleaner)
resolution(really? Thought rule resolution finds blocked rules). ○ Use Page-Remove to unleash pages that are no longer needed.
Similarly, both blocked rules and withdrawn rules prevent

20
○ Garbage collection can be done via SMA – this sometimes cause
frequent and unwanted garbage collection operations that affects
performance.
○ 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
○ Ensures that data entry on a work object form is correct before the form
is submitted to the application server – reduce HTTP traffic.
○ 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.
○ Select “Enable Client Side Validation?” under the HTML tab of the
Harness form.
○ 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 Rule


○ Edit validate processing occurs only later, when an activity uses the
Property-Validate method with that property or uses client-side
format validation.
○ 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

S-ar putea să vă placă și