ApprovalProcess
Metadata メタデータ型を拡張し、その fullName 項目を継承します。
ファイルのサフィックスおよびディレクトリの場所
ApprovalProcess コンポーネントのサフィックスは .approvalProcess で、approvalProcesses フォルダーに保存されます。
バージョン
ApprovalProcess コンポーネントは、API バージョン 28.0 以降で使用できます。
項目
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| active | boolean | 必須。承認プロセスがアクティブかどうか。 承認プロセスを有効にした後は、プロセスが無効であっても、ステップの追加、削除、順序の変更、プロセスの却下やスキップの動作の変更はできません。 |
| allowRecall | boolean | 申請者に承認申請の取り消しを許可するかどうか。 false に設定されている場合、システム管理者のみが承認申請を取り消すことができます。 |
| allowedSubmitters | ApprovalSubmitter[] | 必須。レコードの承認申請が許可されているユーザーの配列。 |
| approvalPageFields | ApprovalPageField | 承認者がレコードを承認または却下する承認ページに表示する項目を指定します。デフォルトでは、次の項目が表示されます。
Salesforce モバイルアプリケーションで通知を有効にしている場合、承認者がモバイルデバイスでこの項目のリストを参照可能になります。ユーザーがレコードの承認または却下を決定するために必要な項目のみを選択してください。 |
| approvalStep | ApprovalStep[] | 承認ステップ定義の配列。 |
| description | string | 承認プロセスを説明します。 |
| emailTemplate | string | 承認申請に使用する Classic メールテンプレートを指定します。指定されていない場合は、デフォルトのメールテンプレートが使用されます。 Lightning メールテンプレートは、パッケージ化できません。Classic メールテンプレートを使用することをお勧めします。 承認プロセスによってユーザーへ承認申請が割り当てられると、Salesforce からそのユーザーに対して承認申請メールが送信されます。 |
| enableMobileDeviceAccess | boolean | ユーザーが Salesforce にログインせずに、モバイルデバイスのブラウザーを含む任意のブラウザーから承認ページの外部バージョンにアクセスできるかどうかを示します。ユーザーインターフェースの [セキュリティ設定] に対応します。 true に設定されている場合、承認ステップに type adhoc の承認者を含めることはできません。 false に設定されている場合、承認者は Salesforce にログインして承認ページにアクセスする必要があります。 |
| entryCriteria | ApprovalEntryCriteria | 承認プロセスの対象となるレコードを決定します。承認プロセスをすべてのレコードに許可する場合は、この項目を除外します。 |
| finalApprovalActions | ApprovalAction | レコードに対するすべての承認申請が終了したときに実行する���ークフローアクションを指定します。 |
| finalApprovalRecordLock | boolean | 必要なすべての承認が終了した後でレコードをロックしたままにするかどうか。デフォルト: false。 |
| finalRejectionActions | ApprovalAction | レコードが最終却下状態に移行した後で実行するワークフローアクションを指定します。 |
| finalRejectionRecordLock | boolean | 最終的に却下された後でレコードをロックしたままにするかどうか。デフォルト: false。 |
| initialSubmissionActions | ApprovalAction | レコードの最初の承認申請時に実行するワークフローアクションを指定します。 |
| label | string | 必須。承認プロセスの名前。 |
| nextAutomatedApprover | NextAutomatedApprover | 承認ステップに承認者を自動割り当てするために使用できる、標準またはカスタムユーザー階層項目を指定します。 この項目を除外すると、承認ステップでユーザー階層項目を使用して承認者の自動割り当てができなくなります。 |
| postTemplate | string | Chatter での承認に使用する投稿テンプレート。 Chatter 投稿承認通知は、フィード追跡が有効になっているオブジェクトに関連付けられている承認プロセスでのみ使用可能です。 |
| recallActions | ApprovalAction | 未承認の申請を取り下げたときに実行するワークフローアクションを指定します。 |
| recordEditability | RecordEditabilityType (string 型の列挙) | 未承認のレコードを編集できるユーザーを指定します。レコードは承認申請されると自動的にロックされ、承認プロセス中に他のユーザーがそのレコードを編集するのを防ぎます。有効な値は、次のとおりです。
|
| showApprovalHistory | boolean | 承認申請の詳細を承認者が表示できレコードを承認または却下できる承認ページに、[承認履歴] 関連リストを追加するかどうか。[承認履歴] 関連リストは、レコードの承認プロセスを追跡します。 [承認履歴] 関連リストをレコード詳細ページおよび編集ページにも追加する場合は、Salesforce ユーザーインターフェースを使用して指定のオブジェクトのページレイアウトをカスタマイズします。 |
ApprovalSubmitter
レコードの承認を申請できるユーザーまたはユーザーセットを表します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| submitter | string | レコードの承認を申請できる特定のユーザーまたはユーザーセットを識別します。次のタイプが指定され submitter 項目が無視される場合を除き、この項目は必須です。
例:
|
| type | ProcessSubmitterType (string 型の列挙) | 必須。レコードの承認を申請できるユーザーまたはユーザーセットの種別。有効な値は、次のとおりです。
|
ApprovalPageField
承認申請の詳細を承認者が表示できレコードを承認または却下できる承認ページに表示するために選択された項目を表します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| field | string[] | 承認者がレコードを承認または却下する承認ページに表示する項目の配列。 |
ApprovalStep
承認プロセスのステップを表します。承認ステップで、特定の承認プロセスに一連の承認を定義します。各ステップで、そのステップの条件を満たすレコード、承認申請を割り当てるユーザー、各代理承認者による申請への返答を許可するかどうかを決定します。最初のステップでは、レコードがそのステップの条件を満たさない場合の動作を指定します。その後のステップでは、承認者が申請を却下した場合の動作を指定します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| allowDelegate | boolean | 承認プロセスのこのステップで代理承認者を許可するかどうか。代理承認者は、割り当てられた承認者により承認申請の承認代理として任命されたユーザーです。 |
| approvalActions | ApprovalAction | 承認プロセスのこのステップでレコードが承認されたときに実行するワークフローアクションを指定します。 |
| assignedApprover | ApprovalStepApprover | 承認プロセスのこのステップに割り当てられた承認者を指定します。 |
| description | string | 承認ステップを説明します。 |
| entryCriteria | ApprovalEntryCriteria | 承認プロセスのこのステップの対象となるレコードを決定します。 |
| ifCriteriaNotMet | StepCriteriaNotMetType (string 型の列挙) | 開始条件を満たさないレコードに対する処理を指定します。有効な値は、次のとおりです。
|
| label | string | 必須。承認ステップの名前。 |
| name | string | 必須。承認ステップの一意の名前。アンダースコアと英数字のみを含むこと、最初は文字であること、空白は使用しない、最後にアンダースコアを使用しない、2 つ続けてアンダースコアを使用しないという制約があります。一意性は、特定の承認プロセス内でのみ必要です。 |
| rejectBehavior | ApprovalStepRejectBehavior | 承認プロセスの最初のステップを除き必須。承認プロセスの最初のステップでない場合に、承認者がこの承認ステップで申請を却下したときの処理を指定します。 承認プロセスの最初のステップで承認者が申請を却下した場合、却下時の処理は finalRejectionActions によって決まります。 |
| rejectionActions | ApprovalAction | 承認プロセスのこのステップでレコードが却下されたときに実行するワークフローアクションを指定します。 |
ApprovalAction
承認プロセスの結果として発生するアクションを表します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| action | WorkflowActionReference[] | 実行するワークフローアクションの配列。 |
ApprovalStepApprover
承認ステップに割り当てられた承認者を表します。各ステップでは、最大で 25 個の承認者がサポートされます。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| approver | Approver[] | 承認プロセスのこのステップに割り当てられた承認者の配列。 |
| whenMultipleApprovers | RoutingType (string 型の列挙) | ステップに複数の承認者が割り当てられている場合の、承認または却下の処理方法を指定します。有効な値は、次のとおりです。
|
Approver
承認ステップに割り当てられた承認者を表します。Salesforce ヘルプの「承認設定に関する考慮事項」を参照してください。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| name | string | 割り当てられた承認者を特定します。type が次のいずれかで name が無視される場合を除き、この項目は必須です。
|
| type | NextOwnerType (string 型の列挙) |
name の指定と type を組み合わせることで、割り当てられた承認者を特定できます。有効な値は、次のとおりです。
|
ApprovalEntryCriteria
レコードが承認プロセスまたは承認ステップに進むための条件を表します。検索条件または数式のいずれかを指定します。両方は指定できません。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| booleanFilter | string | criteriaItems の検索条件ロジック。formula を入力する場合は、この項目を除外します。 |
| criteriaItems | FilterItem[] | レコードが承認プロセスまたは承認ステップに進むための検索条件。 承認プロセスでは、検索条件の valueField エントリをサポートしていません。 |
| formula | string | レコードが承認プロセスまたは承認ステップに進むためにレコードを true と評価する数式。 |
ApprovalStepRejectBehavior
承認プロセスの最初のステップではない場合に、承認者がこの承認ステップで申請を却下したときの処理を表します。承認プロセスの最初のステップの場合、却下時の処理は承認プロセスの最終却下時のアクションによって決まります。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| type | StepRejectBehaviorType (string 型の列挙) | 承認プロセスの最初のステップでは無効です。有効な値は、次のとおりです。
|
NextAutomatedApprover
承認プロセスの次の承認者として使用するユーザー階層項目を表します。定義されていると、階層項目で指定されたユーザーを、1 つ以上の承認ステップで承認者として自動的に割り当てることができます。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| useApproverFieldOfRecordOwner | boolean | 必須。申請者のユーザーレコードではなく、レコード所有者のユーザーレコードで指定された userHierarchyField を承認者として最初に実行される承認ステップで使用するかどうかを示します。残りのすべてのステップでは、前のステップの承認者のユーザーレコードで指定された userHierarchyField が使用されます。 |
| userHierarchyField | string | 必須。承認者として割り当てるユーザーを指定する値を持つ、標準またはカスタムユーザー階層項目。たとえば、標準 [マネージャー] 階層項目を使用して、従業員の有給休暇申請の承認者を割り当てることができます。 |
宣言的なメタデータの定義のサンプル
次に、ApprovalProcess コンポーネントの例を示します。
1<?xml version="1.0" encoding="UTF-8"?>
2<ApprovalProcess xmlns="http://soap.sforce.com/2006/04/metadata">
3 <active>false</active>
4 <allowRecall>false</allowRecall>
5 <allowedSubmitters>
6 <type>owner</type>
7 </allowedSubmitters>
8 <allowedSubmitters>
9 <submitter>USSalesRep</submitter>
10 <type>role</type>
11 </allowedSubmitters>
12 <allowedSubmitters>
13 <submitter>MarketingGroup</submitter>
14 <type>group</type>
15 </allowedSubmitters>
16 <allowedSubmitters>
17 <submitter>kcooper@example.com</submitter>
18 <type>user</type>
19 </allowedSubmitters>
20 <approvalPageFields>
21 <field>Name</field>
22 <field>Owner</field>
23 <field>MyLeadCustomField__c</field>
24 <field>Address</field>
25 </approvalPageFields>
26 <approvalStep>
27 <allowDelegate>false</allowDelegate>
28 <approvalActions>
29 <action>
30 <name>LeadApprovedTask1</name>
31 <type>Task</type>
32 </action>
33 <action>
34 <name>LeadApprovedTask2</name>
35 <type>Task</type>
36 </action>
37 </approvalActions>
38 <assignedApprover>
39 <approver>
40 <type>adhoc</type>
41 </approver>
42 </assignedApprover>
43 <label>Step1</label>
44 <name>Step1</name>
45 <rejectionActions>
46 <action>
47 <name>LeadRejectedTask</name>
48 <type>Task</type>
49 </action>
50 </rejectionActions>
51 </approvalStep>
52 <approvalStep>
53 <allowDelegate>false</allowDelegate>
54 <assignedApprover>
55 <approver>
56 <type>userHierarchyField</type>
57 </approver>
58 </assignedApprover>
59 <entryCriteria>
60 <criteriaItems>
61 <field>Lead.CreatedDate</field>
62 <operation>greaterThan</operation>
63 <value>3/25/2013</value>
64 </criteriaItems>
65 <criteriaItems>
66 <field>User.IsActive</field>
67 <operation>notEqual</operation>
68 <value>true</value>
69 </criteriaItems>
70 </entryCriteria>
71 <ifCriteriaNotMet>ApproveRecord</ifCriteriaNotMet>
72 <label>Step2</label>
73 <name>Step2</name>
74 <rejectBehavior>
75 <type>RejectRequest</type>
76 </rejectBehavior>
77 </approvalStep>
78 <approvalStep>
79 <allowDelegate>true</allowDelegate>
80 <assignedApprover>
81 <approver>
82 <name>MarketingTeamQueue</name>
83 <type>queue</type>
84 </approver>
85 <approver>
86 <name>LastModifiedBy</name>
87 <type>relatedUserField</type>
88 </approver>
89 <approver>
90 <name>awheeler@example.com</name>
91 <type>user</type>
92 </approver>
93 <whenMultipleApprovers>FirstResponse</whenMultipleApprovers>
94 </assignedApprover>
95 <entryCriteria>
96 <formula>CONTAINS( MyLeadCustomField__c , 'Salesforce')</formula>
97 </entryCriteria>
98 <label>Step3</label>
99 <name>Step3</name>
100 <rejectBehavior>
101 <type>BackToPrevious</type>
102 </rejectBehavior>
103 </approvalStep>
104 <emailTemplate>MyFolder/LeadsNewassignmentnotification</emailTemplate>
105 <enableMobileDeviceAccess>false</enableMobileDeviceAccess>
106 <entryCriteria>
107 <criteriaItems>
108 <field>Lead.AnnualRevenue</field>
109 <operation>greaterThan</operation>
110 <value>10500</value>
111 </criteriaItems>
112 <criteriaItems>
113 <field>Lead.MyLeadCustomField__c</field>
114 <operation>equals</operation>
115 <value>Salesforce</value>
116 </criteriaItems>
117 </entryCriteria>
118 <finalApprovalActions>
119 <action>
120 <name>LeadEmailContacted</name>
121 <type>Alert</type>
122 </action>
123 </finalApprovalActions>
124 <finalApprovalRecordLock>true</finalApprovalRecordLock>
125 <finalRejectionActions>
126 <action>
127 <name>ProcessRejectedMessageAction</name>
128 <type>OutboundMessage</type>
129 </action>
130 </finalRejectionActions>
131 <finalRejectionRecordLock>false</finalRejectionRecordLock>
132 <initialSubmissionActions>
133 <action>
134 <name>LeadFieldUpdate</name>
135 <type>FieldUpdate</type>
136 </action>
137 <action>
138 <name>NewLeadEmail</name>
139 <type>Alert</type>
140 </action>
141 </initialSubmissionActions>
142 <label>SampleProcess</label>
143 <nextAutomatedApprover>
144 <useApproverFieldOfRecordOwner>false</useApproverFieldOfRecordOwner>
145 <userHierarchyField>customlookupuserfield__c</userHierarchyField>
146 </nextAutomatedApprover>
147 <postTemplate>MyPostTemplate</postTemplate>
148 <recallActions>
149 <action>
150 <name>ProcessRecalledMessageAction</name>
151 <type>OutboundMessage</type>
152 </action>
153 </recallActions>
154 <recordEditability>AdminOnly</recordEditability>
155 <showApprovalHistory>false</showApprovalHistory>
156</ApprovalProcess>マニフェストファイル内のワイルドカードのサポート
package.xml マニフェストファイル内のワイルドカード文字 * (アスタリスク) を使用して、すべてのオブジェクトのすべての承認プロセスを取得できます。ワイルドカードは承認プロセスのサブセットの取得には使用できません。Lead.* のような構文はサポートされません。マニフェストファイルの使用についての詳細は、「zip ファイルを使用したメタデータのリリースと取得」を参照してください。