Skip to main content
予想時間

フロー内のフローを実行する

学習の目的

この単元を完了すると、次のことができるようになります。

  • サブフロー要素を使用して、作業を最小限にする。
  • 別のフロー内で実行されるフローを作成する。
  • データを親フローに戻す変数を参照先フローに設定する。
メモ

メモ

日本語で受講されている方へ
Challenge は日本語の Trailhead Playground で開始し、かっこ内の翻訳を参照しながら進めていってください。Challenge での評価は英語データを対象に行われるため、英語の値のみをコピーして貼り付けるようにしてください。日本語の組織で Challenge が不合格だった場合は、(1) この手順に従って [Locale (地域)] を [United States (米国)] に切り替え、(2) [Language (言語)] を [English (英語)] に切り替えてから、(3) [Check Challenge (Challenge を確認)] ボタンをクリックしてみることをお勧めします。

翻訳版 Trailhead を活用する方法の詳細は、自分の言語の Trailhead バッジを参照してください。

メモ

このバッジは、Flow Builder のスキルを習得するための過程の一部です。「Flow Builder を使用したフローの作成」トレイルでは、初めから終わりまで Flow Builder について学習します。このトレイルで推奨されるバッジの順序に従えば、プロセスの自動化に関する確固たるスキルが身に付き、Flow Builder のエキスパートになります。

怠惰の功名

信じられないかもしれませんが、システム管理者にとって特に重要な資質の 1 つが面倒くさがり屋であることです。

読み間違いではありません。Salesforce 組織で 4 種類のフローに影響する変更を行わなければならない場合、4 つのフローを更新するのと、1 つだけ更新するのとどちらがよいですか? 手品か何かのように聞こえるかもしれませんが、面倒くさいと思えばこそ、不要な作業のような厄介事を簡単に片付けられないかと思案します。

たとえば、Flo の組織には、Chatter に同じメッセージを投稿するフローが 4 つあります。その Chatter 投稿の内容が変更されるたびに、Flo は 4 つのすべてのフローの重複する要素を更新しています。Flo は重複作業の多さにうんざりしています。ここで、私たちがまだ使っていない要素が役に立ちそうです。サブフロー要素です。 

フロー (親フロー) でサブフロー要素を使用すると、別のフロー (子フロー) を参照して、現在の (親) フロー内でその (子) フローを実行できます。4 つのすべてのフローではなく、たった 1 つを変更すればよいことを知り、Flo の期待が膨らみます。さらに、変更するフローが少なければ、見落としや設定ミスが生じる可能性も減少します。

Flo があなたに Chatter 投稿専用のフローを作成するよう依頼しました。新しい子フローを配置して、4 種類のフローの重複要素をまとめて置換できるようにします。さらに、Chatter 投稿に何らかの変更があった場合に、4 つのすべてのフローではなく、子フローを 1 つ更新すれば済むようにします。

洒落た長椅子に横たわり、ヤシの葉で扇いでもらいながら、フローについて考えている Flo Smith。

入力変数と出力変数

子フローの変数は特別です。変数の作成時に、[Available for input (入力で使用可能)][出力で使用可能] という設定があることに気が付きましたか? 変数はこれらの設定を使用して、入力を親フローから子フローに送り、出力を子フローから親フローに送り返すことができます。

[Available for input (入力で使用可能)] と [出力で使用可能] という 2 つのオプションがある [New Resource (新規リソース)] ウィンドウの [フロー外部での可用性]。

ところで、なぜデータを子フローとやり取りするのでしょうか? Flo の例では、子フローが親フローのトリガーレコードの Chatter に投稿するため、子フローにそのトリガーレコードの ID が必要です。子フローが親フローのトリガーレコードにアクセスすることはできないため、親フローがその情報を子フローに送る必要があります。さらに、子フローが作成した Chatter 投稿の ID を親フローが知る必要がある場合は、子フローがその ID を親フローに送り返す必要があります。

変数を子フローの入力または出力で使用可能と定義します。

  • 親フローからデータを受け取るためには、子フローに入力で使用可能な変数が必要です。
  • 子フローの終了時に親フローにデータを送り返すためには、子フローに出力で使用可能な変数が必要です。
  • いずれの方向にもデータを送る必要がない場合は、入力変数も出力変数も必要ありません。

