This repository has been archived by the owner on Mar 5, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy patharticle-convpb.html
228 lines (206 loc) · 10.7 KB
/
article-convpb.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Salesforce Discord Community</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- Le styles -->
<link href="assets/css/bootstrap.css" rel="stylesheet">
<link href="assets/css/bootstrap-responsive.css" rel="stylesheet">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.12/css/all.css" integrity="sha384-G0fIWCsCzJIMAVNQPfjH08cyYaUtMwjJwqiRKxxE/rx96Uroj1BtIQ6MLJuheaO9" crossorigin="anonymous">
<link href="assets/css/style.css" rel="stylesheet">
<link href='http://fonts.googleapis.com/css?family=Raleway:400,500,600,700,800' rel='stylesheet' type='text/css'>
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="assets/js/html5shiv.js"></script>
<![endif]-->
<!-- Fav and touch icons -->
<link rel="apple-touch-icon" sizes="180x180" href="/assets/ico/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/ico/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/assets/ico/favicon-16x16.png">
<link rel="manifest" href="/assets/ico/site.webmanifest">
<link rel="mask-icon" href="/assets/ico/safari-pinned-tab.svg" color="#5bbad5">
<link rel="shortcut icon" href="/assets/ico/favicon.ico">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-config" content="/assets/ico/browserconfig.xml">
<meta name="theme-color" content="#ffffff">
</head>
<body>
<!-- NAVBAR
================================================== -->
<div class="banner navbar navbar-static-top navbar-inverse">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="index.html"><img src="assets/img/logo.png" width=70px></a>
<!-- Responsive Navbar -->
<div id="nav-main">
<ul id="menu" class="nav">
<li><a href="index.html">Home</a></li>
<li class="active"><a href="wiki-index.html">Knowledge Base</a></li>
<li><a href="faq.html">Faq</a></li>
<!-- Read about Bootstrap dropdowns at http://twitter.github.com/bootstrap/javascript.html#dropdowns -->
</ul>
</div><!--/.nav-collapse -->
</div> <!-- /.container -->
</div><!-- /.navbar-inner -->
</div><!-- /.navbar -->
<!-- PAGE HEADER -->
<div id="page-header-container">
<div class="container">
<div class="page-header row">
<div class="span8">
<h1>The SFXD wiki</h1>
<p class="tagline">Literally one page</p>
</div>
</div>
</div>
</div>
<!-- PAGE CONTENT -->
<div id="wrap" class="container" role="document">
<div id="content" class="row">
<div id="main" class="single-post span12" role="main">
<article class="post type-post">
<header>
<h1 class="entry-title">Process Builder Naming Convention</h1>
<div class="post-meta">
<time class="updated" pubdate>Last Updated: June 13, 2018</time>
</div>
</header>
<div class="page-main">
<h1><a id="Process_Builder_Conventions_0"></a>Process Builder Conventions</h1>
<p>All Naming Conventions Are <a href="<a href="https://www.ietf.org/rfc/rfc2119.txt">https://www.ietf.org/rfc/rfc2119.txt</a>“>RFC 2119</a> and <a href=”<a href="https://tools.ietf.org/html/rfc6919">https://tools.ietf.org/html/rfc6919</a>">RFC 6919</a> compliant.</p>
<h2><a id="General_Conventions_4"></a>General Conventions</h2>
<ol>
<li>If there are APEX triggers firing on an object, Process Builder <strong><em>SHOULD NOT</em></strong> be used. <em>*1</em></li>
<li>If Process Builders existed before building the APEX triggers, the Process Builders <strong><em>SHOULD</em></strong> be replaced by APEX triggers and classes.</li>
<li>Process Builders <strong><em>REALLY SHOULD NOT</em></strong> fire on, update, or otherwise reference, Person Accounts.</li>
<li>Process Builders <strong><em>REALLY SHOULD NOT</em></strong> perform complex operations on records that can be massively inserted/updated as a routine part of organization usage.</li>
<li>Process Builders <strong><em>MUST NOT</em></strong> call a Flow if firing on an object that can be massively inserted/updated as a routine part of organization usage.</li>
<li>Process Builders execution <strong><em>SHOULD</em></strong> be limited to the exact cases where they are needed. <em>*2</em>. In all cases, a consultant <strong><em>SHOULD</em></strong> limit the number of process builders executing on an object.</li>
</ol>
<h2><a id="Structural_Conventions_14"></a>Structural Conventions</h2>
<ol>
<li>Generally, a consultant <strong><em>SHOULD</em></strong> build Invocable Process Builders, and Invoke them from one single Process on the trigerring Object.
<ul>
<li>This is by opposition to creating one process builder by task.</li>
<li>Invokable process builders cannot be used to trigger time-dependent actions.</li>
</ul>
</li>
<li>Process Builders generally <strong><em>SHOULD NOT</em></strong> use the “no criteria” option of the Decision Diamonds.</li>
<li>Whenever possible, multiple Process Builders on an object should be migrated to a single Process Builder, with different actions evaluated one after the other. This is now officially mandated by Salesforce.</li>
</ol>
<h2><a id="Naming_Conventions_22"></a>Naming Conventions</h2>
<ol>
<li>A Process Builder name <strong><em>SHALL</em></strong> always start by <code>PB</code>, followed by a number corresponding to the number of process builders in the Organization, followed by an underscore.<br>
a. If the Process Builder Triggers other Process Builders, it <strong><em>SHALL</em></strong> always start by <code>TPB</code> instead.<br>
b. If the Process Builder is Invoked by other Process Builders, it <strong><em>SHALL</em></strong> always start by <code>IPB</code> instead.</li>
<li>The end of a Process Builder name <strong><em>SHOULD</em></strong> always be:
<ul>
<li>the name of the object, in the case of a Triggering Process Builder (TPB)</li>
<li>the action carried out, in the case of an Invoked Process Builder (IPB)</li>
<li>the trigger and action, in the cas of a standalone Process Builder (PB)</li>
</ul>
</li>
<li>A Process Builder name <strong><em>COULD</em></strong> contain either <code>C</code>, <code>CE</code>, or <code>CES</code> wrapped by underscores, to show if the PB triggers on Creation, Creation and Edition, or Subsequent Modifications that Fill Criteria. The default assumed setting is <code>CE</code> if none is written. <em>*3</em></li>
<li>All Process Builder Triggers MUST have a description detailing their purpose.</li>
<li>A Process Builder Decision Diamond <strong><em>SHALL</em></strong> be named after the criteria that are used in the most precise manner possible.</li>
<li>A Process Builder Action <strong><em>SHALL</em></strong> be named after the action being carried out in the most precise manner possible.</li>
</ol>
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Process Builder</td>
<td>TPB01_Opportunity</td>
<td>This Process Builder invokes all invocable Opportunity Process builders</td>
</tr>
<tr>
<td>Process Builder</td>
<td>IPB01_SetOwnerTarget</td>
<td>Copies over target from Owner to calculate monthly efficiency</td>
</tr>
<tr>
<td>Process Builder</td>
<td>PB01_ContactBirthdatEmail</td>
<td>Sends a birthday email on the contact’s birthday.</td>
</tr>
<tr>
<td>Decision Diamond</td>
<td>Status is “Approved”</td>
<td>#N/A</td>
</tr>
<tr>
<td>Action</td>
<td>Sets Contact Scoring to 10</td>
<td>#N/A</td>
</tr>
<tr>
<td>Process Builder (possible variation)</td>
<td>TPB01_Opportunity</td>
<td>This Process Builder invokes all invocable Opportunity Process builders. Also Handles various actions such as birthday emails.</td>
</tr>
</tbody>
</table>
<blockquote>
<p><em>*1 This is a best practice, but it should be noted that for smaller organizations, triggers and process builders may coexist on the same objects…</em><br>
<em>*2 Note that contrary to Workflows and Validation Rules, you cannot add a bypass to a Process Builders, as you cannot target User fields on decisions. As sucj, limiting the scope of execution of the process builder is paramount…</em><br>
<em>*3 This is the default setting for Process Builders. To activate CES, one must click on “advanced” on the Decision diamond.</em></p>
</blockquote>
</div></div>
</div>
</div><!-- /#content -->
</div><!-- /#wrap -->
<!-- FOOTER -->
<footer>
<div class="main-footer">
</div>
<!-- Sub footer -->
<div class="sub-footer">
<div class="container">
<div id="social-icons">
<ul>
<li class="social-icon discord">
<a class="fade-img" href="http://discord.gg" target="_blank" rel="tooltip" title="Discord">
<img src="assets/img/social/icons_discord.png" alt="Discord" />
</a>
</li>
<li class="social-icon salesforce">
<a class="fade-img" href="http://www.salesforce.com" target="_blank" rel="tooltip" title="Salesforce">
<img src="assets/img/social/icons_salesforce.png" alt="Salesforce" />
</a>
</li>
</ul>
</div>
<div class="copyright-text">Copyright 2018. Powered by <a href='http://github.io/'>GitHub</a>
</div>
</div>
</div>
</footer>
<!-- Javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="assets/js/jquery.js"></script>
<script src="assets/js/bootstrap-transition.js"></script>
<script src="assets/js/bootstrap-alert.js"></script>
<script src="assets/js/bootstrap-modal.js"></script>
<script src="assets/js/bootstrap-dropdown.js"></script>
<script src="assets/js/bootstrap-tab.js"></script>
<script src="assets/js/bootstrap-tooltip.js"></script>
<script src="assets/js/bootstrap-popover.js"></script>
<script src="assets/js/bootstrap-button.js"></script>
<script src="assets/js/bootstrap-collapse.js"></script>
<script src="assets/js/bootstrap-carousel.js"></script>
<script type="text/javascript" src="assets/js/jquery.autocomplete.js"></script>
<script type="text/javascript" src="assets/js/jquery.fitvids.js"></script>
<script type="text/javascript" src="assets/js/application.js"></script>
<script src="assets/js/holder/holder.js"></script>
</body>
</html>