PowerShell を使ってZoho CRM のデータをSQL Server にレプリケーション

古川えりか
古川えりか
コンテンツスペシャリスト
Zoho CRM をPowerShell スクリプトを記述。リアルタイムデータへの接続を使用してZoho CRM のデータをSQL Server にレプリケーション(複製)。

CData ODBC Driver for ZohoCRM は、Microsoft のビルトインODBC サポートを使用して、追加設定なしで連携を可能にします。ODBC ドライバーは、PowerShell から実際のZoho CRM のデータへの連携を即座に実現します。

PowerShell に組み込まれている.NET Framework Provider for ODBC を使用して、Zoho CRM を他のデータベースに複製するなどの統合タスクを素早く自動化できます。この記事では、Zoho CRM をSQL Server に5 行のコードで複製する方法を説明します。

PowerShell コードを記述し、create、read、update、delete (CRUD) 操作を実行することも可能です。以下の例を参照してください。

CData ODBC ドライバとは?

CData ODBC ドライバは、以下のような特徴を持ったリアルタイムデータ連携ソリューションです。

  1. Zoho CRM をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレミスデータソースに対応
  2. 多様なアプリケーション、ツールにZoho CRM のデータを連携
  3. ノーコードでの手軽な接続設定
  4. 標準 SQL での柔軟なデータ読み込み・書き込み

CData ODBC ドライバでは、1.データソースとしてZoho CRM の接続を設定、2.PowerShell 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。

CData ODBC ドライバのインストールとZoho CRM への接続設定

まずは、本記事右側のサイドバーからZohoCRM ODBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。

未指定の場合は、初めにODBC DSN(data source name)で接続プロパティを指定します。ドライバーのインストールの最後にアドミニストレーターが開きます。Microsoft ODBC Data Source Administrator を使用して、ODBC DSN を作成および構成できます。

Zoho CRM への接続

それでは、Zoho CRM に接続していきましょう。データに接続するには、以下の接続パラメータを設定します。

  • Region:Zoho CRM サーバーURL のドメインに関連付けられたリージョン
  • Schema:Zoho CRM のバージョン(v2v2.1、またはv4)。Zoho CRM のバージョンごとに独自のデータモデルがあります

これらのプロパティに加えて、認可時にサンドボックスまたは開発者インスタンスのいずれかを選択した場合は、InstanceType 接続プロパティでも同じ設定を行ってください。

Zoho CRM への認証

Zoho CRM では、データへの認証に2つの方法が用意されています。お使いの環境に応じて適切な方法を選択てください。

デスクトップ経由で自分のローカルデータに認証を行う場合(非ブラウザ接続):CData 製品が提供する埋め込みOAuth アプリケーションを使用

CData 製品はすでにZoho CRM にOAuth アプリケーションとして登録されています。そのため、デスクトップアプリケーションを介したローカルデータへの接続では、自動的に組み込みアプリケーションが使用されます。 OAuth 交換の繰り返しを避け、ローカルデータにアクセスするたびにOAuthAccessToken を手動で設定する手間を省くには、InitiateOAuthGETANDREFRESH に設定してください。

ネットワーク経由で共有データに認証を行う場合(ブラウザ接続):カスタムOAuth アプリケーションを使用

すべてのOAuth フローで、この認証を有効にするにはAuthSchemeOAuth に設定する必要があります。

より詳細な認証手順については、ヘルプドキュメントの「Zoho CRM への認証」をご確認ください。

Zoho CRM への接続

以下のコードは、DSN を使用してPowerShell でデータソースへの接続を初期化する方法を説明します。

$conn = New-Object System.Data.Odbc.OdbcConnection
$conn.ConnectionString = "DSN=CData ZohoCRM Source x64"

Zoho CRM のデータをSQL Serverにバックアップ

キャッシュを有効にした後、以下のコードを使用して、データをSQL Server に複製できます。

次の接続プロパティを設定し、キャッシュデータベースを構成します。

  • CacheProvider:ADO.NET プロバイダの名前です。これは、ご使用のバージョンの.NET のMachine.config にあります。例として、SQL Server を構成するにはSystem.Data.SqlClient と入力します。

  • CacheConnection:データベースの接続に必要なプロパティの接続文字列です。以下はSQL Server の一例です。

    Server=localhost;Database=RSB;User Id=sqltest;Password=sqltest;

この例のSQL クエリを使用して、スキーマを含むキャッシュされたテーブル全体を更新できます。既存のキャッシュはすべて削除されます。

$conn.Open()
# Create and execute the SQL Query
$SQL = "CACHE DROP EXISTING SELECT * FROM " + $Accounts
$cmd = New-Object System.Data.Odbc.OdbcCommand($sql,$conn)
$count = $cmd.ExecuteNonQuery()
$conn.Close()

ドライバーを使用すると、キャッシュ機能を完全に制御できます。その他のキャッシュコマンドと使用例については、ヘルプドキュメントを参照してください。他のデータベースに複製する手順についても、ヘルプドキュメントを参照してください。

その他の操作

PowerShell でZoho CRM を取得するには、OdbcDataAdapter メソッドのFill メソッドを呼び出します。データ操作コマンドを実行するには、OdbcCommand オブジェクトを初期化してからExecuteNonQuery を呼び出します。以下は、.NET Framework Provider for ODBC を介した、Zoho CRM へのCRUD コマンドの例です。

Zoho CRM のデータの取得

$sql="SELECT Account_Name, Annual_Revenue from Accounts"

$da= New-Object System.Data.Odbc.OdbcDataAdapter($sql, $conn)
$dt= New-Object System.Data.DataTable
$da.Fill($dt)

$dt.Rows | foreach {
  $dt.Columns | foreach ($col in dt{
    Write-Host $1[$_]
  }
}

Zoho CRM のデータの更新

$cmd = New-Object System.Data.Odbc.OdbcCommand("UPDATE Accounts SET Industry='Data/Telecom OEM' WHERE Id = @myId", $conn)
$cmd.Parameters.Add(new System.Data.Odbc.OdbcParameter("myId","001d000000YBRseAAH")
$cmd.ExecuteNonQuery()

Zoho CRM のデータの挿入

$cmd = New-Object System.Data.Odbc.OdbcCommand("INSERT INTO Accounts SET Industry='Data/Telecom OEM' WHERE Id = @myId", $conn)
$cmd.Parameters.Add(new System.Data.Odbc.OdbcParameter("myId","001d000000YBRseAAH")
$cmd.ExecuteNonQuery()

Zoho CRM のデータの削除

$cmd = New-Object System.Data.Odbc.OdbcCommand("DELETE FROM Accounts WHERE Id = @myid", $conn)
$cmd.Parameters.Add(new System.Data.Odbc.OdbcParameter("myId","001d000000YBRseAAH")
$cmd.ExecuteNonQuery()

Zoho CRM からPowerShell へのデータ連携には、ぜひCData ODBC ドライバをご利用ください

このようにCData ODBC ドライバと併用することで、270を超えるSaaS、NoSQL データをコーディングなしで扱うことができます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。

CData ODBC ドライバは日本のユーザー向けに、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。

はじめる準備はできましたか?

Zoho CRM ODBC Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

Zoho CRM Icon Zoho CRM ODBC Driver お問い合わせ

Zoho CRM ODBC ドライバーは、ODBC 接続をサポートする任意のアプリケーションからリアルタイムなZoho CRM アカウントデータに直接接続できるパワフルなツールです。標準のODBC ドライバーインタフェースを使用して、データベースのようにZoho CRM データにアクセスし、潜在顧客、連絡先、営業案件、アカウントなどの読み、書き、更新を実行できます。