前回の記事の続き。Salesforce Developers Japanチャンネルの「Flow Builder を基礎からマスターしよう!〜フローのハンズオンと機能概要」の動画を見ながらレコードトリガフローの設定方法を勉強しました。
レコードトリガフローの設定
前回の記事でさわった画面フローはノーコードで簡単なLigtningコンポーネントを作れる感じの機能で、今回のレコードトリガフローは非推奨となったワークフロールールやプロセスビルダーの変わりの機能。たぶん今後一番使うことになるフロー種別じゃないかと思ってます。
サンプルで実現する機能
取引先の電話番号を更新したら、取引先に紐付く取引先責任者の電話番号を一括更新していく。
レコードトリガフローの作成
フロー種別でレコードトリガフローを選択すると最初の設定画面が表示されます。そこで対象オブジェクトや実行条件を指定していきます。
ここからスタート。要素を追加でいろんな制御を追加していく。
まず必要なのはレコードの取得から。
表示ラベルとAPI名を設定。今回取得対象となるオブジェクトを指定する。
条件指定のところでAccountIdを次のように指定すると取引先に紐付く取引先責任者を取得できる。
保存するレコード数はすべてのレコードを指定すること。
まずはこれで取引先に紐付く取引先責任者レコードの取得ができるようになりました。取得結果はレコードを取得で指定したAPI名が変数として用意された判定で使えるようになってます。
続いて取得した取引先責任者を1件ずつ処理していきます。要素を追加でループを選択します。
設定時の入力はこんな感じ。
完了ボタンでループ設定完了。これでループ処理の準備ができました。
ループの中では取引先責任者の電話番号項目に取引先の電話番号項目の値をセットする処理を用意します。値のセットは要素の追加で割り当てを選択します。
割り当ての設定内容は次のような感じ。ループ内で取引先責任者1件ずつ処理するには「ループ 〜 現在の項目 > 対象項目(今回は電話番号)」を指定します。またセット元は取引先の電話項目ですが、取引先の情報はグローバル変数の「$Record」で取得できます。
これでループの中で取引先責任者の電話項目に値をセットするための割り当ての設定ができました。
(※割り当ては変数に値をセットするだけ。この時点では更新処理は行われない。)
更新処理を実行するまえに値セットした結果をコレクション変数に格納します。新規リソースから専用の変数を用意します。
新規リソースで作成したコレクション変数に先程の値を格納していきます。値の格納は割り当てで行います。書き方は次のような感じ。
(演算子は追加を選択。これで1件ずつ追加していける。設定値はループの現在の項目を指定。)
これでループ内の処理が完成です。
最後にレコードの更新の要素を追加します。レコードの更新処理はループの外で行います。
レコードの更新の設定はこんな感じ。更新変数用に準備したvarContactsを処理対象に指定する。
レコードトリガフロー完成です。
ここまでの設定内容を保存ボタンで保存します。有効化はまだです。
レコードトリガフローのテスト
作成したフローの動作チェックですが、実行条件として取引先IDの指定が必要となるので、実行ボタンからはチェックできません。デバッグボタンをクリックしてパラメータを渡す形で動作チェックします。今回のレコードトリガフローの場合は取引先IDを文字列で入力する必要はなく、取引先検索の形で指定できました。
選択した取引先の値を変更する入力フォームも表示されます。特定の値が変更されたらといったテストはここのフォームの値を変えることでテストできます。
例えば電話番号を変更してみます。
デバッグを実行すると、実行結果となるデバッグ情報と更新結果が確認できます。
レコードトリガフローの場合は必ずロールバックされるようになっているとのことです。
デバッグモードで正常に動作することの確認が取れたらフローを有効化します。あとは実際に取引先の電話番号の値を変更すればフローが実行されることを確認できます。
実行結果です。取引先に紐付く取引先責任者の電話番号に値がセットされることを確認できました。
レコードトリガフローの基本的な設定の流れはこんな感じであることをざっくり試すことができました。だいたいの使い方がわかったのであとは要件に合わせて設定していけそうな気がします。前回が画面フロー、今回がレコードトリガフローとフローのメインの使い方の部分を確認できたので残りも似たような感じで進められそうと思いました。Part2については以上となります。