Salesforce活用記事 レコードトリガーフロー

Salesforce: 一定の条件を持つ関連レコードのみフローで一括更新を行う方法

  1. HOME >
  2. Salesforce活用記事 >
  3. レコードトリガーフロー >

Salesforce: 一定の条件を持つ関連レコードのみフローで一括更新を行う方法

はじめに

こんにちは。
今回は、一定の条件を持つ関連レコードのみフローで一括更新を行う方法についてご紹介します。
条件を満たすレコードのみを取得し、ループを作成することによって可能となります。

では設定方法をご紹介していきます。

一定の条件を持つ関連レコードのみフローで一括更新を行う

1. 事前準備

今回設定方法をご紹介するにあたって、以下の要件のレコードトリガーフローを作成していくこととします。

<要件>
「取引先」の選択リスト項目を更新したら、「商談」の関連レコードにおいて同名の選択リスト項目を以下の条件で一括更新する
 ・「商談」レコードの選択リスト項目が未入力の場合、更新後の「取引先」の選択リスト項目の値で更新する
 ・「商談」レコードの選択リスト項目が入力済みの場合、何もしない

* 使用する選択リスト項目 ⇨ 「一括更新テスト」(API参照名:Picklist_UpdateTest__c)
  選択リスト値 ⇨ 「選択肢①」「選択肢②」「選択肢③」

2. フローを作成する

① レコードトリガーフローの作成を開始する

レコードトリガーフローでフローを作成していきます。[設定] > [フロー] > [新規フロー] を選択し、画像①の画面で[レコードトリガーフロー]を選択し[作成]をクリックします。

画像①

② フローの開始要素を設定する

[作成]をクリックすると、フローの開始要素の設定画面が画像②のように画面右側に表示されるので、「一括更新テスト」項目が更新された際のみフローが起動されるように以下の設定を行います。

オブジェクト: 取引先
フローをトリガーする条件: レコードが更新された
条件の要件: 
すべての条件に一致(AND) ⇨ これによって、「一括更新テスト」項目が更新された際のみフローが起動します。
 [項目]Picklist_UpdateTest__c [演算子]変更済み [値]{!$GlobalConstant.True}
更新されたレコードでフローを実行するタイミング: レコードを更新し、条件の要件に一致するたび
フローを最適化: アクションと関連レコード
画像②

③ 一定の条件を持つ関連レコードを取得する

トリガーレコードに関連する「商談」レコードに対して更新を行うために「商談」レコードを取得していきます。②で設定した開始要素の下にある[ + ]をクリックし、画像③のように[レコードの取得]を選択します。

画像③

その後表示される画像④の設定画面では以下の設定を行います。1. でお伝えした要件にあるように一定の条件を満たす関連レコードのみ更新を行いたいので、取得するレコードの絞り込みを行っています。

オブジェクト: 商談
表示ラベル: 関連する「商談」レコード取得 (任意)
API参照名:  Get_RelatedOppRecords (任意)
商談レコードを絞り込み: すべての条件に一致(AND)
⇨ これによって、トリガーレコードに関連する「商談」レコードのうち、「一括更新テスト」項目が未入力のレコードのみ取得されます。
[項目]AccountId [演算子]次の文字列と一致する [値]{!$Record.Id}   
[項目]Picklist_UpdateTest__c [演算子]null [値]{!$GlobalConstant.True}
商談レコードを並び替え: 並び替え
保存するレコード数: すべてのレコード
レコードデータの保存方法: 項目を選択して変数を割り当てる (高度) ⇨ フローの処理で使用するために変数を作成します。この後作成手順を説明していきます。

画像④

[レコードデータの保存方法]で「項目を選択して変数を割り当てる (高度)」を選択したら、[商談を保存する変数を選択]では変数を作成します。
[レコードコレクションを検索...]ボックスをクリックし、表示される[ + 新規リソース]をクリックしコレクション変数を作成します。画像⑤の画面が表示されるので、以下のように入力を行い[完了]をクリックします。このコレクション変数には取得したレコードのデータが保存されており、今後のフローの処理で使用します。

リソース種別: 変数
API参照名: CollectionVar_RelatedOppRecords (任意)
データ型: レコード
複数の値を許可 (コレクション): チェックをつける
画像⑤

次に、コレクション変数に保存する商談項目を選択します。画像⑥のように[項目]に「Picklist_UpdateTest__c」を追加します。以上で[レコードの取得]の設定は終了です。

画像⑥

④ 取得した関連レコードに対してループ処理を行う

