今回作ったフローの概要
・スケジュールトリガーフローで
・特定の日付に合致する親レコードを全件取得して
・親レコードの値を使って子レコードを複数作成して
・親レコードの日付を更新する
フローの詳細
①開始条件
②レコードを取得
③ループ
④初期値を割り当て
⑤子レコードの変数を割り当てる
⑥レコードコレクション変数に割り当て
⑦減算
⑧繰り返し判定
⑨(繰り返す場合)開始日を翌月に変更する
⑩(繰り返さない場合)親レコードの日付を更新する
⑪レコードコレクション変数に割り当て
⑫レコードを一括作成
⑬レコードを一括更新
全体像はこちら。
①開始条件
②レコードを取得
今回は「契約終了日=当日」に合致する契約レコードを全件取得します。
FormulaTodayの中身はこんなかんじです。
③ループ
取得したレコードたちを、ループを使って1件ずつ処理していきます。
④初期値を割り当て
今回作成する子レコードたちは、以下の要件を持っています。
- 親レコードが持つ数値項目の値分、レコードを作成する(例:数値項目に12と入っていれば、子レコードを12作成する)
- 子レコードの開始日と終了日を、1か月ずつずらして作成する
上記の要件を満たすために、初期値を設定します。
変数RecordNumとvarMonthlySalesStartDateはそれぞれ、デフォルト値を持たない数値変数と日付変数です。
FirstStartDateの中身はこんなかんじです。
親レコードの終了日の翌日を、初めに作成される子レコードの開始日に設定したいためです。
⑤子レコードの変数を割り当てる
作成したい子レコードの中身を割り当てていきます。
varMonthlySalesは、子レコードのデータ格納用のレコード(単一)変数です。
⑥レコードコレクション変数に割り当て
⑦減算
⑧繰り返し判定
⑨(繰り返す場合)開始日を翌月に変更する
NextStartDateの中身はこんなかんじです。
⑩(繰り返さない場合)親レコードの日付を更新する
UpdateEndDateの中身はこんなかんじです。
⑪レコードコレクション変数に割り当て
親レコードを一括更新するために、レコードコレクション変数に格納します。
⑫レコードを一括作成
子レコードを一括作成します。
⑬レコードを一括更新
親レコードを一括更新します。
ここまで読んだけど、よく分からない😭という方へ
ここまで読んでいただき、ありがとうございます。
最善を尽くして記事を書いていますが、
私の説明力不足ゆえに分かりづらい点があることをご容赦ください。
・ブログの内容について直接質問したい
・その他、Salesforceについて質問や相談をしたい
という方向けに、オンラインで直接質問していただけるサービスをご用意しています。
「こんなことを質問したいけど、対応可能?」というご相談はもちろん無料で受け付けております。上記リンクからお気軽にどうぞ💁♀️