Contents
概要
Salesforce組織同士でシステム連携を行いたい場合にどうするかという話
以下についてそれぞれ見ていきます。
- 手動連携
- Salesforce to Salesfoce
- Salesforce Connect
- API開発
- DataLoader
- EAI型iPaaS
- レシピ型iPaaS
手動連携
導入コスト・開発コストがゼロ。
連携に必要に関してのみ任意のタイミングに担当者に通知されるよう設定した上で、担当者が連携先組織にログインして手動操作。
Salesforce to Salesforce
https://help.salesforce.com/articleView?id=business_network_intro.htm&type=5
設定手順は以下の通り。
- 送り手側でSFの有効化+共有したいオブジェクトの「Publish」
- 受け手側でSFの有効化+受け取りたいオブジェクトの「Subscribe」
- 送り手側の関連リストにExternal Sharingを追加して、Classicから手動共有(レコードごとorリストビューから複数レコード選択)
毎回毎回Classicに切り替えて手動操作する必要があり、今となってはかなり面倒。
下記の仕様にも留意。
- 標準オブジェクトに関しては、送信元と受信側は同一のオブジェクトではなくてはならない
- カスタムオブジェクトに関しては、任意のカスタムオブジェクトの任意の項目を、
任意のカスタムオブジェクトの任意の項目に対して連携可能(※マッピングを行う)
Salesforce Connect
https://help.salesforce.com/articleView?id=xorg_adapter_about.htm&type=5
「外部オブジェクト」にデータが溜まっていく。
別組織のデータをただ参照だけできればよいならこれ一択。
外部オブジェクト≠自組織で既に用いている各種オブジェクトであるため、自組織のオブジェクトのレコードとして扱いたければ変換するためのロジック開発が追加で必要。
記憶では有償。
REST API(OAuth 2.0 authentication)
http://www.webtrafficexchange.com/salesforce-rest-api-example
https://developer.salesforce.com/forums/?id=906F0000000BNO4IAO
色々めんどい。標準のREST APIならまだOK。Apex Rest Web Serviceとかは特にめんどい。
データローダによるバッチ処理
自社のファイルサーバの特定のフォルダ内にCSVが生成するように定めたうえで、当該のCSVファイルを用いて別組織のSFに対するInsert,Update,Upsert処理がなれるようにデータローダをバッチモードで動作させる。
これも正直めんどい。
iPaaS(EAI系)
中規模以上の複数システム間同期が必要である場合にのみ検討する。
- DataSpider
- SkyOnDemand
- DCSpider
iPaaS(レシピ系)
AnyflowとかIFTTTとかもあるものの、なんといってもZapier
Salesforceはプレミアムアプリであるため、課金必須(月20ドル:Task750回 月39ドル:Task1500回)
※20ドルプランの場合はTask750回までなどの制限があるため、連携の同期数が多い場合は不適
SF間での連携は諦めて、メール送信orSlack通知がリアルタイムで飛ぶようにする
開発工数5分くらいで済むので、こちらの選択肢も検討推奨