0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CData Sync ハンズオン

Last updated at Posted at 2018-05-10

はじめに

本資料は、CData Software Japanのハンズオン向けの資料です。本ドキュメントをもとに実機にCData Sync製品をインストールして手順に沿って操作する事で、SalesforceやDynamicsCRM Online(Dynamics365)といったクラウドサービスのデータをMySQLといったRDBに同期する方法を理解して頂くことを目的としています。

前提環境

ハンズオンには以下の環境が必要となります。

  • Windowsマシン (Windows10が望ましい)
  • インターネットへ接続可能 (プロキシサーバ経由でのアクセスが必要な場合はご連絡ください)
  • Windowsの管理者権限が付与されており、プログラムのインストールが可能であること
  • MySQL、および、WorkBenchが使用可能であること
  • Salesforce、および、DynamicsCRM Online、SharePoint Onlineのアカウントを保有していること
  • Postman

ハンズオンの内容

本ハンズオンで実施する手順は以下の通りです。

  1. CData Sync製品のインストール、および、初期設定
  2. 製品の各機能の説明
  3. SalesforceのデータをMySQLにSync
  4. Dynamics CRM Online(Dynamics 365)のデータをMySQLにSync
  5. APIからSyncジョブを実行
  6. MySQL上でクラウドサービスに跨る顧客データを併せて確認

1. CData Sync製品のインストール、および初期設定

CData Sync製品のインストール

こちらのCData Sync製品のページにアクセスして「DOWNLOAD」ボタンをクリックします。ダウンロードに必要な情報(メールアドレス必須)を登録してダウンロードします。
image.png

setup.exeがダウンロードされるので、CData Syncを実行するマシン上にインストールします。インストーラを起動して、EURAを確認し、ウィザードに従いインストールします。
image.png
途中、管理者のパスワードの設定が必要となりますので、任意のパスワードを入力します。インストーラを最後まで進むと「Run CData Data Sync」にチェックがついていることを確認して終了します。
image.png
Windowsのステータスバーに、CData Data Syncのアイコンが表示されて、しばらくたつとブラウザが起動します。
image.png

ライセンスのアクティベーション

Login画面が表示されるので、User(admin), Passwordはインストール時に指定したパスワードを入力してSign inします。
image.png
Licenseのアクティベーションを行います。「30日の評価版をアクティベート」ボタンをクリックします。
image.png

アクティベートするクラウドサービスのデータソースとしてSalesforceを選択して、名前とEメールを入力して「評価版をアクティベートする」をクリックします。
image.png
Salesforceがアクティベート出来たら、続けてDynamicsCRMもアクティベートします。「このマシンのライセンス:」にSalesforceとDynamicsCRMの限定評価版のプロダクトキーがセットされれば成功です。
image.png
限定評価版では、50行から後のすべての文字列が 'N/A-Trial Version' でマスクされるという制約があります。製品版をご導入の際には、アンインストールせず、同画面の「新しいライセンスをインストール」からライセンスキーをセットすることで、製品版に切り替えることが出来ます。

2. 製品の各機能の説明

CData Sync製品のWeb管理コンソールの各機能は、上段のタブで切り替えて表示することが出来ます。

ジョブ

Syncジョブの作成、および、実行ステータスを確認する事が出来ます。
image.png

image.png

接続

クラウドデータソース、および、Sync先のRDBへのコネクション情報を設定する事が出来ます。
image.png

image.png

設定

ジョブ実行時のEmailへの通知やAPIエンドポイントへのアクセス権を設定する事が出来ます。
image.png

ヘルプ

本製品のドキュメントです。
image.png

情報

ライセンス情報を確認する事が出来ます。
image.png

API

管理用APIエンドポイントのリストです。
image.png

組み込みWebサーバの設定

CData Sync製品には、組み込みWebサーバが含まれており、デフォルトでは、本Webサーバーが利用されます。必要に応じて、IISをご利用頂けます。詳細は製品マニュアルをご覧ください。組み込みWebサーバの設定は、Windowsの通知エリアのCDataSyncアイコンを右クリックして、「Server Options...」からご確認頂けます。
image.png

image.png

3. SalesforceのデータをMySQLにSync

Salesforceへのコネクションを作成

「接続」タブを開き、「Add Connection」内のタブが「Sources」であることを確認して、「Salesforce」のアイコンをクリックします。
image.png

Salesfroceへのコネクションの設定画面が表示されるので、名前を任意の名称(例:Salesforce)に変更して、User、Password、SecurityTokenを設定して、「接続のテスト」ボタンをクリックします。上段に「接続に成功しました。」のメッセージが出たら成功です。「変更の保存」ボタンをクリックして作成したコネクション情報を保存してください。
image.png
※Salesforceのアカウント、および、セキュリティトークンの取得方法がわからない場合は、「Salesforce Sales Cloud 開発者アカウント、および、セキュリティトークン取得方法」をご覧ください。

MySQLへのコネクションを作成

