関連するレコードの更新
kazunii
2024/02/27 14:01:18
はじめに
salesforceで、「大量のレコードを更新する」仕組みを、フローなどを利用して作るのは、ガバナ制限の関係もあるので、本当に苦労します。
今回は、フローで大量のレコードを更新するための、少し便利な機能をご紹介します。
- 営業中のお客様との契約が締結できたので、お客様獲得のために予定していたすべてのToDoを完了にする
- 商談が成立したら、それに紐づくすべてのToDoを完了させる
- 商品が販売されたら、それに紐づくすべての商談を完了させる
設定方法
レコードフロートリガーの「関連レコードを更新」を利用します。
下の図の様に、メニューからショートカットで選択する事もできますが、「レコードを更新」を選択後に「フローをトリガーした 取引先 レコードに関連するレコードを更新」を選択することもできます。
「取引先 に関連するレコード」の選択肢の、右側に「>」の付いていない項目が、取引先の子レコードになります。
表示されているapi名は、子オブジェクトの参照項目(主従関係項目)の「子リレーション名」です。
ちなみに、今回は、子レコードの更新を行いますが、親レコードの更新を行いたい場合は、「>」が付いている項目を選択します。
「設定する値」は、決まった値だけです、各レコードごとの項目の値を基に、計算した値は設定する事はできません。
例:
設定できる :ToDoの「状況」を、”Completed”に設定
設定できない:ToDoの「期日」を、各ToDoの期日から3日延長
おわりに
今回は、「すべての子レコードの更新を行う」の設定方法を説明しました。
万能な機能では無いのですが、使用できる場面はたくさんあるんじゃないかなと思います。
試しに、自分でもレコード更新のテストを行ってみたのですが、「即時実行」だと、さすがに5,000件の更新はエラー「Apex CPU time limit exceeded」になってしまいました。
ちなみに、3,000件くらいの更新は正常に動作しました。(ただ、処理が終わるまでに1分くらい時間はかかりますが。。。)
「非同期に実行」だと、更新対象が5,000件でも、問題なく更新できました。
ご活用ください。
コメント