概要
Salesforce(というより、DB一般)は子レコードから親レコードに更新をかけるのは得意とする一方で、親レコードから子レコードに対して更新をかけることを相対的に苦手としています。
親レコードを起点として子レコードにDML操作をかける方法としては大きく以下の三つの選択肢がありますが、本記事ではプロセルビルダーを用いた子レコードの更新について見ていきたいと思います。
- プロセルビルダーの標準機能
- フロー(子レコードに対してクエリをかけ、取得したレコードに対してDML操作)
- Apex(同上)
ユースケース
本記事のユースケースとして、「取引先の名称が変更された際に、自動で当該の取引先に紐づく商談の名称が更新されるロジック」を取り上げます。
例えば、「ねこ株式会社」が「キャット株式会社」に社名変更された場合、それに紐毒「ねこ株式会社_商談」が「キャット株式会社_商談」に自動更新されるイメージです。
ちなみにこれ、Name項目を利用しないのであれば数式項目で一発で解決されるわけですが、UI・UX的な観点からみるとやはりName項目の利用が望ましいという背景があります。
方法
①子レコード更新アクションの起点となる親オブジェクトに対してプロセスビルダーで新規プロセスを作成します。今回の場合、「取引先」に対して新規プロセスを作成します。
②条件設定。Name項目が更新された場合のみ発動されるよう設定しています。
③アクション設定。「更新するレコード」を[親レコード].[子リレーション名]に設定することで子レコードが選択可能です。