Академический Документы
Профессиональный Документы
Культура Документы
Version 3.3
Copyright 2013
Pegasystems Inc., Cambridge, MA
All rights reserved.
This document describes products and services of Pegasystems Inc. It may contain trade
secrets and proprietary information. The document and product are protected by copyright
and distributed under licenses restricting their use, copying distribution, or transmittal in
any form without prior written authorization of Pegasystems Inc.
This document is current as of the date of publication only. Changes in the document may
be made from time to time at the discretion of Pegasystems. This document remains the
property of Pegasystems and must be returned to it upon request. This document does not
imply any commitment to offer or deliver the products or services described.
This document may include references to Pegasystems product features that have not been
licensed by your company. If you have questions about whether a particular capability is
included in your installation, please consult your Pegasystems service consultant.
For Pegasystems trademarks and registered trademarks, all rights reserved. Other brand or
product names are trademarks of their respective holders.
Although Pegasystems Inc. strives for accuracy in its publications, any publication may
contain inaccuracies or typographical errors. This document or Help System could contain
technical inaccuracies or typographical errors. Changes are periodically added to the
information herein. Pegasystems Inc. may make improvements and/or changes in the
information described herein at any time.
Contents
About This Document ...................................................................................... 1
Intended Audience........................................................................................... 1
Related Documents .......................................................................................... 1
Configuration Checklist and Guidelines ........................................................... 2
1. Common to all PRPC rules ............................................................................ 3
2. Property Rules ............................................................................................ 4
3. Edit Validate Rules ...................................................................................... 4
4. Flow Rules ................................................................................................. 5
5. When Rules................................................................................................ 5
6. Section Rules ............................................................................................. 5
7. Flow Action Rules........................................................................................ 6
8. Class Rules ................................................................................................. 6
9. Activity Rules .............................................................................................. 6
10. Logging .................................................................................................... 8
11. Utility Functions ......................................................................................... 9
12. Database .................................................................................................. 9
13. Agents .................................................................................................... 10
Intended Audience
The document is intended be shared with Stream Leads and System Architects. Having
insight into how their work is reviewed for quality by the Technical lead will help them build
a better configuration.
Related Documents
Name
Location
Document
PDN
https://pdn.pega.com/implementationmethodology-dco/prpc-63-dictionary-of-rulewarnings
PDN
Ten Guardrails to
Success
PDN
ID 26482
ID 26160
ID 25685
https://pdn.pega.com/implementationmethodology-dco/standards-for-rule-names-tablesand-other-objects
https://pdn.pega.com/implementationmethodology-dco/ten-guardrails-to-success
Code
1.1
1.2
Is it NOT possible to use an Out of the Box (OOTB) rule instead and avoid creating this
rule?
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
OOTB rules are much more robust and time tested, so they are always preferred
over custom rules.
Can an existing generalized application rule be reused in place of this rule?
Rule reuse helps reduce the overall number of rules in the Rules DB, which
makes the application easy to maintain over its lifetime.
Is the Rule name in compliance with Project Naming Conventions?
Following naming conventions makes code/rule maintenance easier.
Is the Rule Purpose evident from the rule name?
Follow the rule naming conventions documented in the PDN article ID 26160
titled Standards for rule names, tables and other objects.
Does the rule belong to the Appropriate Rule set?
Placing the rule in the most appropriate RuleSet promotes rule reuse. Delegated
rules should be in a production RuleSet (or anything you want to be able to
change in production without a full test cycle, but only put appropriate rule
types in here - e.g. activities are too easy to make a mistake in and changes
should have a test cycle)
Does the rule belong to the Appropriate RuleSet Version?
Wrong RuleSet versions could lead to rule resolution and access related issues.
Was the rule created in the Appropriate Class / Class Hierarchy?
Placing the rule under the most appropriate class is necessary for rule reuse and
proper rule resolution.
Does the rules Short Description explain the rule adequately?
Is the rules Full Description well documented?
A rules full description is important for long-term rule maintenance and for the
purpose of auto-generated documentation. Describe what this rule does in a
couple sentences.
Is the rules Usage properly documented?
Rule usage documentation is important for long-term rule maintenance and for
the purpose of auto-generated documentation. Explain how to use the rule, how
it is used, how parameters should be set, or reasons for non-standard coding
practices.
Does the Rule Circumstance make sense for this rule (If the rule is
circumstanced)
Rule circumstancing is a powerful feature of PRPC, it makes the rule easy to
maintain. However, improper usage could lead to unexpected results.
Topic
Code
Does this rule comply with the Build for Change approach?
The prime focus of PRPC based solutions is to build change-aware applications.
Each and every rule in PRPC should be created & viewed with the Build For
Change slogan in mind.
Does this rule comply with the best practice recommendation - Calculate and
Edit Declaratively, Not Procedurally?
Whenever the value of a property is calculated or validated, you must use
declarative rules wherever appropriate.
Create a Declare Expressions rule instead of using a Property-Set method in an
activity.
Use a Declare Constraints rule instead of a Validation rule.
Are any preflight warnings expressively explained and justified in the History
tab, or in the rules custom fields?
1.13
1.14
1.15
2. Property Rules
Topic
Code
2.1
Code
3.1
4. Flow Rules
Topic
Code
4.1
4.2
4.3
5. When Rules
Topic
Code
5.1
6. Section Rules
Topic
Code
6.1
6.2
When previewing the code, does the section occupy 100% of the width?
Do not drop sections inside layout cells. Place them above or below layouts.
Is the 'Localize?' box checked, when appropriate?
If your project is using localization this should be true for every section.
Code
7.1
Do the activities used in the flow action have Pre and Post prefixes in the
names?
Using pre and post prefixes to activities called from the flow action makes them
easier to identify.
8. Class Rules
Topic
Code
8.1
9. Activity Rules
Topic
Code
9.1
9.2
9.3
9.4
9.5
9.6
Topic
Code
9.7
9.8
9.9
9.10
9.11
9.12
9.13
9.14
9.15
9.16
9.17
Topic
Code
9.18
If you are performing a Commit in an activity that is not part of flow processing,
you should perform Rollback if an error occurs.
This releases any held locks.
In most cases, Obj-Open/Obj-Open-By-Handle/Obj-Refresh-And-Lock should
have Release on Commit checked.
If it is not, and the relevant class supports locking, the Page-Unlock method or
Work-.WorkUnlock activity should be invoked to release the lock when it is no
longer required.
Where clause fields in Obj-Browse etc. should correspond to indexed columns.
Unexposed properties should never be used as selection criteria in report
browses. An exception is if an unexposed column is being selected to force BLOB
retrieval and knowing the consequences.
9.19
9.20
10. Logging
Topic
Code
10.1
10.2
10.3
Code
11.1
11.2
11.3
11.4
11.5
12. Database
Topic
Code
12.1
12.2
13. Agents
Topic
Code
13.1
13.2