Salesforce Connect を使用した Salesforce と Heroku のインテグレーション
学習の目的
この単元を完了すると、次のことができるようになります。
- Salesforce Connect アーキテクチャを検討する。
- Salesforce Connect カスタムアダプターを作成する。
- いつどのように Heroku で Salesforce Connect を使用するか説明する。
Salesforce Connect と Heroku
Salesforce Connect を使用すると、外部データをデータベースにコピーすることなく Salesforce に容易にプロキシ化できます。この方法では、データを Salesforce に取り込んで、そのデータを Salesforce の他のオブジェクトに関連付けることができます。Salesforce Connect は、さまざまなデータソースと連携します。
- Salesforce Connect を使用してあらゆる OData 2.0 データソースを Salesforce に取り込むことができます。
- Heroku Connect は、Heroku Postgres データベースを Salesforce Connect に公開できます。
- Heroku アプリケーションは、Salesforce Connect で使用できるエンドポイントを提供できます。
この単元では 3 番目のオプションに焦点を当てます。他のオプションについては、Salesforce Connect で Heroku Postgres データベースを使用する方法をHeroku Connect 外部オブジェクトで確認できます。
Heroku アプリケーションは、Web アプリケーションやモバイルアプリケーションだけでなく REST サービス用の Web エンドポイントを提供できます。Apex を使用すると Salesforce で REST サービスを簡単に使用できるため、Salesforce Connect のカスタムアダプターを記述して、REST サービスが提供するデータを簡単にプロキシ化できます。
Salesforce Connect カスタムアダプターの主な使用事例は、標準の Salesforce UI に役立つデータを外部システム (Heroku アプリケーションなど) が提供している場合です。たとえば、顧客向けの不動産アプリケーションが Heroku 上にあり、REST データを JavaScript およびモバイル UI に公開しているとします。いくつかの不動産データを Salesforce UI に取り込めむことができたら、バックオフィスのビジネスプロセスとレポートでそのデータを使用することができます。この場合、必要なことは、Heroku で実行されている REST サービスから Salesforce Connect 構造へのアダプターを記述するだけです。
従来の ETL の方法ではなく Salesforce Connect を使用する主な利点は、データが常に同期されていることです。データはコピーされるのではなく、ほぼリアルタイムで取得されるためです。
Salesforce Connect と Heroku 入門
Salesforce Connect カスタムアダプターの学習を開始するには、ブログ投稿 「Rendering GitHub JSON Data in Salesforce (Salesforce で GitHub JSON データを表示する)」を確認してください。Heroku での REST サービスの実行に習熟していない場合は、ニーズと経験に一致するプログラミング言語とフレームワークを選択してください。
Heroku の REST エンドポイントを使用する準備ができたら、Salesforce Connect とサービスをつなぐための Apex コードを書くだけです。不動産 REST サービスの例では、簡単な Apex アダプターを使用できます。このアダプターは、次のような基本構造で DataSource.Connection クラスを拡張し、sync()、query()、および search() メソッドを実装します。
カスタム検索機能を使用して search() メソッドを実装したり、この検索の標準のユーティリティを使用したりできます。
sync() メソッドは、外部オブジェクトのデータ構造について Salesforce に指示します。この例では、数個の列を持つ 1 つのテーブルのみを追加できます。ExternalId、DisplayUrl、および Name 項目は必須です。
Salesforce のユーザーが外部オブジェクトのレコードリストにアクセスすると、query() メソッドがデータを取得および解析して、sync() メソッドで定義されたデータ構造にデータを変換します。不動産 REST サービスの query() メソッドの例を次に示します。
getProperties() メソッドは、Heroku 上の不動産 REST API への要求を実行します。query() メソッドは、データを外部オブジェクトのデータ構造に変換します。
その他の設定手順を完了したら、不動産データを Salesforce で使用できます。
Salesforce Connect はデータをプロキシ化します。そのため、ユーザーがデータを要求するたびに Salesforce Connect がアダプターを使用してデータを取得します。これで、データが Heroku 上のアプリケーションから取得されていることを除き、データを Salesforce 内の他のデータと同様に表示して使用できます。
Salesforce Connect の高度な機能
Salesforce Connect カスタムアダプターを使用すると、データを Heroku から Salesforce に簡単に取り込むことができます。これはとても簡単です。また、異なるデータセット間でリレーションを定義することもできます。外部オブジェクトのリファレンスについては、DataSource.Column に関するドキュメントを確認してください。
プロのヒント: この簡単な例では匿名データを使用していますが、ほとんどの場合で、外部データストアとの何らかの認証形式を使用します。Apex ドキュメントで外部データソースの認証についての詳細を確認してください。
Salesforce Connect カスタムアダプターは、データページングを処理することもできます。これは、REST サービスで大きなデータセットを公開する場合に欠かせないものです。