③で作成したコレクション変数に保存された「商談」レコードの「一括更新テスト」項目の値を「取引先」レコードの「一括更新テスト」項目の値で更新する処理を行っていきます。
変数には複数の「商談」レコードの「一括更新テスト」項目の値が存在している場合があり、個々の項目に対して更新する処理を行う必要があります。このような反復処理にはフローの[ループ]要素を使用します。

③で設定した[レコードを取得]要素の下にある[ + ]をクリックし、画像⑦のように[ループ]を選択します。

画像⑦

その後表示される画像⑧の設定画面では以下の設定を行います。

表示ラベル: 関連する「商談」レコードループ (任意)
API参照名:  Loop_RelatedOppRecords (任意)
コレクション変数を選択: {!CollectionVar_RelatedOppRecords} ⇨ ③で作成したコレクション変数
コレクションを反復処理するための方向を指定します。: 最初の項目から最後の項目へ
画像⑧
A. トリガーレコードの選択リストの値を変数に割り当てる

次にループ内でコレクション変数の個々の項目に対して行われる反復処理を設定していきます。具体的には「商談」レコードの「一括更新テスト」項目の値を「取引先」レコードの「一括更新テスト」項目の値で更新する処理を設定します。
④で設定した[ループ]要素の下にある[ + ]をクリックし、画像⑨のように[割り当て]を選択します。

画像⑨

その後表示される画像⑩の設定画面では以下の設定を行います。

表示ラベル: トリガーレコードの選択リスト値を変数に割り当て (任意)
API参照名:  Set_PicklistValue_TriggerRecord (任意)
変数値を設定: 
[変数]{!Loop_RelatedOppRecords.Picklist_UpdateTest__c} [演算子]次の文字列と一致する [値]{!$Record.Picklist_UpdateTest__c}
⇨ ループ変数{!Loop_RelatedOppRecords.Picklist_UpdateTest__c}にトリガーレコードの選択リスト値を割り当てています。

(変数値を設定について)
ループ変数とは、ループの反復中に現在の項目の値を保存する変数です。この変数には「商談」レコードの「一括更新テスト」項目の値が保存されているため、この設定によって値をトリガーレコードの選択リスト値で上書きします。
画像⑩
B. コレクション変数へ変数の値を追加する

A. で変更を加えたループ変数の内容を保存するためにコレクション変数を作成し、そのコレクション変数へループ変数の内容を追加します。
A. で設定した[割り当て]要素の下にある[ + ]をクリックし、画像⑪のように[割り当て]を選択します。

画像⑪

その後表示される画像⑫の設定画面では以下の設定を行います。

表示ラベル: ループ変数の値を更新用コレクション変数に追加 (任意)
API参照名:  Add_LoopVar_UpdateCollectionVar (任意)
変数値を設定: 
[変数](以下で新規作成するコレクション変数を設定) [演算子]追加 [値]{!Loop_RelatedOppRecords}
⇨ A.でトリガーレコードの選択リスト値を割り当てたループ変数の値をコレクション変数に追加しています。
画像⑫

[変数値を設定]ではコレクション変数を新規作成します。[変数を検索...]ボックスをクリックし、表示される[ + 新規リソース]をクリックしコレクション変数を作成します。画像⑬の画面が表示されるので、以下のように入力を行い[完了]をクリックします。

リソース種別: 変数
API参照名: CollectionVar_Update_RelatedOppRecords (任意)
データ型: レコード
複数の値を許可 (コレクション): チェックをつける
オブジェクト: 商談
画像⑬

⑤ 関連レコードを更新する

④のループ処理によって④のB. で作成したコレクション変数へ、トリガーレコードの選択リスト値で上書きされた「商談」レコードの「一括更新テスト」項目が保存されました。このコレクション変数を使用して、「商談」レコードを一括更新します。
④で設定した[ループ]要素の[最後の項目の後]の下にある[ + ]をクリックし、画像⑭のように[レコードを更新]を選択します。

画像⑭

その後表示される画像⑮の設定画面では以下の設定を行います。以上で一定の条件を持つ関連レコードのみ一括更新を行うフローの作成は完了です。[保存] をクリックして、[有効化] をクリックします。

表示ラベル: 関連する「商談」レコード一括更新 (任意)
API参照名: Update_RelatedOppRecords (任意)
更新するレコードを検索してその値を設定する方法: レコードまたはレコードコレクションからの ID およびすべての項目値を使用
更新するレコードを選択: {!CollectionVar_Update_RelatedOppRecords}  ⇨ ④のB.で作成したコレクション変数
画像⑮

3. 作成したフローを確認する

最後に以上で作成したフローによって、実際に以下の要件を満たしてレコードが更新されるのかを確認していきます。