Sync先のRDBとなるMySQLの管理コンソールである「MySQL Workbench」を開きます。保存されたlocalhostへのMySQLへの接続情報をクリックして開きます。
image.png
左下のSCHEMAエリアで右クリックから「Create Schema..」を選択して開きます。スキーマ名に任意(例:Sync)の名称を付与して「Apply」ボタンをクリックします。
image.png
新たに、Sync用のスキーマが作成されました。今回は、MySQLのこのスキーマ内にSync先のテーブルを作成したいと思います。
image.png

再び、CData Syncの管理コンソールに戻ります。「設定」>「Add Connection」タブを「Destinations」に切り替えて、「MySQL」のアイコンをクリックします。
image.png
MySQLへのコネクションの設定画面が表示されるので、名前を任意の名称(例:MySQL)に変更して、Server、Port(デフォルトの3306)、Database(上記手順で作成したMySQLスキーマ名)、User、Passowordを設定して、「接続のテスト」ボタンをクリックします。上段に「接続に成功しました。」のメッセージが出たら成功です。「変更の保存」ボタンをクリックして作成したコネクション情報を保存してください。
image.png

保存したコネクション情報がコネクションの一覧に表示されれば成功です。
image.png

ジョブの作成

「ジョブ」タブを開き、「ジョブを追加」ボタンをクリックします。
image.png

ジョブの設定画面が表示されたら、「ジョブ名」を任意の名称(例:Salesforce2MySQL)に変更して、「ソース」がSalesforceへのコネクション名、「同期先」がMySQLへのコネクション名がセットされていることを確認します。確認が出来たら、Salesforce内のテーブル(オブジェクト)を選択するために「+テーブルを追加」ボタンをクリックします。
image.png

Salesforce内のテーブル(オブジェクト)リストが表示されるので、今回は、取引先であるAccountを選択して、「+選択したテーブルを追加」ボタンをクリックします。
image.png

テーブルのリストにAccountが追加されたことを確認します。後の手順で、同じMySQLのスキーマにDynamicsCRMのデータも取り込むため、テーブル名にSalesforceのテーブルとわかるようにプレフィックスを付与します。下部の「Advanced」部分を開き、「テーブル名のプレフィックス」にSalesforceのテーブルとわかるような任意の名称(例:SFDC_)をセットします。設定したら上部の「変更を保存」ボタンをクリックしてジョブの設定を保存します。
image.png

ジョブの実行

それでは、アドホックにSalesforceのテーブルのSyncを実行してみます。上記手順で追加したSalesforceのテーブル(例:SFDC_Account)を選択して、「実行」ボタンをクリックします。しばらくたつと、上部に薄緑のメッセージボックスで「The [ジョブ名] completed successfully. Records affected: 99 (Runtime: 00:00:99).」といったメッセージが表示されれば成功です。
image.png

それは、MySQLWorkbenchからMySQLにSalesforceのデータがSyncされているか確認してみましょう。上記手順で作成したスキーマ(例:Sync)を開き、テーブルリストに、「cdata_sync_status」と追加したテーブル(例:sfdc_account)が表示されていることを確認します。追加したテーブル(例:sfdc_account)を選択すると、テーブルにイナズマが付いたアイコンが表示されます。本アイコンをクリックすると「SELECT * FROM sync.sfdc_account;」といったSQLが自動で生成されて、選択結果が表示されます。Salesforce内のデータがリストとして表示されれば成功です。
image.png

4. DynamicsCRM Online(Dynamics 365)のデータをMySQLにSync

DynamicsCRM Online(Dynamics 365)へのコネクションを作成

「接続」タブを開き、「Add Connection」内のタブが「Sources」であることを確認して、「DynamicsCRM」のアイコンをクリックします。
image.png

DynamicsCRMへのコネクションの設定画面が表示されるので、名前を任意の名称(例:DynamicsCRM)に変更して、URL、User、Password、CRMVersion(CRMOnline)を設定して、「接続のテスト」ボタンをクリックします。上段に「接続に成功しました。」のメッセージが出たら成功です。「変更の保存」ボタンをクリックして作成したコネクション情報を保存してください。
image.png
※DynamicsCRM Online(Dynamics 365)の評価版アカウントはこちらのページ」から取得出来ます。

MySQLへのコネクションを作成

DynamicsCRM OnlineのSync先のRDBには、Salesforceと同じスキーマとしますので本手順は不要です。

ジョブの作成

「ジョブ」タブを開き、「ジョブを追加」ボタンをクリックします。
image.png

ジョブの設定画面が表示されたら、「ジョブ名」を任意の名称(例:DynamicsCRM2MySQL)に変更して、「ソース」がDynamicsCRMへのコネクション名、「同期先」がMySQLへのコネクション名がセットされていることを確認します。確認が出来たら、DynamicsCRM内のテーブル(オブジェクト)を選択するために「+テーブルを追加」ボタンをクリックします。
image.png

DynamicsCRM内のテーブル(オブジェクト)リストが表示されるので、今回は、取引先企業であるAccountを選択して、「+選択したテーブルを追加」ボタンをクリックします。
image.png

テーブルのリストにAccountが追加されたことを確認します。下部の「Advanced」部分を開き、「テーブル名のプレフィックス」にDynamicsCRMのテーブルとわかるような任意の名称(例:D365_)をセットします。設定したら上部の「変更を保存」ボタンをクリックしてジョブの設定を保存します。
image.png

