Heroku External Objects と Salesforce Connect
この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。
最終更新日 2022年12月08日(木)
Table of Contents
はじめに
このガイドでは、Heroku External Objects と Salesforce Connect を使用して、Heroku Postgres データベースから Salesforce にデータを統合する方法を示します。これはすべて参照によって行われます。データは Heroku Postgres に残りますが、Salesforce 内から読み取り可能であり、ほとんどの場合 Salesforce 内からの書き込みも可能です。
Heroku External Objects は、Heroku Connect enterprise
および shield
プランで動作します。demo
プランはサポートされていません。
使用する PostgreSQL データは、サンプルの DVD レンタルデータベースのものです。Heroku Postgres データベースにデータをインポートする方法については、付録セクションの手順を参照してください。
Salesforce Connect は Heroku Connect から独立した製品です。Salesforce Connect をまだ所有していない場合は、ライセンス情報について Salesforce にお問い合わせください。
Heroku External Objects の設定
前提条件として、Heroku Connect アドオンをプロビジョニングする必要があります。Heroku Connect を使用した Salesforce とのデータ同期はオプションです。Heroku External Objects のみに関心をお持ちの場合、Salesforce との接続を承認するよう求めている手順はスキップできます。
External Objects
(外部オブジェクト) タブが Heroku Connect ダッシュボードに表示されます。
Heroku External Objects を初めて使用する場合、OData サービスのログイン資格情報を作成するよう求められます。この手順を完了したら、いつでもダッシュボードからログイン資格情報を表示および管理できます。
OData 4.0 サービス URL を記録します。
設定を完了するには、公開するテーブルやビューを選択する必要があります。Heroku Connect によってアクティブに管理されていないスキーマを含め、Heroku Postgres データベース内のすべてのスキーマが使用可能になります。
テーブルと異なり、ビューでは現在、書き込みをサポートしていません。さらに Connect では、'id’ という名前の一意の値の列が各ビューに含まれている必要があります。
Salesforce Connect の使用
Salesforce 組織で OData サービスを外部データソースとして設定できるようになりました。Salesforce の設定メニューで、クイック検索ボックスに「External」と入力して “External Data Sources” を選択します。新しい外部データソースを作成するためのインターフェースは次のようになります。
OData 4.0 の読み取り/書き込み機能を使用する場合は、必ず Writable External Objects
(書き込み可能な外部オブジェクト) を選択してください。
単一のパスワードを使用するため、「Identity Type」 (ID の種類) は “Named Principal” (名前付きプリンシパル) を、「Authentication Protocol」 (認証プロトコル) は “Password Authentication” (パスワード認証) を選択します。ユーザー名とパスワードは Heroku External Objects ダッシュボードで確認できます。Heroku External Objects の資格情報をリセットする場合は、Salesforce の設定でユーザー名とパスワードも更新する必要があります。
外部データソースを保存した後、Validate and Sync
(検証して同期) をクリックして接続をチェックし、そのスキーマを同期します。
選択した各テーブルは外部オブジェクトになります。名前には当初、ピリオドの代わりに $
文字が含まれていますが、ラベルを編集できます。
ここでは “External Customer” という名前にします。
他のオブジェクトと同様、カスタムオブジェクトタブを作成して、外部オブジェクトのレイアウトをカスタマイズすることができます。
public_customer__x
という API 名の外部オブジェクトに対して SOQL クエリを実行することもできます。
SELECT Contact__c, first_name__c, last_name__c FROM public_customer__x
書き込みを有効にしているため、作成、更新、削除操作はすべて Heroku Postgres データベースに書き込まれます。
外部 ID を使用した外部オブジェクトの関連付け
外部 ID を使用して、Salesforce のレコードを、それに対応する Postgres のレコードに関連付けることもできます。Salesforce の連絡先オブジェクトに外部 ID フィールドを作成し、顧客のメールアドレスを使用してレコード同士をリンクしてみましょう。
Contact に新しいカスタムフィールドを作成し、データ型は String
を選択します。このフィールドの値は顧客のメールアドレスになり、一意の外部 ID として定義する必要があります。
外部オブジェクトに対する間接ルックアップ関係を追加できるようになりました。
以降の画面では、それを連絡先オブジェクトに関連付けて (手順 2)、外部 ID フィールドを選択します (手順 3)。
手順 4 では、必ず email
を外部列名として指定してください。
これで完了です。External Email Address (外部メールアドレス) フィールドを持つ Salesforce の連絡先が、その External Customer (外部顧客) レコードに関連付けられます。この External Customer レコードのメールアドレスリンクをクリックすると、Salesforce で Mary の連絡先レコードに移動します。
Mary の連絡先レコードには、外部オブジェクトに逆リンクする、関連付けられたリストもあります。
資格情報のリセット
Heroku External Objects の資格情報をリセットすると、ダウンタイムを発生させることなく統合を更新できるように、古い資格情報が引き続き 10 分間使用可能になります。
Heroku External Objects の資格情報をリセットするには、次の手順を実行します。
Heroku Connect ダッシュボードで接続を見つけ、[External Objects] タブをクリックします。
「Reset credentials」 (資格情報のリセット) をクリックします。
資格情報をリセットするよう求められたら、「Yes」 (はい) をクリックします。
Salesforce で External Objects が定義されている場合は、新しい資格情報を使用するように Salesforce の既存の OData 4.0 外部データソースを編集します。
リファレンス
付録: サンプルデータのインポート
サンプル DVD レンタルデータベースから Heroku Postgres にデータをインポートするには、以下を実行する必要があります。
- サンプルデータベースをダウンロードして抽出する
- データベースをローカル PostgresSQL サーバーにインポートする
- データベースをダンプファイルにエクスポートする
- データベースダンプを Heroku Postgres にインポートする
dvdrental.tar
ファイルは Heroku Postgres が要求する形式ではないため、直接 Heroku Postgres にインポートすることはできません。