<要件>
「取引先」の選択リスト項目を更新したら、「商談」の関連レコードにおいて同名の選択リスト項目を以下の条件で一括更新する
 ・「商談」レコードの選択リスト項目が未入力の場合、更新後の「取引先」の選択リスト項目の値で更新する
 ・「商談」レコードの選択リスト項目が入力済みの場合、何もしない

* 使用する選択リスト項目 ⇨ 「一括更新テスト」(API参照名:Picklist_UpdateTest__c)
  選択リスト値 ⇨ 「選択肢①」「選択肢②」「選択肢③」

確認には画像①の「取引先」レコードを使用します。このレコードの「一括更新テスト」項目を更新した際に関連する「商談」レコードの「一括更新テスト」項目が自動で更新されるかについて、「商談」レコードの「一括更新テスト」項目が未入力の場合、「商談」レコードの「一括更新テスト」項目が入力済みの場合で確認してきます。

画像①

① 「商談」レコードの「一括更新テスト」項目が未入力の場合

「取引先」レコードの「一括更新テスト」項目を更新した際に「商談」レコードの「一括更新テスト」項目が未入力の場合、更新後の「取引先」の「一括更新テスト」項目の値で「商談」レコードが更新されるか確認します。画像②のように「取引先」レコードの「一括更新テスト」項目を「選択肢①」で更新します。

画像②

更新後、「商談」レコードを確認すると、画像③・④の赤枠で囲んだ箇所のように更新後の「取引先」の「一括更新テスト」項目の値で更新されていることが確認できました。

画像③
画像④

② 「商談」レコードの「一括更新テスト」項目が入力済みの場合

「取引先」レコードの「一括更新テスト」項目を更新した際に「商談」レコードの「一括更新テスト」項目が入力済みの場合、「商談」レコードは更新されないか確認します。画像⑤のように「取引先」レコードの「一括更新テスト」項目を「選択肢②」で更新します。

画像⑤

更新後、「商談」レコードを確認すると、画像⑥・⑦の赤枠で囲んだ箇所のように「商談」レコードは更新されていないことが確認できました。

画像⑥
画像⑦

まとめ

今回は、ループ要素を使用して一定の条件を持つ関連レコードのみフローで一括更新を行う方法をご紹介しました。
ループ要素の設定は他のフローの設定より難易度が上がりますが、繰り返し行う必要がある業務プロセスやタスクを自動化することができる非常に便利な機能となります。

Salesforceに関するお悩みはありませんか?

今回ご紹介したフローをはじめとするSalesforceの機能活用について、

「調べるのに時間がかかる...」
「作ったはいいがバグが起こらないか心配...」
「Salesforceを活用したいけどそこまで手が回らない...」

などお悩み事はありませんか?

Air合同会社ではSalesforceエンジニアを一人雇うほどの業務は無いが、業務を任せたいというお客様へ月 数時間~40時間で柔軟にご利用頂けるSalesforce活用支援サービスを提供しています。
機能の実装や改善のご提案、社内での内製化支援まで、Salesforce認定資格保持者で構成される当社チームが貴社のSalesforceのお悩みを解決いたします。Salesforceをより活用し課題解決を行なっていくための手段としてぜひご検討ください。

Salesforce業務を他社に外注するイメージがわかない…という方に向け、外注する際のメリット・デメリットやSalesforce開発の流れを以下の記事で解説しています。ぜひご覧ください。
Salesforce運用保守を外注するメリット・デメリットとは?
Salesforceのノーコード・ローコード開発の流れを解説!

また、弊社では「サービスについて簡単に知りたい」「Salesforceの使い方について相談したい」などSalesforceに関する無料相談会も随時実施しています。
貴社の課題解決のお力になれるよう、Salesforce認定資格を持つ担当者が心を込めてサポートいたします。まずはお気軽に下記ボタンよりお問い合わせください。

Salesforceオンライン無料相談会​​

Air合同会社では
「サービスについて簡単に知りたい」
「Salesforceの使い方について相談したい」

など、Salesforceのお悩みに関する無料相談会を随時実施しております。

\Salesforce認定資格を持つ担当者が対応!/

無料相談のご予約はこちら ×
  • この記事を書いた人
アバター画像

Suzuki

Salesforceの認定資格「Salesforce認定アドミニストレーター」を保有しています。 IT業務経験ゼロからSalesforceに関する実務に携わってきた経験をもとに、初心者の目線に立って各種機能の活用方法や設定手順をステップバイステップでわかりやすくご紹介します。

-Salesforce活用記事, レコードトリガーフロー
-, ,