上記の説明に対応するダイアグラム

サブフロー要素を作成する

フローを別のフロー内で実行する場合、まず親フローと子フローを作成します。次に、親フローにサブフロー要素を追加します。

子フローを作成する

  1. フローを作成し、[自動起動フロー] 種別を選択します。
  2. テキスト変数を作成します。
    • API 参照名: userMentionID
    • 入力で使用可能: オン
  1. 別のテキスト変数を作成します。
    • API 参照名: postTargetID
    • 入力で使用可能: オン
  1. テキスト変数をもう 1 つ作成します。
    • API 参照名: chatterPostID
    • 出力で使用可能: オン
  1. テキストテンプレートを作成します。
    • API 参照名: chatterBody
    • 本文: @[{!userMentionID}], please review this record. (@[{!userMentionID}] 様、このレコードを確認してください。)
    • 本文のエディターで、[View as Rich Text (リッチテキストとして表示)] を [View as Plain Text (プレーンテキストとして表示)] に変更します。
  1. アクション要素を追加します。
    • アクション: Chatter に投稿
    • Label (表示ラベル): Chatter Mention Post (Chatter メンション投稿)
    • API 参照名: Chatter_Mention_Post
    • Message (メッセージ): chatterBody
    • 対象名または ID: postTargetID
    • [Show advanced options (詳細オプションを表示)] で [Manually assign variables (手動で変数を割り当て)] を選択します。
    • フィード項目 ID: chatterPostID
  1. フローを保存します。[Flow Label (フローの表示ラベル)] に Post to Chatter (Chatter に投稿) と入力します。
  2. フローを有効にします。

サブフロー要素がある親フローを作成する

  1. レコードトリガーフローを作成します。
    • Object (オブジェクト): Case (ケース)
    • フローをトリガーする条件: レコードが作成または更新された
    • Condition Requirements (条件の要件): [All Conditions Are Met (AND) (すべての条件に一致 (AND))]
    • 条件: [優先度] [Equals (次の文字列と一致する)] [高]
    • 更新されたレコードでフローを実行するタイミング: 条件の要件に一致するようにレコードを更新したときのみ
    • フローを最適化: アクションと関連レコード
  1. サブフロー要素を追加します。
    • [Post to Chatter (Chatter に投稿)] フローを選択します。
    • Label (表示ラベル): Post to Chatter (Chatter に投稿)
    • API 参照名: Post_to_Chatter
    • [postTargetID] 項目を有効にして、[Triggering Case (トリガーケース)] > [Case ID (ケース ID)] を選択します。
      [Subflow (サブフロー)] パネルの [userMentionID] 項目での [Triggering Case (トリガーケース)] > [Owner ID (所有者 ID)] の選択。
    • [userMentionID] 項目を有効にして、[Triggering Case (トリガーケース)] > [Owner ID (所有者 ID)] を選択します。
      必ず下にスクロールして [Owner ID (所有者)] を選択し、[Owner ID (Group) (所有者 ID (グループ))] や [Owner ID (User) (所有者 ID (ユーザー))] を選択しないように注意してください。
メモ

参照先フローに入力で使用可能と設定されている変数がない場合は、[Set Input Values (入力値を設定)] セクションが表示されません。

  1. フローを保存します。[Flow Label (フローの表示ラベル)] に、Case Priority is High (ケース優先度が高) と入力します。

今後、レコード作成のニーズが変化したときに、Flo は子フローを 1 つ更新するだけで済みます。面倒くさいと感じたために、作業が楽になりました!

考慮事項

サブフローを操作するときは、次の点に留意します。

  • サブフロー要素が参照できるのは、自動起動フローと画面フローのみです。
  • 画面フローでは、別の画面フローのみを参照できます。
  • 無効なフローを参照する場合は、「フローの管理」権限があるユーザーに対してのみフローが実行されます。
  • 子フローに複数のバージョンがある場合、親フローは子フローの有効なバージョンを実行します。子フローに有効なバージョンがない場合、親フローは最新のバージョンを実行します。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む