データを双方向に転送する
学習の目的
この単元を完了すると、次のことができるようになります。
- Salesforce データを AppFlow に自動的に送信するように Salesforce 変更データキャプチャ (CDC) とプラットフォームイベントを設定する。
- Amazon Simple Storage Service (Amazon S3) から Salesforce にデータを送信するフローを設定する。
Salesforce から AWS にデータを自動的に送信するようにするには、フローの作成プロセス中に Salesforce の変更データキャプチャ (CDC) と AppFlow のプラットフォームイベントを有効にします。この処理は簡単なクリック操作で実行できます。最初に、Salesforce 組織に移動します。
Salesforce で変更データキャプチャを有効にする
- Salesforce で、 をクリックして [設定] を選択します。
- [クイック検索] に
変更データキャプチャ
と入力し、[変更データキャプチャ] をクリックします。 - 変更イベント通知を生成するオブジェクトを選択して、[選択されたエンティティ] 列に移動します。
- 続いて、[保存] をクリックします。
これで半分が終了しました。次は Amazon AppFlow に移動します。
AppFlow でイベントトリガーを設定する
- AWS マネジメントコンソールで、[Find Services (サービスを検索する)] 項目に
AppFlow
と入力します。 - [Amazon AppFlow] をクリックします。
- 続いて、[Create flow (フローを作成)] をクリックします。
2 つ目の単元で説明した手順に従って、新しいフローを作成します。前述のとおり、送信元を選択するときに、Salesforce イベントを選択し、ドロップダウンから Salesforce イベントの名前を選ぶ必要があります。[Flow trigger (フロートリガー)] ページに移動すると、複数のオプション (オンデマンドで実行、スケジュールに従って実行、イベント時にフローを実行) が示されます。変更があった時点で CDC を使用してデータを AWS に送信する場合は、[Run flow on event (イベントでフローを実行)] を選択します。
CDC とイベントトリガーが有効になっている場合は、次に該当すると Salesforce から AWS に新しいデータが送信されます。
- 新規レコードの作成
- 項目データの変更
Amazon AppFlow の [Run history (実行履歴)] タブで対象のイベントを監視できます。
フロー作成プロセス中に項目の対応付けも行うため、Salesforce では、イベントがトリガーされた時点で対応付けられた特定の項目のデータのみが送信されます。
AWS からデータを Salesforce に転送する
次は、AWS から Salesforce という逆方向のデータのフローを見ていきましょう。送信元については、別の Salesforce インスタンスなどさまざまなものの中から選択することや、Amazon S3 を選択することができます。いくつかの事項を準備する必要があります。
- 最初にすべきことは、S3 バケットがまだない場合に作成することです。
- 続いて、そのバケット内にフォルダーを作成します。
- 次に、更新する Salesforce オブジェクトに対応付ける CSV ファイルを作成して、S3 にアップロードします。
Amazon S3 から CSV を作成する
CSV を作成するときは次のベストプラクティスに従います。
- CSV ファイルに、Salesforce の項目に対応付ける項目名を記載したヘッダー行が必要である。たとえば、Salesforce に新しい取引先責任者レコードを挿入する、あるいは既存の取引先責任者レコードを更新するとします。ヘッダーに取引先責任者 ID、取引先責任者名、取引先責任者メールのほか、挿入または更新する Salesforce のその他の項目を記載した CSV ファイルを作成します。
- ヘッダーの下の各行に、挿入または更新するレコード ID が記載されている。次の例は 1 行目がヘッダーで、UniqueID、姓、名、会社、役職、メール、所有者 ID、AccountID といった項目名が示されています。2 行目には、Salesforce の既存の取引先責任者レコード (ID が 0036g00000l3laiAAA) の更新に使用する値が記載されています。新規レコードは、UniqueID が空白です。
Amazon S3 を送信元とするフローを作成する
- AWS マネジメントコンソールで、[Find Services (サービスを検索する)] 項目に
AppFlow
と入力し、[Amazon AppFlow] をクリックします。 - 次に、[Create flow (フローを作成)] をクリックします。[Configure flow (フローを設定)] ページが表示されたら、このモジュールの前半で作成したフローと同様の手順を実行します。
- フローに名前を付け、説明を入力して、[Next (次へ)] をクリックします。
- ドロップダウンリストで送信元に [Amazon S3] を選択して、先ほど作成したバケットを選択します。
- [Enter bucket prefix (バケットプレフィックスを入力)] 項目に、作成したフォルダーの名前を入力します。
- 送信先に [Salesforce] を選択します。Salesforce ログイン情報を使用してログインするよう指示されます。正常にログインすると、AppFlow にリダイレクトされます。
- 更新する Salesforce オブジェクトを選択し、[Next (次へ)] をクリックします。
Salesforce を更新する場合、3 通りのオプションがあります。
- 新規レコードを挿入: この設定を選択すると、Amazon AppFlow が CSV データを、選択した Salesforce オブジェクトに新規レコードとして挿入します。これはデフォルトのオプションです。
- 既存のレコードを更新: この設定を選択すると、Amazon AppFlow がソースデータを使用して、Salesforce の既存のレコードを更新します。Amazon AppFlow がソースレコードごとに、条件に基づいて Salesforce の一致するレコードを検索します。一致条件は、[Map data fields (データフィールドをマッピング)] ページで指定できます。一致するレコードが見つかった場合は、Amazon AppFlow が Salesforce のレコードを更新します。一致するレコードが見つからない場合は、選択したエラー処理オプションに従って、Amazon AppFlow がレコードを無視するか、フローを失敗にします。エラー処理の環境設定は、[Configure flow (フローを設定)] ページで指定できます。
- レコードの更新/挿入: この設定を選択すると、Amazon AppFlow が Salesforce で更新/挿入操作を実行します。Amazon AppFlow がソースレコードごとに、条件に基づいて Salesforce の一致するレコードを検索します。一致するレコードが見つかった場合は、Amazon AppFlow が Salesforce のレコードを更新します。一致するレコードが見つからない場合は、Amazon AppFlow がデータを新規レコードとして更新/挿入します。
次の例では、[Update existing records (既存のレコードを更新する)] が選択されています。CSV の [UniqueID] が選択され、Salesforce の [取引先責任者 ID] に対応付けられています。
続いて、「Source to destination field mapping (送信元から送信先フィールドへのマッピング)」インターフェースで、送信元の残りの項目を送信先に対応付けることができます。
これが対応付けの手順です。対応付けを削除したり、間違えた場合に調整したりすることもできます。この後、残りのフローを通常どおり設定し、Amazon S3 のデータに基づいて Salesforce の更新を確認します。
まとめ
このモジュールでは、Amazon AppFlow について学習しました。具体的には、データを保護するしくみや、自動化されたシンプルなフローを設定する方法について説明しました。Salesforce と AWS のどちらからでもお客様の統合ビューを取得できるようにするという目的に向けて一歩前進することができました!