0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SalesforceのイベントをAppFlowに伝える方法

Posted at

概要

  • SalesforceのイベントをAppFlowに伝える方法を2通り紹介したいと思う。

AppFlowを使ったSalesforce同期

  • 今まではSalesforce(以降SF)の情報をアプリケーションに同期する方法は下記のようなものが一般的だった。

    • アプリケーション側でAPIを用意する。
    • SFからアプリケーションのAPIのエンドポイントにリクエストを送る。

    private__Online_Whiteboard_for_Visual_Collaboration.png

  • 現在下記のような同期方法もあります。一見すると工程が増えて複雑ですが、諸事情により「SFからリクエストを投げる」部分の実装がなくてもSFの情報をアプリケーションに同期する事ができる。

    • AppFlowにてSFの任意のオブジェクトの更新イベントを監視する。
    • SFで任意のオブジェクトが更新されたことをきっかけにAppFlowがS3にSFの情報を書き出す。
    • LambdaがS3に情報が書き出されたことをきっかけに実行され、S3から情報を取得しアプリケーションのエンドポイントにリクエストを送る。

    private__Online_Whiteboard_for_Visual_Collaboration.png

  • 今回は後者の方法で、SFからAppFlowにイベント発生を伝える方法を2通りまとめてみます。

方法1 「変更データキャプチャ」を使う

  • この方法は簡単に設定ができるが、複雑なことはできない。
  • 指定したSFのオブジェクトに何かしらの変化(登録・更新)などがあった場合に紐づくAppFlowを実行する。
  • 例えば。。。
    • SFのAccountオブジェクトにレコードが新規登録されたら「新規登録されたAccountオブジェクトの指定した項目をCSVとして出力」する事はできる。
    • SFのAccountオブジェクトにレコードが新規登録され、Name項目が太郎だった時のみ「新規登録されたAccountオブジェクトの指定した項目をCSVとして出力」する事はできない。
  • ようは監視対象のオブジェクトに何かしらの変化があった時にAppFlowを動かすことはできる。
  • ただし「何かしらの変化」を独自にいじる事はできない。

方法2 「プラットフォームイベント」と「フロー」を使う

  • この方法は少々設定が複雑だが、複雑なトリガー条件をつけることができる。
  • 例えば。。。
    • SFのAccountオブジェクトにレコードが新規登録され、Name項目が太郎だった時のみ「新規登録されたAccountオブジェクトの指定した項目をCSVとして出力」する事ができる。
    • SFのAccountオブジェクトのレコードが更新され、何かしらのフラグ値の項目がONの場合のみ「更新されたAccountオブジェクトの指定した項目をCSVとして出力」する事ができる。
    • SFのAccountオブジェクトにレコードが新規登録され、Name項目が太郎で、かつ、何かしらのフラグ値の項目がONの場合のみ「新規登録されたAccountオブジェクトの指定した項目をCSVとして出力」するといった条件の組み合わせも行うことができる。(orやandの演算子条件も選択できる)
  • 流れとしては下記になる。
    1. プラットフォームイベントを定義する。
    2. プラットフォームイベントのメッセージ用オブジェクトが生成されるので、AppFlowに渡したい情報を項目として定義する。
    3. フローを定義する。
    4. フローのトリガーの条件(「Name項目が太郎」とか「何かしらのフラグ値の項目がON」)を設定する。
    5. フローの中で定義したプラットフォームイベント用オブジェクトの項目にAppFlowに渡したい情報を入れてレコードを作る。
    6. プラットフォームイベント用オブジェクトにレコードが作られたことを起点にAppFlowが実行されプラットフォームイベント用オブジェクトの内容をCSVに出力する。

まとめ

  • 単純な条件でAppFlowでCSVを出力する → 変更データキャプチャを使う。
  • 複雑な条件でAppFlowでCSVを出力する → プラットフォームイベントとフローを使う。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?