Skip to main content
Register now for TDX! Join the must-attend event to experience what’s next and learn how to build it.

複数のレコードを更新および取得する

学習の目的

この単元を完了すると、次のことができるようになります。

  • レコードトリガーフローで [Update Related Records (関連レコードを更新)] メニューオプションを使用して複数のレコードを更新する。
  • コレクション変数を使用する際のベストプラクティスを適用する。
  • [Get Records (レコードを取得)] 要素を使用してコレクション変数を作成する。
Note

このバッジは、Flow Builder のスキルを習得するための過程の一部です。「Flow Builder を使用したフローの作成」トレイルでは、初めから終わりまで Flow Builder について学習します。このトレイルで推奨されるバッジの順序に従えば、プロセスの自動化に関する確固たるスキルが身に付き、Flow Builder のエキスパートになります。

Trailhead の「Flow Builder を使用したフローの作成」トレイルのバッジを完了している場合、これまでに完了したシナリオのほとんどは、1 回に 1 件のレコードを作成または更新するものでした。ですが、Flow Builder の多くの要素は、複数のレコードを処理するように設計されています。たとえば、複数のケースを作成したり、複数の ToDo を更新したりする場合は、通常、複数レコード機能を使用するのが最適です。複数レコード機能を使用すると、レコードごとに要素を作成するのではなく、すべてのレコードを処理する 1 つの要素を作成できます。

フローを実際に使ってみる

ではここで新しい Trailhead Playground を作成し、このモジュールの手順を実行してみましょう。ページの最下部までスクロールし、Playground 名をクリックして、[Create Playground (Playground を作成)] を選択します。Trailhead Playground を作成するには、通常 3、4 分かかります。また、ハンズオン Challenge を実行するときにも Playground を使用します。

メモ: 文字どおり真新しい Trailhead Playground です。既存の組織または Playground を使用すると、Challenge を行うときに問題が発生することがあります。

次に、以下の手順に従って Playground を起動し、パッケージをインストールしてください。また、ハンズオン Challenge を実行するときにもこのパッケージと Playground を使用します。

Trailhead Playground を起動するために、このページの一番下までスクロールして [Launch (起動)] をクリックします。

  1. [パッケージのインストール] タブをクリックします。
    [Package ID (パッケージ ID)] 項目と [Install (インストール)] ボタンが表示された Trailhead Playground の [Install a Package (パッケージをインストール)] タブ。
  2. [Package ID (パッケージ ID)] 項目に 04tKa000002f0NXIAY を貼り付けます。
  3. [Install (インストール)] をクリックします。
  4. [Install for Admins Only (管理者のみのインストール)] を選択し、[Install (インストール)] をクリックします。

アプリケーションのインストールが終了すると、確認ページが表示され、Playground に関連付けられているアドレスにメールが届きます。

順調ですね。では、複数のレコードの更新を開始しましょう。

メモ

メモ

日本語で受講されている方へ
Challenge は日本語の Trailhead Playground で開始し、かっこ内の翻訳を参照しながら進めていってください。Challenge での評価は英語データを対象に行われるため、英語の値のみをコピーして貼り付けるようにしてください。日本語の組織で Challenge が不合格だった場合は、(1) この手順に従って [Locale (地域)] を [United States (米国)] に切り替え、(2) [Language (言語)] を [English (英語)] に切り替えてから、(3) [Check Challenge (Challenge を確認)] ボタンをクリックしてみることをお勧めします。

翻訳版 Trailhead を活用する方法の詳細は、自分の言語の Trailhead バッジを参照してください。

トリガーされたレコードの変更から複数のレコードを更新する

単純で一般的なユースケースに基づいた例から始めましょう。すべてのビジネスと同様に、Pyroclastic, Inc. でも、ときには顧客を失うことがあります。そのような元顧客には、未完了の ToDo がある未完了のケースが残っていることがよくあります。顧客維持のための商談が不成立となった場合、サポートチームは取引先に関連するすべてのケース ToDo を自動的に延期したいと考えています。これらのケースをクローズするためのフローを作成できます。しかも 1 つの要素だけで済みます。

特定の条件の要件を満たす商談が不成立となったときにフローを実行する必要があるため、レコードトリガーフローが必要です。[Update Records (レコードを更新)] 要素を使用して、その商談に関連するすべての未完了ケースを更新します。未完了のケースのみを更新するように、必ず検索条件を追加してください。すでにクローズされているケースをクローズする必要はありません。相手と長期の取引があった場合は、古くてクローズ済みのケースが多数存在するため、それらのケースまでクローズしてしまうと、処理が遅くなったり、ガバナ制限を超えたりする可能性があります。

