Академический Документы
Профессиональный Документы
Культура Документы
*BRE........................................................................2
*UI...........................................................................3
*Implementation Tools.............................................5
*Security.................................................................8
*BPM.....................................................................11
*REPORT................................................................13
*PERFORMANCE......................................................14
*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
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.
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
○ 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
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
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
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
○ 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.
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
• 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