各製品の資料を入手。
詳細はこちら →Zoho Inventory データ をHeroku Postgres にレプリケーションして、Salesforce Connect から利用する方法
ETL / ELT ツールのCData Sync を使って、Zoho Inventory のデータのHeroku Postgres へのETL パイプラインをノーコードで作成する方法を解説します。
最終更新日:2024-01-01
この記事で実現できるZoho Inventory 連携のシナリオ
こんにちは!プロダクトスペシャリストの宮本です。
CData Sync は、いろいろなシナリオのデータレプリケーション(同期)を行うことができるスタンドアロンのアプリケーションです。例えば、sandbox および本番インスタンスのデータをデータベースに同期することができます。Zoho Inventory のデータ をHeroku 上のPostgreSQL に同期することで、Salesforce の通常オブジェクトに加えて、Salesforce 外部オブジェクト(Salesforce Connect)としてZoho Inventory のデータへのアクセスが可能になります。
要件
本レプリケーション例では、次が必要です:
- CData Sync (試用版もしくは商用版)、およびZoho Inventory のレプリケーションに必要なライセンス。
- Heroku Postgress を含むHeroku app および、Heroku Connect アドオン許可。
- Salesforce アカウント。
レプリケーション同期先の設定
CData Sync を使って、Zoho Inventory のデータ をHeroku 上のPostgreSQL データベースにレプリケーションできます。本記事では、Heroku 上の既存のPostgreSQL を使用します。PostgreSQL データベースをレプリケーション先に指定するには、[接続]タブから進みます。
- [同期先]タブをクリックします。
- PostgreSQL を同期先として選択します。
PostgreSQL への接続には、Port(デフォルトでは5432)、およびデータベース接続プロパティを設定し、サーバーに認証するuser およびpassword を設定します。データベースプロパティが指定されていない場合には、ユーザーのデフォルトデータベースに接続します。
- 接続のテスト]をクリックして、正しく接続できているかをテストします。
- [変更を保存]をクリックします。
Zoho Inventory 接続の設定
データソース側にZoho Inventory を設定します。[接続]タブをクリックします。
- [接続の追加]セクションで[データソース]タブを選択します。
- Zoho Inventory アイコンをデータソースとして選択します。プリインストールされたソースにZoho Inventory がない場合には、追加データソースとしてダウンロードします。
- 接続プロパティに入力をします。
Zoho Inventory 接続プロパティの取得・設定方法
以下の接続プロパティを使用して、取得されるZoho Inventory データを正確に絞り込むことができます。
- Region:サーバーURL のトップレベルドメイン(TLD)。アカウントが米国以外のドメインにある場合は、リージョンを適宜変更してください。
- OrganizationId(オプション):接続先の特定のZoho Inventory 組織に関連付けられたID。
- Organization Id の値が接続文字列で指定されていない場合、ドライバーは利用可能なすべての組織を自動的に取得し、最初のOrganization Id をデフォルトとして選択します。
Zoho Inventory への認証
ドライバーはOAuth を使用して認証を行います。認証方法は、ヘルプドキュメントの「はじめに」セクションを参照してください。
- [接続のテスト]をクリックして、正しく接続できているかをテストします。
- [変更を保存]をクリックします。
Zoho Inventory インスタンス毎のクエリの設定
Data Sync はレプリケーションをコントロールするSQL クエリを簡単なGUI 操作で設定できます。
レプリケーションジョブ設定には、[ジョブ]タブに進み、[ジョブを追加]ボタンをクリックします。
次にデータソースおよび同期先をそれぞれドロップダウンから選択します。
テーブル全体をレプリケーションする
テーブル全体をレプリケーションするには、[テーブル]セクションで[テーブルを追加]をクリックします。表示されたテーブルリストからレプリケーションするテーブルをチェックします。

テーブルをカスタマイズしてレプリケーションする
レプリケーションはテーブル全体ではなく、カスタマイズが可能です。[変更]機能を使えば、レプリケーションするカラムの指定、同期先でのカラム名を変更しての保存、ソースデータの各種加工が可能です。レプリケーションのカスタマイズには、ジョブの[変更]ボタンをクリックしてカスタマイズウィンドウを開いて操作を行います:
- チェックボックスでフィールドを追加もしくは削除
- カラムリストの下に新しく計算されたフィールドを追加する
- フィルタセクションを利用してフィルタを追加する
インターフェースを使って変更を行うと、レプリケーションのSQL クエリは以下のようなシンプルなものから:
REPLICATE [Contacts]
次のような複雑なものになります:
REPLICATE [Contacts] SELECT [Id], [CustomerName] FROM [Contacts] WHERE [FirstName] = Katherine
レプリケーションのスケジュール起動設定
[スケジュール]セクションでは、レプリケーションジョブの自動起動スケジュール設定が可能です。反復同期間隔は、15分おきから毎月1回までの間で設定が可能です。

レプリケーションジョブを設定したら、[変更を保存]ボタンを押して保存します。複数のZoho Inventory のデータ のジョブを作成して、Salesforce の外部オブジェクトとして利用可能です。
外部オブジェクトとしてZoho Inventory データ レプリケーションにアクセス
Zoho Inventory のデータ がHeroku 上のPostgreSQL データベースとしてレプリケーションされたので、Heroku のOData インターフェースを設定し、Salesforce Connect から外部オブジェクトとしてデータ連携できるようにします。
Heroku のOData Service を設定します
まずは、Heroku 上のPostgreSQL データベースに複製されたZoho Inventory のデータ への接続のために、データベースに対しHeroku External Object を設定します。
- Heroku ダッシュボードで、[Connect Add-on] をクリックします。
- [External Objects]を指定します。はじめてHeroku External Object を使用する場合には、OData Server のログインクレデンシャルを作成するようにナビゲートされます。
- OData service URL およびクレデンシャルを確認します。このクレデンシャルをSalesforce Connect 接続時に利用します。
- [Data Sources]において、前のプロセスで作成したレプリケーション済みデータベースを設定します。

詳しくは、こちらのHeroku documentation を参照してください。
Salesforce の外部データソースの設定
Heroku のOData サービスの設定が終わったら、Salesforce Connect を使って、複製されたZoho Inventory のデータ のデータに外部データソースとして連携します。
- Salesforce で設定をクリックします。
- Administration (管理)セクションで、[データ]→[外部データソース]をクリック。
- データソースパラメータプロパティを設定します:
- External Data Source: Salesforce UI に表示される名前
- Name: API の一位の識別子
- Type: Salesforce Connect: OData 4.0
- URL: Heroku Connect のOData エンドポイント
- Format: JSON
- 認証の設定:
- Identity Type: Named Principal
- Authentication Protocol: Password Authentication
- Username: Heroku Connect username
- Password: Heroku Connect password
- [保存]をクリック。

Zoho Inventory オブジェクトの同期
Salesforce の外部データソース登録が終わったら、次の方法でZoho Inventory 外部データソースに変更を反映させます。Zoho Inventory テーブルの定義とZoho Inventory 外部オブジェクトの定義を同期します。
- 作成した外部データソースのリンクをクリック。
- [Validate and Sync]をクリック
- Zoho Inventory テーブルを選択して、[同期]をクリックします。

Salesforce オブジェクトとしてZoho Inventory データ にアクセス
これで、レプリケーションされたZoho Inventory エンティティに対して、Salesforce の通常オブジェクトと同じように外部オブジェクトとしてアクセスが可能になりました。
是非、CData Sync の30日の無償評価版 をダウンロードして、Salesforce との連携をお試しください!