[Update Records (レコードを更新)] 要素を作成するときは、[Update Related Records (関連レコードを更新)] メニューオプションを選択して、トリガーされたレコードに関連するレコードを自動的に更新する要素を作成します。

  1. レコードトリガーフローを作成します。
    • [オブジェクト] で [商談] を選択します。
    • [Trigger the Flow When (フローをトリガーする条件)] で [A record is updated (レコードが更新された)] を選択します。
    • [Set Entry Conditions (エントリ要件を設定)] セクションで次を設定します。
      • [Condition Requirements (条件の要件)] で [All Conditions Are Met (AND) (すべての条件に一致 (AND))] を選択します。
      • [Field (項目)] で [Name (名前)] を選択します。
      • [Operator (演算子)] で [Contains (次の値を含む)] を選択します。
      • [Value (値)] に Retention (顧客維持) と入力します。
      • [条件を追加] をクリックします。
      • 2 つ目の [Field (項目)] で [Stage (フェーズ)] を選択します。
      • 2 つ目の [Operator (演算子)] で [Equals (次の文字列と一致する)] を選択します。
      • 2 つ目の [Value (値)] で [Closed Lost (不成立)] を選択します。
    • [When to Run the Flow for Updated Records (更新されたレコードでフローを実行するタイミング)] で [Only when a record is updated to meet the condition requirement (条件の要件に一致するようにレコードを更新したときのみ)] を選択します。
  2. キャンバスで 要素を追加 をクリックします。
  3. [Update Related Records (関連レコードを更新)] を選択します。
    この選択肢を選択すると、[Update Records (レコードを更新)] 要素が作成され、[Update records related to the opportunity record that triggered the flow (フローをトリガーした商談レコードに関連するレコードを更新)] オプションがデフォルトで選択されます。
    • [Label (表示ラベル)] に「Close Cases (ケースをクローズ)」と入力します。
      [API Name (API 参照名)] に Close_Cases と自動入力されます。
    • [How to Find Records to Update and Set Their Values (更新するレコードを検索してその値を設定する方法)] で、[Update records related to the opportunity record that triggered the flow (フローをトリガーした商談レコードに関連するレコードを更新)] が選択されていることを確認します。
    • [Records Related to Opportunity (商談に関連するレコード)] で、[Triggering Opportunity (トリガー商談)][Account ID (取引先 ID)][Cases (ケース)] の順に選択します。
      この選択により、フローをトリガーした商談に関連する取引先が特定され、その取引先に関連するすべてのケースが選択されます。
    • [Set Filter Conditions (検索条件を設定)] セクションで次を設定します。
      • [Condition Requirements to Update Record (レコードを更新するための条件の要件)] で [All Conditions Are Met (AND) (すべての条件に一致 (AND))] を選択します。
      • [Field (項目)] で、[Status (状況)] を選択します。
      • [Operator (演算子)] で [Does Not Equal (次の文字列と一致しない)] を選択します。
      • [Value (値)] で [Closed (クローズ済み)] を選択します。
    • [Set Field Values for the Case Records (ケースレコードの項目値を設定)] セクションで次を設定します。
      • [Field (項目)] で、[Status (状況)] を選択します。
      • [Value (値)] で [Closed (クローズ済み)] を選択します。
  4. フローを保存します。
    • [Flow Label (フロー表示ラベル)] に「Close Account's Cases from Retention Opp Lost (顧客維持のための商談不成立時に取引先のケースをクローズ)」と入力します。
      フローの API 参照名は自動入力されます。

これで完了です。1 つの要素だけで、フローは非常に多くのケースを更新できます。

前述の手順に対応する完成したフロー。

ただし、これは単純なレコードトリガーのシナリオです。多くのフローでは、さらに複雑な内容を作成する必要があります。

複数レコードを取得する

1 つの変数に複数のレコードを取得して保存するには、単一レコードを取得する要素を使用しつつ、設定を変更します。

ご存じのとおり、[Get Records (レコードを取得)] 要素は単一のレコードを取得し、レコード変数に保存します。ただし、複数のレコードを取得し、それらをすべてコレクション変数に保存するように [Get Records (レコードを取得)] 要素を設定することもできます

コレクション変数とは

