見出し画像

Salesforceと外部システム連携について(下)


ご挨拶


こんにちは!SHIFTのSalesforceグループの張です。

前回のブログ では、①アウトバウンド連携としてSalesforceから他のシステムのAPIを呼び出方法について記載しました。

今回は、②インバウンド連携として外部システムからSalesforceのAPIを利用する際の考慮事項について紹介したいと思います。 私の経歴は前回のブログでいたしましたので、今回は省略させていただきます。

外部システムからSalesforceへの連携


外部システムからSalesforceへの連携イメージは以下の図のようになります。

外部システムとSalesforceの連携設計において、考慮すべきポイントは以下の4つです。

ア:APIの種類の選択

APIを選択する前に、まずはユーザーケースをしっかりと整理することが重要です。ユーザーケースとは、実際に業務で行いたい処理内容や、扱うデータ、求められるパフォーマンスなどの要素を指します。この整理を通じて、最適なAPIを選択するための基盤を作りましょう。以下のポイントを考慮して、ユーザーケースを整理してください。

1. データの更新頻度とボリューム

  • 大量データの処理が必要な場合

もし一度に大量のデータを処理しなければならない場合は、Bulk API や Batch API といったバッチ処理に特化したAPIを選ぶ ことをお勧めします。
これらは、大量データのインポートやエクスポートに適しており、データの一括処理が効率よく行えま す。

  • リアルタイムでのデータ処理が求められる場合

データの読み書きをリアルタイムで行う必要がある場合は、REST API や SOAP API を選択するのが良いでしょう。これらは同期的にデータの取得や更新を行うことができ、リアルタイムのやり取りに適しています。

2.システム間の連携の要件

  • 異なるシステム間でのデータ交換が主な目的

異なるシステム間でデータの交換や連携を行う場合は、REST API や SOAP API がよく使われます。これらのAPIは柔軟性が高く、他のシステムとの統合が容易です。特に、REST API はWebサービスやモバイルアプリケーションとの連携でよく利用されています。

  • 高いパフォーマンスと簡便さが求められる場合

もしリアルタイムでデータの変更を監視したり、高頻度でデータを受信する必要がある場合には、Streaming API を利用するのが適しています。このAPIを使用すると、リアルタイムでデータの変更を効率的に監視することができます。

3.レスポンスの速度と安定性

  • 高速なレスポンスが求められる場合

高速なレスポンスが求められるアプリケーションでは、REST API や GraphQL API が最適です。これらのAPIは低遅延で効率的なデータの取得が可能であり、ユーザーの要求に迅速に応答できます。

  • スケーラビリティと安定性が重要な場合

多くのリクエストを処理しなければならない場合や、スケーラビリティが重視される場合は、REST API や SOAP API が適しています。これらのAPIは、負荷が高くても安定したパフォーマンスを提供することができます。

4.API利用のコストと制限

APIを利用する際には、コストや利用制限も重要な要素です。多くのAPIには使用回数やデータ量に制限があり、特に大量データを扱う場合や高頻度でAPIを呼び出す場合には、コストがかさむことがあります。選択するAPIがどのような制限を設けているか、また自分の予算と照らし合わせて、最適なAPIを選ぶことが必要です。

どのAPIを使用するか については、以下の表で簡潔にまとめています。整理したユーザーケースの内容を基に、最適なAPIを選択してください。

各種APIの開発者ガイドを以下参照してください:

『REST API 開発者ガイド』
『SOAP API 開発者ガイド』
『Connect REST API 開発者ガイド』
Apex クラスを REST Web サービスとして公開
Apex メソッドを SOAP Web サービスとして公開 『Analytics REST API 開発者ガイド』
『ユーザーインターフェース API 開発者ガイド』 『GraphQL API Developer Guide (GraphQL API 開発者ガイド)』
「Tooling API」
『Bulk API 2.0 および Bulk API 開発者ガイド』
『メタデータ API 開発者ガイド』
Pub/Sub API ドキュメント

イ:連携ETLツールの選択

ETLとは、Extract(抽出)、Transform(変換)、Load(ロード)の略で、データの抽出・変換・ロードを行うソフトウェアのことです。Salesforceと他のシステムを連携させる場合、ETLツールを利用してSalesforceからデータを抽出し、変換してから他のシステムにロードすることができます。ETLツールを使用することで、大量データを高速に処理でき、システムへの負荷を軽減し、データ変換処理も効率的に行えます。これにより、Salesforceと他のシステム自体の負荷も少なくなります。しかし、ETLツールを導入するには費用がかかります。

連携ツールを選定する際に考慮すべきポイントについては以下の通りです。

ウ:認証方式検討

適切な認証方式を選定するためには、セキュリティ要件や利便性を考慮する必要があります。認証方式にはいくつかの種類があり、システムの特徴に応じて最適なものを選択することが重要です。

今回は、SalesforceとMuleSoftの連携を例に説明します。
MuleSoftがSalesforceと接続する際には、Salesforceで接続アプリケーションを作成し、MuleSoftにConsumer Keyや証明書などを連携させます。MuleSoftで設定を行うことで、接続が可能になります。

MuleSoftとSalesforceの認証方式にはいくつかの種類があります。今回はその中からOAuth JWTを例に説明します。

・認識方式の種類が以下となります。

  • OAuth JWT認証接続の作成手順が以下①~③となります。(場合によって、設定内容が異なることがあります。ご了承ください。)

証明書と鍵の発行

今回「自己署名証明書の作成」のイメージを記載致します。

接続アプリケーションの作成

  • 接続アプリケーション作成イメージが以下となります。

  • 接続アプリケーション作成完了後、コンシューマキーを確認して、MuleSoftチームに連携する。
    コンシューマキーの確認イメージが以下となります。

③ ①②設定内容を基にMulesoftのSalesforceConnectを設定行います。設定完了後、接続テスト実行出来ます。ここは接続テスト実行を割愛します。

エ:その他考慮事項

連携に関するその他の考慮すべき点については、以下に記載します。

その他1:APIコールの制限(参照サイト:API 要求の制限と割り当て

・ 同時APIコール数の制限
    ○ 20秒以上の同時コール数
    ○ 制限数: 25(DEとトライアル: 5)
・ 合計APIコール数の割り当て 
    ○ 組織に対する24時間あたりのコール数
    ○100,000 +(ライセンス数×ライセンス種類ごとの割り当て)+追加

その他2:即応性・高負荷トランザクションが求められる要件は避ける

その他3:独自の連携処理をカスタムAPIとしてLightning Platform側で開発することで再利用性を上げ、APIコール数削減に寄与

おわりに


最後までお読みいただきありがとうございました。各システム間の連携は実際には複雑です。私は約4年、Salesforceと他のシステムの連携に携わる経験がありますが、自分の理解はまだ浅いと感じています。このブログは、これまでの経験を元に自分が理解できる範囲でまとめました。システム間のデータ連携の設計と開発の際、お役に立てたら嬉しいです。


執筆者プロフィール:張 艶艶
経歴:
システム開発経験13年。SE、SLとして従事。

取得資格:
Salesforce Administrator
Salesforce Platform Developer 1
MuleSoft 認定デベロッパー - レベル 1
Tableau Desktop Specialist
Salesforce Data Cloud Consultant
Microsoft Certified: Azure Fundamentals
Anaplan レベル1 モデル構築

趣味:
スキー、キャンプ、中華料理を作る
特技:
課題の調査 家事をやりながら仕事の難問の解決策を見つける😂

《おすすめ関連マガジン》


お問合せはお気軽に

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/

PHOTO:UnsplashKari Shea