はじめに
Salesforceのフローとは、ビジネスプロセスを自動化する処理を構築できるノーコードツールです。
ワークフロールールやプロセスビルダーが廃止され、今後自動化ツールはフローに一本化されるため、この記事でフローの基本的な事項を執筆しようと思います。
フローの種類
フローの種類は、その起動条件ごとに分けられる。フローを作成する際に、最初に選択するのが、このフローの種類である。
参照:Salesforce ヘルプ「フロー種別」
1. 画面フロー
テキスト、チェックボックス、表などの部品を利用して独自の画面が作成できるフロー。
Lightningページやクイックアクションなどの操作が起動条件になる。構築した画面を通じて、ユーザの入力に合わせて動的に出し分けることが可能。
2. レコードトリガフロー
レコードを作成、更新、削除された時に起動するフロー。フローの開始条件として、「レコードの保存前」か「レコード保存後」を選択できる。
- レコードの保存前
- 保存前のレコードの値をチェックしたり、変更したい。
- レコードの保存後
- 保存後に確定される項目(ID、自動採番、更新日など)を利用したい。
3. スケジュールトリガフロー
指定した時間・頻度(1回、毎日、毎週)で自動起動するフロー。スケジュールを設定しておくことで、手動で都度実施する処理を省くことができる。
4. プラットフォームイベントトリガフロー
事前に設定したプラットフォームイベントの発火を起動条件とするフロー。ユーザの操作、プラットフォーム機能の実行、これらによって発生する変化をプラットフォームイベントとして公開し、公開されたプラットフォームイベントをキャッチした時にアクションを実行する。
- Salesforceにおけるプラットフォームイベントとは
- Salesforce Platform上でイベント駆動型アーキテクチャを実現する機能。
5. 自動起動フロー(トリガなし)
Apex、プロセス、REST API等から呼び出して利用するフロー。
フローで利用するリソース
プログラミングでいう、変数的な存在。テキストの値や日付の値、真偽値などを一時的に格納する。
例えば、下記のような特徴がある。
- 単一の値だけでなく複数の値を格納できる。
- レコードの取得結果そのものを格納できる。
リソースの中で代表的なものを抜粋して、以下にまとめる。
参照:Salesforce ヘルプ「フローのリソース」
1. 変数
- 最も一般的なリソース。数値や文字列といった値を一時的に格納する。
- 複数の値を一つの変数に保存することも可能(コレクション変数)。
- record Id
- 特定のレコードの詳細画面から、フローを起動した際に、表示しているレコードIDを取得するための変数。変数のAPI参照名は、必ず"recordId"である必要がある。
2. 定数
- 後から変更できない固定値を格納する。
3. 数式
- 計算された値を格納する。
- オブジェクトの項目で使用できる数式とは書式ルールが異なるため、要注意。
- 例えば、以下のような使い方できる。
4. テキストテンプレート
- リッチテキストまたはプレーンテキストを選択可能。他のリソースを差し込み可能。
5. フェーズ
- フェーズ(ステージ)を定義できる。
6. グローバル変数
- ユーザのIDやAPIセッションIDなど、Salesforce組織や実行ユーザに関する情報を参照できるシステム指定の変数。
- 以下に一例を示す。
- $Record:レコード作成時のトリガフローやバッジ処理において対象となっているレコードの情報を参照できる。
- $User:実行ユーザの情報を参照できる。
- $Flow:実行中のフロー処理の情報を参照できる。
7. グローバル定数
- システム指定の固定値。
- 以下に一例を示す。
- {!$GlobalConstant.True}:Trueを指す。
- {!$GlobalConstant.False}:Falseを指す。
- {!$GlobalConstant.EmptyString}:空の文字列(Blank)を指す。
まとめ
- フローの種類の、その起動条件によって5つに分類される。
- フローには、プログラミングでいう変数の役割を持つ、リソースと呼ばれるものがある。