ジョブの実行

それでは、アドホックにDynamicsCRMのテーブルのSyncを実行してみます。上記手順で追加したDynamicsCRMのテーブル(例:D365_Account)を選択して、「実行」ボタンをクリックします。しばらくたつと、上部に薄緑のメッセージボックスで「The [ジョブ名] completed successfully. Records affected: 99 (Runtime: 00:00:99).」といったメッセージが表示されれば成功です。
image.png

それは、MySQLWorkbenchからMySQLにDynamicsCRMのデータがSyncされているか確認してみましょう。上記手順で作成したスキーマ(例:Sync)を開き、テーブルリストに、「cdata_sync_status」と追加したテーブル(例:d365_account)が表示されていることを確認します。追加したテーブル(例:d365_account)を選択すると、テーブルにイナズマが付いたアイコンが表示されます。本アイコンをクリックすると「SELECT * FROM sync.d365_account;」といったSQLが自動で生成されて、選択結果が表示されます。DynamicsCRM内のデータがリストとして表示されれば成功です。
image.png

5. APIからSyncジョブを実行

APIアクセス用トークンの発行

「設定」タブを開き、「ユーザー権限」内の「ユーザー」の「+追加」ボタンをクリックします。「ユーザーを追加」ダイアログが表示されるので、任意の名称のユーザー(例:cdata)を入力して、権限の「GET / POST」をチェックして「変更を保存」します。
image.png

APIアクセス用のAuthトークンが生成されます。本トークン値は後の手順で必要となりますので控えておいてください。
image.png

APIからジョブ一覧の取得

APIからジョブ一覧を取得してみます。「API」タブを開き、左側のメニュー内の「リソース > /api.rsc/jobs」を開きます。右側にHTTPメソッドの一覧が表示されるので、GETメソッドをクリックしてオープンします。本GETメソッドでJOBの一覧が取得可能な事が確認出来ます。
image.png

Postmanを開き、下記の画面を参考にリクエスト時の設定を行い「Send」ボタンでクリックします。ジョブの一覧がJSONフォーマットで返って来れば成功です。

項目
メソッド GET
URI http://localhost:8461/api.rsc/jobs/
Header : Key x-cdata-authtoken
Header : Value 上記で取得したAPIトークン値

image.png

APIからジョブの実行

次に、APIからジョブを実行してみます。その前に、Salesforceの取引先(Account)とDynamicsCRMの取引先企業(Account)に新規に追加、既存のデータを変更してみます。

Salesforceの取引先(Account)の追加・変更の例
image.png

DynamicsCRMの取引先企業(Account)の追加・変更の例
image.png

CData SyncのWeb管理コンソールの「API」タブを開き、左側のメニュー内の「アクション > /api.rsc/executeJob」を開きます。本POSTメソッドでJOBの実行が可能である事を確認出来ます。
image.png

Postmanを開き、下記の画面を参考にリクエスト時の設定を行い「Send」ボタンでクリックします。今回はSalesforceのジョブを実行してみます。レスポンスのJSONのStatusが、"The job started running..."と表示されれば成功です。

項目
メソッド POST
URI http://localhost:8461/api.rsc/executeJob/
Header : Key x-cdata-authtoken
Header : Value 上記で取得したAPIトークン値
Body : Key 1 jobName
Body : Value 1 ジョブ名(例:Salesforce2MySQL)
Body : Key 2 ExecutionType
Body : Value 2 Run

image.png

CData SyncのWeb管理コンソールの「ジョブ」タブを開き、上記で実行したジョブの最後の実行結果を見ると、「Records affected: 2」と追加・更新されたレコードの件数が表示されているのが確認出来ます。これは、CData Sync製品が、更新差分のみ同期処理を行なっているためです。
image.png

MySQL Workbenchにて、下記のSQLで取引先の名称、部門、作成日時、更新日時を確認する事が可能です。

SELECT Id, Name, Site, CreatedDate, LastModifiedDate FROM sync.sfdc_account;

image.png

引き続き、DynamicsCRMのジョブも実行してみます。
image.png
こちらも更新差分の件数のみ更新されていることを確認します。
image.png

確認用のSQLは以下の通りです。

SELECT Id, Name, Telephone1, CreatedOn, ModifiedOn FROM sync.d365_account;`

image.png

6. MySQL上でクラウドサービスに跨る顧客データを併せて確認

MySQL WorkBench上でSalesforceとDynamicsCRM上の取引先データを併せてみてみましょう。以下のSQLを使います。

SELECT 'Salesforce' AS Soure, Id, Name, CreatedDate, LastModifiedDate FROM sync.sfdc_account
UNION ALL
SELECT 'DynamicsCRM' AS Soure, Id, Name, CreatedOn, ModifiedOn FROM sync.d365_account;

SalesforceとDynamicsCRMといった異なるクラウドサービス内のデータを併せて確認することが出来れば成功です。
image.png

アンケート

アンケートはこちらのリンクからご回答ください

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?