REST Data をHeroku にレプリケーションして、Salesforce Connect から利用する方法

REST data をHeroku 上のPostgreSQL にレプリケーションして、Salesforce Connect を使用していSalesforce からデータ連携。

Data Sync は、いろいろなシナリオのデータレプリケーション(同期)を行うことができるスタンドアロンのアプリケーションです。例えば、sandbox および本番インスタンスのデータをデータベースに同期することができます。REST data をHeroku 上のPostgreSQL に同期することで、Salesforce の通常オブジェクトに加えて、Salesforce 外部オブジェクト(Salesforce Connect)としてREST データへのアクセスが可能になります。

要件

本レプリケーション例では、次が必要です:

  1. CData Sync (試用版もしくは商用版)、およびREST のレプリケーションに必要なライセンス。
  2. Heroku Postgress を含むHeroku app および、Heroku Connect アドオン許可。
  3. Salesforce アカウント。

レプリケーション同期先の設定

CData Sync を使って、REST data をHeroku 上のPostgreSQL データベースにレプリケーションできます。本記事では、Heroku 上の既存のPostgreSQL を使用します。PostgreSQL データベースをレプリケーション先に指定するには、[接続]タブから進みます。

  1. [同期先]タブをクリックします。
  2. PostgreSQL を同期先として選択します。

    PostgreSQL への接続には、Port(デフォルトでは5432)、およびデータベース接続プロパティを設定し、サーバーに認証するuser およびpassword を設定します。データベースプロパティが指定されていない場合には、ユーザーのデフォルトデータベースに接続します。

  3. 接続のテスト]をクリックして、正しく接続できているかをテストします。
  4. [変更を保存]をクリックします。

REST 接続の設定

データソース側にREST を設定します。[接続]タブをクリックします。

  1. [接続の追加]セクションで[データソース]タブを選択します。
  2. REST アイコンをデータソースとして選択します。プリインストールされたソースにREST がない場合には、追加データソースとしてダウンロードします。
  3. 接続プロパティに入力をします。

    See the Getting Started chapter in the data provider documentation to authenticate to your data source: The data provider models REST APIs as bidirectional database tables and XML/JSON files as read-only views (local files, files stored on popular cloud services, and FTP servers). The major authentication schemes are supported, including HTTP Basic, Digest, NTLM, OAuth, and FTP. See the Getting Started chapter in the data provider documentation for authentication guides.

    After setting the URI and providing any authentication values, set Format to "XML" or "JSON" and set DataModel to more closely match the data representation to the structure of your data.

    The DataModel property is the controlling property over how your data is represented into tables and toggles the following basic configurations.

    • Document (default): Model a top-level, document view of your REST data. The data provider returns nested elements as aggregates of data.
    • FlattenedDocuments: Implicitly join nested documents and their parents into a single table.
    • Relational: Return individual, related tables from hierarchical data. The tables contain a primary key and a foreign key that links to the parent document.

    See the Modeling REST Data chapter for more information on configuring the relational representation. You will also find the sample data used in the following examples. The data includes entries for people, the cars they own, and various maintenance services performed on those cars.

  4. [接続のテスト]をクリックして、正しく接続できているかをテストします。
  5. [変更を保存]をクリックします。

REST インスタンス毎のクエリの設定

Data Sync はレプリケーションをコントロールするSQL クエリを簡単なGUI 操作で設定できます。 レプリケーションジョブ設定には、[ジョブ]タブに進み、[ジョブを追加]ボタンをクリックします。 次にデータソースおよび同期先をそれぞれドロップダウンから選択します。

テーブル全体をレプリケーションする

テーブル全体をレプリケーションするには、[テーブル]セクションで[テーブルを追加]をクリックします。表示されたテーブルリストからレプリケーションするテーブルをチェックします。

テーブルをカスタマイズしてレプリケーションする

レプリケーションはテーブル全体ではなく、カスタマイズが可能です。[変更]機能を使えば、レプリケーションするカラムの指定、同期先でのカラム名を変更しての保存、ソースデータの各種加工が可能です。レプリケーションのカスタマイズには、ジョブの[変更]ボタンをクリックしてカスタマイズウィンドウを開いて操作を行います:

  • チェックボックスでフィールドを追加もしくは削除
  • カラムリストの下に新しく計算されたフィールドを追加する
  • フィルタセクションを利用してフィルタを追加する

インターフェースを使って変更を行うと、レプリケーションのSQL クエリは以下のようなシンプルなものから:

REPLICATE [people]

次のような複雑なものになります:

REPLICATE [people] SELECT [[ personal.name.first ]], [[ personal.name.last ]] FROM [people] WHERE [[ personal.name.last ]] = Roberts

レプリケーションのスケジュール起動設定

[スケジュール]セクションでは、レプリケーションジョブの自動起動スケジュール設定が可能です。反復同期間隔は、15分おきから毎月1回までの間で設定が可能です。

レプリケーションジョブを設定したら、[変更を保存]ボタンを押して保存します。複数のREST data のジョブを作成して、Salesforce の外部オブジェクトとして利用可能です。

外部オブジェクトとしてREST Data レプリケーションにアクセス

REST data がHeroku 上のPostgreSQL データベースとしてレプリケーションされたので、Heroku のOData インターフェースを設定し、Salesforce Connect から外部オブジェクトとしてデータ連携できるようにします。

Heroku のOData Service を設定します

まずは、Heroku 上のPostgreSQL データベースに複製されたREST data への接続のために、データベースに対しHeroku External Object を設定します。

  1. Heroku ダッシュボードで、[Connect Add-on] をクリックします。
  2. [External Objects]を指定します。はじめてHeroku External Object を使用する場合には、OData Server のログインクレデンシャルを作成するようにナビゲートされます。
  3. OData service URL およびクレデンシャルを確認します。このクレデンシャルをSalesforce Connect 接続時に利用します。
  4. [Data Sources]において、前のプロセスで作成したレプリケーション済みデータベースを設定します。

詳しくは、こちらのHeroku documentation を参照してください。

Salesforce の外部データソースの設定

Heroku のOData サービスの設定が終わったら、Salesforce Connect を使って、複製されたREST data のデータに外部データソースとして連携します。

  1. Salesforce で設定をクリックします。
  2. Administration (管理)セクションで、[データ]→[外部データソース]をクリック。
  3. データソースパラメータプロパティを設定します:
    • External Data Source: Salesforce UI に表示される名前
    • Name: API の一位の識別子
    • Type: Salesforce Connect: OData 4.0
    • URL: Heroku Connect のOData エンドポイント
    • Format: JSON
  4. 認証の設定:
    • Identity Type: Named Principal
    • Authentication Protocol: Password Authentication
    • Username: Heroku Connect username
    • Password: Heroku Connect password
  5. [保存]をクリック。

REST オブジェクトの同期

Salesforce の外部データソース登録が終わったら、次の方法でREST 外部データソースに変更を反映させます。REST テーブルの定義とREST 外部オブジェクトの定義を同期します。

  1. 作成した外部データソースのリンクをクリック。
  2. [Validate and Sync]をクリック
  3. REST テーブルを選択して、[同期]をクリックします。

Salesforce オブジェクトとしてREST Data にアクセス

これで、レプリケーションされたREST エンティティに対して、Salesforce の通常オブジェクトと同じように外部オブジェクトとしてアクセスが可能になりました。

是非、CData Sync の30日の無償評価版 をダウンロードして、Salesforce との連携をお試しください!

 
 
ダウンロード