フローに複数のパスを定義する
学習の目的
この単元を完了すると、次のことができるようになります。
- ビジネス要件を把握して、プロセスフローチャートに視覚化する。
- ビジネス要件のプロセスを実装するフローを構築する。
- 分岐ロジックを使用して、フローの複数のパスから 1 つを選択する。
始める前に
このバッジでは、受講者が変数、入力、データ要素 (レコードを取得など) を使用してフローを作成する方法を理解していることを前提としています。こうした概念に詳しくない場合や復習が必要な場合は、「Flow Builder の基本」バッジや「フローのデータとアクション」バッジを参照してください。
フローが実行されると、列車のごとく終点に向かってパスを進行し、各停留所で操作を実行します。列車は必ずしも一本道を進むわけではありません。目的地へと続く線路は、時に分岐し、合流し、循環します。Flow Builder でも同様に、必要に応じてパスが分岐や合流するフローの自動化を構築できます。
If を想定する
自動化のユースケースの中には、状況に応じて実行すべき自動化が異なるものがあります。例を見てみましょう。
Flo Smith は Pyroclastic, Inc. の上級 Salesforce システム管理者であり、ビジネスアナリストです。このモジュールでは、あなたは Flo のチームの Salesforce システム管理者として、Flo が Pyroclastic のビジネスプロセスの一部を自動化するのに協力します。
Flo から指示された今日のタスクは、サポートケースが作成されたときに適切な優先度を自動的に設定する自動化を構築することです。優先度の値は問題の種別と、サポート依頼者への影響度によって異なります。Flo はまずビジネス要件を確認します。
- (IF) 種別 = ダウンタイムの場合、優先度 = 重大度 0。
- (IF) 種別 = 使用可能性で、サポート依頼者が VIP の場合、優先度 = 重大度 1。
- (IF) 種別 = 使用可能性で、サポート依頼者が VIP でない場合、優先度 = 重大度 2。
- (ELSE) それ以外の場合、優先度 = 重要度 3。
上から 3 つは if 文で、4 つ目は else 文です。最後の行は、上記の 3 つのいずれの要件にも該当しない場合のデフォルトとして機能します。
続いて、Flo とともに、ケース優先度を設定する自動化を視覚化するフローチャートを作成します。チャートを紙に描き出すこともできますし、デザインツールやフローチャートプログラムを使用することもできます。各自に適した方法で行います。この目的は、文章で把握した要件に対応する自動化を考案し、視覚的なモデルに転換することです。
どのようなフローチャートになるか見てみましょう。このチャートには 4 つのビジネス要件があります。
どのビジネス要件も、要件を満たしたときに選択するパス、つまり「はい」パスが重大度ボックスにつながっています。Flow Builder では、この重大度ボックスのようなものを結果といい、キャンバスにそれぞれの結果につながるパスが示されます。
どの結果にも (最後のものを除く) 満たすべき条件があります。Flow Builder では、条件の要件といいます。
最後の結果はデフォルトで、条件がありません。他のどの結果の条件も満たさなかった場合は、フローがデフォルトの結果を選択します。
フローにこうした分岐ロジックを作成する場合は、決定要素を使用します。
決定要素
決定要素には、数通りのパスを作成できます。フローチャートを基に決定要素を作成するときは、次の 2 つのステップを実行します。
- チャートの「はい」パスにそれぞれ結果を 1 つ作成します。(最後の「いいえ」パスは、デフォルトの結果になります。)[結果の順序] に、結果がフローの進行順に示されます。
- デフォルトの結果を除くすべての結果に、条件の要件を追加します。各結果の条件の要件は、フローチャートの対応する菱形に記述した要件です。
決定要素のパスは結果につながっています。
フローが決定要素に達すると、まず 1 つ目の結果を評価します。条件を満たした場合は、1 つ目の結果を選択して、そのパスに従います。条件を満たさなければ、[結果の順序] を進行し、条件を満たした結果を選択します。いずれの条件も満たさなかった場合は、デフォルトの結果のパスに従います。それぞれのパスが合流した時点で、フローは 1 つのパスに戻ります。
Flow Builder のハンズオン
ではここで Trailhead Playground を起動して、このモジュールの手順を実行してみましょう。Trailhead Playground を開くには、ハンズオン Challenge までスクロールダウンし、[起動] をクリックします。また、ハンズオン Challenge を実行するときにも Playground を使用します。
決定要素を構築する
では、このビジネスプロセスを自動化するフローを作成してみましょう。その前に、関連する項目に必要な選択リスト値を追加します。選択リスト値の追加についての詳細は、「選択リスト管理」バッジの「選択リスト値の管理」を参照してください。
- ケースオブジェクトの [Priority (優先度)] 項目に、
Severity 0
(重大度 0)、Severity 1
(重大度 1)、Severity 2
(重大度 2)、Severity 3
(重大度 3) の値を追加します。 - ケースオブジェクトの [Type (種別)] 項目に、
Downtime
(ダウンタイム)、Usability
(使用可能性) の値を追加します。
決定要素を作成して、結果を定義する
次の手順に従って、フローチャートのプロセスを、決定要素を使用したフローに変換します。
- レコードトリガーフローを作成します。
- [Object (オブジェクト)] で [Case (ケース)] を選択します。
- デフォルトのトリガー設定とエントリ条件を受け入れます。
- [Optimize the Flow for (フローを最適化:)] で、[Fast Field Updates (高速項目更新)] を選択します。
トリガーレコードを更新するだけの場合は、[Fast Field Updates (高速項目更新)] を選択します。高速項目更新についての詳細は、「レコードトリガーフロー」バッジを参照してください。
- フローに決定要素を追加します。
- キャンバスで をクリックします。
-
[決定] を選択します。
- [Label (表示ラベル)] に、
Check Case Details
(ケースの詳細を確認) と入力します。
- 結果を定義します。
- [結果の順序] で [新しい結果] を選択したままにします。
- [OUTCOME DETAILS (結果の詳細)] で、[Label (表示ラベル)] に
Severity 0
(重大度 0) と入力します。
- [OUTCOME ORDER (結果の順序)] の横にある をクリックして、新しい結果を作成します。
- 2 つ目の結果に
Severity 1
(重大度 1) という表示ラベルを付けます。
- もう 1 つ結果を作成して、
Severity 2
(重大度 2) という表示ラベルを付けます。
- [OUTCOME ORDER (結果の順序)] で、[Default Outcome (デフォルトの結果)] を選択します。
- この表示ラベルを
Severity 3 (Default)
(重大度 3 (デフォルト)) に変更します。
結果に条件の要件を追加する
- 重大度 0 の結果に条件の要件を定義します。
- [結果の順序] で、[Severity 0 (重大度 0)] を選択します。
- [OUTCOME DETAILS (結果の詳細)] の [Resource (リソース)] で、[Triggering Case (トリガーケース)] をクリックして、[Case Type (ケース種別)] を選択します。
- [Operator (演算子)]は [Equals (次の文字列と一致する)] のままにします。
- [値] に [Downtime (ダウンタイム)] を選択します。
- 重大度 1 の結果に条件の要件を定義します。
- 最初の条件の要件を入力します。
- Resource (リソース): Triggering Case (トリガーケース) > Case Type (ケース種別)
- Operator (演算子): Equals (次の文字列と一致する)
- Value (値): Usability (使用可能性)
- Resource (リソース): Triggering Case (トリガーケース) > Case Type (ケース種別)
-
[条件を追加] をクリックします。
- 2 番目の条件の要件を入力します。
- Resource (リソース): Triggering Case (トリガーケース) > Contact ID (取引先責任者 ID) > Contact Description (取引先責任者 説明)
- Operator (演算子): contains (次の文字列を含む)
- Value (値):
VIP
- Resource (リソース): Triggering Case (トリガーケース) > Contact ID (取引先責任者 ID) > Contact Description (取引先責任者 説明)
- 重大度 2 の結果に条件の要件を定義します。
- Resource (リソース): Triggering Case (トリガーケース) > Case Type (ケース種別)
- Operator (演算子): Equals (次の文字列と一致する)
- Value (値): Usability (使用可能性)
チャートの 3 つ目の菱形で、取引先責任者が VIP でないことが明記されていますが、重大度 2 でこの要件をチェックする必要はありません。条件の要件は順番に評価されるため、この段階で評価される取引先責任者は VIP ではないためです。
決定要素は次のようになります。
-
をクリックしてサイドパネルを閉じます。
フローチャートに 4 つの結果が記載されていたことから、この決定要素にも 4 つの結果が示されています。4 つの結果がある場合は、フローが進行する可能性のあるパスが 4 つ作成され、対応する結果に名前が付けられます。キャンバスは次のようになります。
ここで、新しいフローを保存して名前を付けます。
-
[Save (保存)] をクリックします。
- [Flow Label (フローの表示ラベル)] に、
Set Case Priority
(ケース優先度を設定)と入力します。
-
[Save (保存)] をクリックします。
[レコードを更新] 要素を作成する
重大度の各パスに、新規ケースを適切な優先度値で更新する要素を追加します。たとえば、重大度 0 のパスの [優先度] 項目を [Severity 0 (重大度 0)] に設定します。
まず、最初の 3 つのパスに [レコードを更新] 要素を追加します。
- [Severity 0 (重大度 0)] の下で をクリックします。
- [ショートカット] で、[トリガーレコードを更新] を選択します。
- [Label (表示ラベル)] に、
Set Priority to Sev0
(優先度を Sev0 に設定) と入力します。
- 自動生成された API 参照名を受け入れます。
- [更新するレコードを検索してその値を設定する方法] は、[Use the case record that triggered the flow (フローをトリガーしたケースレコードを使用)] というデフォルト値のままにします。
- ケースレコードの [Set Field Values (項目値を設定)] までスクロールします。
- [Field (項目)] で [Priority (優先度)] を選択します。
- [Value (値)] で [Severity 0 (重大度 0)] を選択します。
- [Update Records (レコードの更新)] パネルで をクリックしてパネルを閉じます。
- 重大度 1 と重大度 2 のパスでもステップ 1 ~ 9 を繰り返します。各パスに応じた表示ラベルと値に変更します。
重大度 3 のパスについては、重大度 2 のパスの要素をコピーして貼り付けます。(ここではごく簡単な例を取り上げていますが、今後大量の要素をまとめてコピーや移動 (切り取って貼り付け) する必要が生じたときにこの手法が役立ちます。)
-
[Set Priority to Sev2 (優先度を Sev2 に設定)] 要素をクリックします。
-
[要素をコピー] をクリックします。
- [Severity 3 (重大度 3)] の下で をクリックします。
-
[1 つの要素を貼り付け] をクリックします。
- 新しい要素をクリックして、[要素を編集] を選択します。
- [Label (表示ラベル)] を
Set Priority to Sev3
(優先度を Sev3 に設定) に変更します。
- [API Name (API 参照名)] を
Set_Priority_to_Sev3
に変更します。 - 項目の [値] を [Severity 3 (重大度 3)] に変更します。
- フローを保存します。
キャンバスのフローは次のようになります。
フローが特定の結果のパスに従うと、そのパスの [レコードを更新] 要素のみが実行されます。