今回のテーマは外部連携。
Sales Cloud試験対策としては、一旦認証などのセキュリティ周りは置いておいて、どの場面でどの手法を使用するかが重要視されます。
キーには外部IDを使う
まず、前提となるのが、Salesforceと外部Webサービスで同じ情報を参照するために、それぞれのレコードの間で共通となるキー情報が必要となります。
Salesforce側はSalesforceIdという一意のキーがありますが、外部連携においては推奨されません。
ランダムに割り当てられることと、一度Insertしないと生成されないため、外部連携には不向きです。
一回Insertして、SalesforceIdを外部Webサービスに手動で割り当てるのは手間ですからね。
そのため、ユニークとなる外部IDを使用して、連携のキーとすることが推奨されます。
外部IDについては、データインポートの所でも少し触れましたが、以下のデータ型で使用可能となります。
- テキスト
- 数値
- 電子メール
Salesforceから外部Webシステムへの連携
Salesforceから外部のWebサービスへ連携する場合は、以下の方法が使用されます。
それぞれ、用途によって使い分けするため、どれが業務要件に沿っているかの判断が必要になります。
- カスタムボタン(リンク)
- バッチ連携
- Apex(コールアウト)
方法 | リアルタイム | 大量データ | 特殊なロジック |
---|---|---|---|
カスタムボタン(リンク) | ○ | × | × |
バッチ連携 | × | ○ | × |
Apex(コールアウト) | △ | △ | ○ |
このように、一長一短があるので、複数の方法がある訳ですが、重要なのは何を重視するか。
リアルタイムの連携が必要であればカスタムボタン(リンク)、大量データを処理したい場合はバッチ連携、数式などで処理できない特殊なロジックを要する場合は独自にApexを組んでその中でコールアウトする必要があります。
外部WebシステムからSalesforceへの連携
今度は逆に外部WebシステムからSalesforceへ連携するケース。
こちらは、SOAPやRESTが使用できるので、外部Webシステムから叩いてあげることで、データの取得や更新が可能になります。
標準のSOAPやRESTで提供しきれない計算があった場合は、Apex RESTなどを使用してカスタムのWebサービスを公開することも可能です。
Apex RESTを使ったWebサービスの組み方はデベロッパー領域なので、興味がある方はこちらを参照。
一応、知識として入れておいて損はないんですが、試験の特性上受け側のケースは出しにくいという印象はありますね。
SOAPを使おうが、RESTを使おうが、外部システムさんが決めればいいでしょという話になるので。
どちらかと言うと、外部システムの資格試験で扱うべき内容に近いかな。
まとめ
最後にまとめに入ります。
といっても、繰り返しになりますが、結局は何を重視したいかがポイントになります。
- リアルタイムの連携が必要であればカスタムボタン(リンク)
- 大量データを処理したい場合はバッチ連携
- 数式などで処理できない特殊なロジックを要する場合はApexからコールアウト
コメント