進行状況の追跡を始めよう
Trailhead のホーム
Trailhead のホーム

フローへのアクションの追加

学習の目的

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

  • Flow Builder で使用できるアクションを挙げる。
  • どのような場合にデータ要素内でレコード変数を使用するかを理解する。
  • [Chatter に投稿] コアアクションを設定する。

フローからの Salesforce データの操作

フローの実力は、ユーザに代わって自動的に操作を実行することで発揮されます。たとえば、データの更新、メールの送信、外部システムへの情報の送信など、(Apex やローカルアクションとの統合のおかげで) 想像できるほぼすべてのことを実行できます。

フローでは、レコードからの値の取得、外部システムへの接続、レコードの作成、レコードの更新、レコードの削除など、あらゆることを実行できます。

メモ

メモ

対象は Salesforce オブジェクトだけではありません。データ要素を使用すると、次のことも実行できます。

  • プラットフォームイベントメッセージの公開 ([レコードの作成] 要素でのみ可能)
  • 外部オブジェクトレコードの操作

レコードの取得

レコードを取得要素では、参照するオブジェクト、オブジェクトのレコードを絞り込む方法、絞り込まれたレコードを並び替える方法を指定します。次に、保存するレコード数とそれらのレコードの値を保存する場所を指定します。

条件を満たすすべてのレコードを保存することを選択した場合、レコードの値をレコードコレクション変数に保存する必要があります。最初のレコードのみを保存することを選択した場合、レコードの値をレコード変数または別個の変数に保存できます。

[New Contact (新規取引先責任者)] フローの [Find a Match (一致の検索)] 要素を見てみましょう。

レコードを取得要素。ユーザが [Contact Info (取引先責任者情報)] 画面に入力した姓と名に一致する取引先責任者レコードを取得し、最初に返された取引先責任者の ID を {!existingId} 変数に保存します。

ユーザが画面 (2) で入力した姓と名に一致する取引先責任者を 1 件以上 (1) 検索します。名前画面コンポーネントでは、[名] の値を {!contact.FirstName}、[姓] の値を {!contact.LastName} に保存しました。フローが一致を検出すると、取引先責任者の ID を {!existingId} 変数に保存します (3)。そうでない場合は変数を null に設定します (4)

({!existingId} 変数は [Update or Create? (更新か作成か?)] 決定で、更新する取引先責任者の有無を判断するために使用されます。)

レコードを更新要素

レコードを更新要素では、更新するレコードと、それらのレコードを更新する方法を指定します。

  • レコード変数またはレコードコレクション変数の使用を選択すると、フローはその変数の ID を使用して更新するレコードを識別し、変数の他の項目値を使用してレコードを更新します。
  • それ以外の場合は、更新するレコードを識別する絞り込み条件を手動で設定します。このオプションでは、変更する項目値も手動で指定します。

各オプションを使用した場合の [New Contact (新規取引先責任者)] フローの [Update Contact (取引先責任者の更新)] 要素は次のようになります。

レコード変数オプション {!contact} レコード変数の値を使用するレコードを更新要素
手動オプション フローのリソースを使用して手動で項目値を対応付けるレコードを更新オプション

フロー全体を通じて {!contact} レコード変数に適切な値が入力されているため、[Update Contact (取引先責任者の更新)] 要素では、レコード変数を使用して一致する取引先責任者レコードを更新します。

  • FirstName と LastName は、[Contact Info (取引先責任者情報)] 画面で入力されます。
  • Id は、[Set Contact ID (取引先 ID の設定)] 割り当てで入力されます。

レコードの作成要素

複数のレコードを作成するには、レコードコレクション変数の値を使用する必要があります。フローの前半で、レコードコレクション変数に新しいレコードの項目値を入力します。作成された各レコードについて、フローは作成されたレコードの ID をレコードコレクション変数の ID 項目に保存します。

1 つのレコードを作成するには、レコードの値を設定する 2 つのオプションがあります。

  • レコード変数に新規レコードの項目値を入力している場合、レコード変数のすべての値を使用してレコード項目を設定します。次に、使用するレコード変数またはレコードコレクション変数を選択します。レコードが作成されると、フローは作成されたレコードの ID をレコード変数の ID 項目に保存します。
  • フローのさまざまなリソースの値を手動で対応付けるには、個別の変数、リソース、リテラル値を使用してレコード項目を設定します。必要に応じて、作成したレコードの ID をテキスト変数に保存します。

各オプションを使用した場合の [New Contact (新規取引先責任者)] フローの [Create Contact (取引先責任者の作成)] 要素は次のようになります。

レコード変数オプション {!contact} レコード変数の値を使用するレコードの作成要素
手動オプション フローのリソースを使用して手動で項目値を対応付けるレコードの作成オプション

[Contact Info (取引先責任者情報)] 画面で {!contact} レコード変数の FirstName 項目と LastName 項目が入力されるため、[Create Contact (取引先責任者の作成)] 要素では、レコード変数を使用して一致する取引先責任者レコードを更新します。

フローからのその他のアクションの実行

これで、フローから Salesforce データを操作する準備は整いました。その他のことについては、Flow Builder のアクション要素またはサブフロー要素が必要です。

Flow Builder ツールボックスのアクション要素

アクション要素

