ablog

不器用で落着きのない技術者のメモ

AWS AppFlow で Salesforce 連携してみたメモ

共通

  • エラー処理
    • Amazon AppFlow が送信先にレコードを書き込めない場合
      • 現在のフロー実行を停止する:エラーが発生すると処理が停止する
      • フロー実行を無視して続行する:エラーが発生しても処理を続ける
    • 転送できなかったデータを書き込む:指定した S3 のパスにエラーメッセージが出力される

f:id:yohei-a:20210507130659p:plain

Salesforce→S3連携

    • 標準オブジェクトもカスタムオブジェクトも連携可能
    • 接続するとプルダウンでオブジェクトが表示されるので連携するオブジェクトを選択すればよい
    • 出力先の S3 バケットプリフィックスを選択できるが、プリフィックスの最後に「/フロー名」が自動で入る
    • データ形式: JSON/CSV/Parquet を選択できる
    • データ転送の設定: 「すべてのレコードを集約する」を選択すると1実行時で1ファイルになる
    • ファイル名の設定: 「ファイル名にタイムスタンプを追加する」を選択すると file name-YYYY-MM-DDTHH:mm:ss というファイル名になる。
      • 例: f047686c-107a-3758-9c02-0cdc0d9a47c6-2021-05-01T07:31:28
    • スケジュール実行にすると、増分転送しか選択できない(完全転送は選択できない)
      • 増分転送では、作成日/System Modsatmp/最終更新日/最終参照日 などを選択できる
    • Salesforce がソースの場合以下の設定が可能
      • 新しく追加されたフィールドを自動的にインポートする情報: 新しいフィールドを今後のフロー実行でマッピングおよびインポートできるようにします。このオプションは、フローの設定時にすべてのフィールドをマッピングすることを選択した場合にのみ使用できます。
      • 削除されたレコードのインポート情報: Salesforce で削除されたレコードを送信先に転送するように Amazon AppFlow を有効にします。
増分転送
  • [フロートリガー]で[スケジュール通りにフローを実行]を選択した場合、Salesforce オブジェクトの更新がなければ連携されない。
  • 増分転送の場合、差分だけ転送するため Salesforce オブジェクトのソースタイムスタンプフィールドを選択する
タイムスタンプフィールド 意味
CreateDate レコード作成日時
LastModifiedDate ユーザーによるレコード最終更新日時
SystemModStamp ユーザーまたはシステムによるレコード最終更新日時
LastViewdDate このレコードに関連するレコード、またはリストビューに最後にアクセスした日時
LastReferencedDate レコードまたはリストビューを最後に表示した日時

S3->Salesforce連携

  • 送信元は S3 のプレフィックスまで指定する
  • そのプレフィックス以下に CSV 形式のファイルが 1 つ以上あり、先頭行はフィールド名のリストがカンマで区切られている必要がある
  • フローを作成する際に CSV をS3バケットにおいておくとカラムを検出してくれる