コレクション変数は、複数のテキスト文字列、数値、日付などを保持できる変数です。ただし、保持する値はすべて同じデータ型である必要があります。たとえば、数値データ型のコレクション変数には、日付や英数字のテキストを保存することはできません。一方で、多数の数値を保存することはできます。コレクション変数は、複数のレコードを保持することもでき、それらのレコードに含まれるすべての項目も保持します。

なぜコレクション変数を使用するのでしょうか。コレクション変数は、フロー内で同じ方法で処理される関連情報を保存するために使用します。たとえば、評価や更新を行うレコードのグループ、営業担当に表示する商品の説明のコレクション、同じ通知を受け取る複数のメールアドレスなどです。

Note

このバッジおよび Flow Builder の UI では、「コレクション」や「コレクション変数」という用語が使用されますが、 これらは同じ意味です。また、「レコードコレクション」や「レコードコレクション変数」という用語も、同じ意味で使用されます。

[Get Records (レコードを取得)] 要素を使用してコレクション変数を作成する

次に、コレクション変数を使用するシナリオを確認します。Pyroclastic では、Onboarding Project (オンボーディングプロジェクト) と Onboarding Project Step (オンボーディングプロジェクトステップ) という 2 つのカスタムオブジェクトを使用して、新規顧客のオンボーディングプロセスを追跡しています。1 つのオンボーディングプロジェクトには複数のオンボーディングプロジェクトステップが含まれ、通常は 1 人の Pyroclastic チームメンバーが複数のステップを同時に担当します。イネーブルメントチームから、複数のステップの状況を一度に更新できるツールが要求されました。1 つのプロジェクトから複数のステップを選択し、それらすべてに新しい [Status (状況)] 値を設定できる画面フローを作成します。

  1. 画面フローを作成します。
  2. プロジェクトの ID を受け取る変数を作成します。
    • [API Name (API 参照名)] に recordId と入力します。
    • [データ型] で [テキスト] を選択します。
    • [Availability Outside the Flow (フロー外部での可用性)] で [Available for input (入力で使用可能)] を選択します。
  3. キャンバスで Add Element をクリックし、[Get Records (レコードを取得)] を選択します。
    • [Label (表示ラベル)] に「Get Steps (ステップを取得)」と入力します。
      [API Name (API 参照名)] に Get_Steps と自動入力されます。
    • [Object (オブジェクト)] で [Onboarding Project Step (オンボーディングプロジェクトステップ)] を選択します。
    • [Condition Requirements (条件の要件)] で [All Conditions Are Met (AND) (すべての条件に一致 (AND))] を選択します。
    • [Field (項目)] で [Onboarding Project (オンボーディングプロジェクト)] を選択します。
    • [Operator (演算子)] で [Equals (次の文字列と一致する)] を選択します。
    • [Value (値)] で [recordId] を選択します。
    • [How Many Records to Store (保存するレコード数)] で、[All records (すべてのレコード)] を選択します。
    • [How to Store Record Data (レコードデータの保存方法)] で、[Automatically store all fields (すべての項目を自動的に保存)] が選択されていることを確認します。
  4. フローを保存します。
    • [Flow Label (フロー表示ラベル)] に「Choose Steps to Update (更新するステップを選択)」と入力します。
      [Flow API Name (フロー API 参照名)] に Choose_Steps_to_Update と自動入力されます。
    • [保存] をクリックします。
      前述の手順に対応する完成したフロー。

[All records (すべてのレコード)][Automatically store all fields (すべての項目を自動的に保存)] を選択すると、[Get Records (レコードを取得)] 要素は、条件に一致するすべてのレコードのすべての項目を 1 つのコレクション変数に保存します。すべてのデータは、各レコードの項目構造と ID を保持したまま、整理された状態で保存されます。新しく作成された [Get Steps (ステップを取得)] 要素によるコレクション変数は、ツールボックスを切り替え をクリックして、[Resources (リソース)] リストにある [Record Collection Variables (レコードコレクション変数)] セクションで確認できます。この変数は、[Get Steps (ステップを取得)] 要素によって取得された Onboarding Project Step (オンボーディングプロジェクトステップ) レコードを保持するため、「Onboarding Project Steps from Get Steps (Get Steps から取得したオンボーディングプロジェクトステップ)」という表示ラベルが付けられます。

[Onboarding Project Steps from Get Steps (Get Steps から取得したオンボーディングプロジェクトステップ)] 変数は、ツールボックスの [Manager (マネージャー)] > [Resources (リソース)] > [Record Collection Variables (レコードコレクション変数)] にあります。

次の単元では、このフローの作成を続けます。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む