アクションはツールボックスのインタラクション要素の 1 つです。アクション要素をキャンバスにドラッグするとき、[【Search All actions...|すべてのアクションを検索...】] プルダウンリストから、使用する特定のアクションを選択して設定できます。

アクション要素

各アクションでは、何を行うかを指定するために値が要求されます。これらが入力です。たとえば、[Chatter に投稿] では 5 つの入力が要求されます。これらを使用して、投稿する内容 (下の [メッセージ] 項目参照) や場所を指定します。

[Chatter に投稿] コアアクションの [入力値を設定] タブ

一部のアクションは、情報を使用して応答します。この情報は、通常はアクションの結果に関係しています。これらが出力です。たとえば、[Chatter に投稿] では、作成したフィード項目の ID が提供されます。その ID をフロー内の後の方で使用する場合 (作成した Chatter 投稿へのリンクを表示するなど) は、値をフロー変数に保存します。

[Chatter に投稿] コアアクションの [出力値を保存] タブ

アクション種別

Salesforce 内で他に作成や設定を行わなくても、次のアクションを使用できます。

  • Chatter に投稿
  • メールを送信
  • 承認申請
  • 権限セットを有効化または無効化
  • Salesforce によって提供されるグローバルアクションまたはオブジェクト固有のアクション

クリック操作で作成したアクションを含めることもできます。

  • 組織内のその他のフローは [サブフロー] 要素から使用できます。
  • グローバルおよびオブジェクト固有のカスタムアクションは、[アクション] 要素から使用できます。

コードが必要なアクションを含めることもできます。さらに、AppExchange やサードパーティライブラリからカスタムアクションをインストールできます。

  • Salesforce データベース内で何かを実行するには、Apex アクションを作成またはインストールします。
  • ブラウザで何かを実行するには、ローカルアクションを作成またはインストールします。

フローの更新

「フローの基本」モジュールのビジネス要件によると、確認画面でフローの処理内容をまとめるだけでは十分ではありません。要件をもう一度確認しましょう。

要件 使用する要素の種類
ユーザから取引先責任者の名、姓、取引先などの情報と、一致する取引先責任者が存在する場合の対処法を収集する。 画面
一致する取引先責任者レコードを検索する。 アクション
一致するレコードが見つかったかどうかを確認する。 ロジック
一致が存在しない場合、取引先責任者を作成する。 アクション
一致が存在する場合、取引先責任者を更新する。 アクション
両方のブランチで、フローが行った処理を Chatter で確認する。 アクション
両方のブランチで、フローが完了したことを確認する。 画面

ここまでで、フローはほとんどの要件を満たしていますが、最後のアクション、「フローが行った処理を Chatter で確認する」だけが残っています。

[Chatter に投稿] アクションの追加

  1. [アクション] 要素をキャンバスにドラッグします。
  2. [アクション] で、「Cha」と入力し、[Chatter に投稿] を選択します。
  3. アクションの表示ラベルに「Post to Contact's Feed」(取引先責任者のフィードに投稿) と入力します。
  4. アクションの入力を設定します。入力値によって、投稿するメッセージと投稿先の Chatter フィードを指定します。このユースケースでは、必須入力のみを設定します。
    1. [メッセージ] で、[新規リソース] を選択し、[テキストテンプレート] を選択します。

      テキストテンプレートは、差し込み項目や HTML 書式をテキストに追加するのに便利なリソースです。

    2. テキストテンプレートに「chatterMessage」という名前を付けます。
    3. [テキストテンプレート] で、次の手順を実行します。
      1. 「The contact was」(取引先責任者が) と入力します。
      2. リソースピッカーで、「created」と入力し、先ほど作成した数式 created_or_updated を選択します。
      3. 「.」(されました。) を追加して、文を完成させます。

      最終的なテキストテンプレートは次のようになります。「The contact was {!created_or_updated}.」(取引先責任者が {!created_or_updated} されました。)

    4. [完了] をクリックします。
    5. [メッセージ] で、「message」(メッセージ) と入力し、作成したテキストテンプレートを選択します。
    6. [対象名または ID] で、「{!contact.Id}」と入力し、[Id] 項目を選択します。
    7. [完了] をクリックします。

これで、テキストテンプレートを使用して、フローが作成または更新した取引先責任者レコードの Chatter フィードにメッセージを投稿するアクションを設定できました。

要素の接続

最後のステップでは、アクションをフローの他の部分に接続して、フローが実行されたときに Chatter 投稿が作成されるようにします。このアクションを確認画面の前に置いて、確認がフローの最後のステップになるようにしましょう。

  1. [Create Contact (取引先責任者の作成)] 要素と [Update Contact (取引先責任者の更新)] 要素を [Chatter に投稿] コアアクションに接続します。
  2. [Chatter に投稿] コアアクションを [Confirm (確認)] 画面に接続します。
  3. フローを保存し、警告は無視します。
    新しい [Chatter に投稿] コアアクションとそのコネクタが強調表示されている [New Contact (新規取引先責任者)] フロー

これで完了です。[New Contact (新規取引先責任者)] フローは「フローの基本」モジュールに記載されている要件をすべて満たすようになりました。ビジネス要件に合わせてフローを作成できたので、次のモジュール「フローのテストと配布」では、フローのテスト、有効化、ユーザへの配布について学習します。