CData Arc ハンズオンテキスト(シナリオ1-1)

by 色川穂高 | 2024年05月01日

CData Arc ハンズオンテキスト(シナリオ1-1)

この記事では「CData Arc ハンズオンセミナー ~はじめてのCData Arc~」の「シナリオ1-1」について進めていきます。

ハンズオン環境へサインイン

CData Arc のハンズオン環境には、こちらからサインインします。

http://localhost:8001/
 

ユーザー名 admin
パスワード ハンズオン環境のクレデンシャル情報を参照してください

ハンズオンのシナリオ

業務システムのデータストアなどで利用されているデータベースからSaaS へのデータ連携は、よくあるシナリオです。

このシナリオではMySQL から取得(Select)したデータをSalesforce に更新(Upsert)します。

ハンズオンのシナリオ

MySQL の構成

このシナリオでは、ハンズオン実行環境に構成されているMySQL のhandson スキーマの「顧客」テーブルからデータを取得します。

MySQL の構成

Salesforce の構成

このシナリオでは、ハンズオン用に用意されているSalesforce のLead オブジェクトへデータを更新します。

Salesforce の構成

ハンズオンセミナーでは参加される方が同一のSalesforce 組織へ更新しますので、更新結果はハンズオンセミナーで利用するSalesforce 組織に用意されている「私のリード」リストビューを確認してください。

Salesforce の構成

連携フローの概要

このシナリオでは、このような連携フローを作成していきます。

連携フローの概要

コネクタ 設定内容
1 MySQL MySQL からデータを取得(Select)
2 XMLMap 1 と3 をマッピング
3 Salesforce Salesforce へデータを更新(Upsert)

ワークスペースの作成

CData Arc では、目的の異なる連携フローを分離できるように、任意の「ワークスペース」を作成することができます。ワークスペースを作成するにはフローページの「ワークスペースを追加」をクリックします。

ワークスペースの作成

ワークスペース名には任意の名称を設定することができます。何のためのワークスペースか、分かりやすい名前を設定します。ここでは「MySQL_to_Salesforce」と設定します。

ワークスペースの作成

このシナリオでは、この「MySQL_to_Salesforce」ワークスペースにフローを作成していきます。

ワークスペースの作成

MySQL コネクタ

最初に「MySQL のcustomer テーブルからSelect(データを取得)」するMySQL コネクタを設定します。この連携フローのはじまり(起点)となるコネクタです。

コネクタは右上の「+追加」から選択や検索をして追加することができます。またフローキャンバス上での右クリックなどからも追加することができます。

MySQL コネクタ

MySQL コネクタ

コネクタID には任意の名称を設定することができます。何を行うコネクタか、分かりやすい名前を設定します。ここでは「MySQL_Customer_Select」と設定します。

MySQL コネクタ

このコネクタが実行するアクションも指定します。ここではデータを取得するための「Select」アクションを選択して「+コネクタを作成」します。

MySQL コネクタ

接続の作成

作成したコネクタの設定に移ります。最初にMySQL への接続情報を作成します。「接続」の「作成」をクリックします。ここで作成した「接続」は、他のMySQL コネクタでも利用することができます。

MySQL コネクタ

「接続の追加」ダイアログで、ハンズオンで利用するMySQL への接続を作成していきます。名前には任意の名称を設定することができます。識別しやすい名前を設定します。ここでは「MySQL_Handson」と設定します。

MySQL コネクタ

接続に必要な以下の情報を設定します。

Server ハンズオン環境のクレデンシャル情報に従って設定します
Port 3306
Database ハンズオン環境のクレデンシャル情報に従って設定します
User ハンズオン環境のクレデンシャル情報に従って設定します
Password ハンズオン環境のクレデンシャル情報に従って設定します

設定したら「接続テスト」で確認します。「Success!」と表示されれば成功です。

MySQL コネクタ

「接続の追加」をクリックして「接続を保存」します。

アクション

MySQL へのアクション(実行する操作)は先ほど選択した「Select」アクションで構成されています。なお、あとからアクションを変更することもできます。

MySQL コネクタ

テーブル

MySQL からデータをSelect するテーブルを選択します。「+ 追加」をクリックして「テーブルの追加」ダイアログを開きます。

MySQL コネクタ

「顧客」テーブルを選択して「+追加」をクリックします。「テーブル」に「顧客」が追加され、「カラム」に「顧客」テーブルの列構成が反映されます。「フィルタ」「並べ替え」「クエリ」で取得設定を細かく指定することもできます。対象テーブルの構成次第では「高度な設定」により差分取得を利用することもできます。

MySQL コネクタ

MySQL コネクタ

MySQL コネクタ

「XML 出力をプレビュー」することで、コネクタからの出力データをプレビューすることができます。プレビューにより取得されるデータを簡単に確認することができます。

MySQL コネクタ

MySQL コネクタ

後続のXML Map コネクタの設定をより分かりやすく実施できるように「サンプルデータを保存」しておきます。「サンプルデータを保存」しておくと、XML Map のマッピングエディタ上で、データソース側にデフォルトのサンプルデータが表示された状態になりますので、マッピングを施す際にもより判断しやすくなります。

MySQL コネクタ

MySQL コネクタ

「変更を保存」で、コネクタの設定を保存します。これでMySQL コネクタの設定は完了です。

取得(受信)のテスト

実際にデータを取得できることを確認してみます。「アウトプット」タブの「受信」をクリックします。

MySQL コネクタ

MySQL コネクタでは、デフォルトでは取得したデータがレコード単位にメッセージファイルとして生成されます。

MySQL コネクタ

メッセージファイル名をクリックすると、データを確認することができます。

MySQL コネクタ

また各レコード左端の「+」で展開すると、CData Arc が自動的に付与するメッセージファイルのメタデータ(メッセージヘッダ)やログの内容を確認することができます。メッセージファイルやログはダウンロードすることもできます。

MySQL コネクタ

MySQL コネクタ

MySQL コネクタ

このようにCData Arc ではコネクタ単位に設定や動作を確認しながらフロー作成を進めることができます。

テストで取得(受信)したメッセージやログは、選択して「削除」できます。

MySQL コネクタ

MySQL コネクタ

Salesforce コネクタ

次に「Salesforce のLead オブジェクトへUpsert(データを更新)」するSalesforce コネクタを設定します。この連携フローのおわり(終点)となるコネクタです。

コネクタは右上の「+追加」から選択や検索をして追加することができます。またフローキャンバス上での右クリックなどからも追加することができます。今回はフローキャンバス上での右クリックから「+コネクタを追加」してみましょう。

Salesforce コネクタ

Salesforce コネクタ

コネクタID には任意の名称を設定することができます。何を行うコネクタか、分かりやすい名前を設定します。ここでは「Salesforce_Lead_Upsert」と設定します。

Salesforce コネクタ

このコネクタが実行するアクションも指定します。ここではデータを更新するための「Upsert」アクションを選択して「+コネクタを作成」します。

Salesforce コネクタ

接続の作成

作成したコネクタの設定に移ります。最初にSalesforce への接続情報を作成します。「接続」の「作成」をクリックします。ここで作成した「接続」は、他のSalesforce コネクタでも利用することができます。

Salesforce コネクタ

「接続の追加」ダイアログで、ハンズオンで利用するSalesforce への接続を作成していきます。名前には任意の名称を設定することができます。識別しやすい名前を設定します。ここでは「Salesforce_Handson」と設定します。

Salesforce コネクタ

Salesforce コネクタでは、Salesforce との接続をOAuth 認証で確立します。「接続」をクリックすると、ブラウザが起動しSalesforce のログインページが表示されます。

Salesforce のログインページ

以下の情報を入力してログインします。

ユーザー名 ハンズオン環境のクレデンシャル情報に従って設定します
パスワード ハンズオン環境のクレデンシャル情報に従って設定します

CData Arc から対象のSalesforce 組織にはじめてアクセスするときには、接続アプリケーションへのアクセス許可が確認されます。アクセスを「許可」します。

接続アプリケーションへのアクセス許可

「Success!」と表示されれば成功です。

Salesforce コネクタ

「接続の追加」をクリックして「接続を保存」します。

アクション

Salesforce へのアクション(実行する操作)は先ほど選択した「Upsert」アクションで構成されています。なお、あとからアクションを変更することもできます。

Salesforce コネクタ

テーブル

Salesforce へデータを更新するテーブル(オブジェクト)を選択します。「+ 追加」をクリックして「テーブルの追加」ダイアログを開きます。

Salesforce コネクタ

Lead テーブル(オブジェクト)を選択して「+ 追加」をクリックします。テーブル(オブジェクト)は検索ボックスで絞り込むこともできます。

Salesforce コネクタ

「テーブル」に「Lead」が追加され、「カラム」にLead テーブル(オブジェクト)の構成が反映されます。ここでは「Upsert の有効化」や「Upsert のKey」を細かく指定することができます。

Salesforce コネクタ

ここでは、Upsert のKey にEmail を選択します。これで同じメールアドレスを持つデータは登録ではなく、既存データの更新として扱われます。

Salesforce コネクタ

「変更を保存」をクリックして、コネクタの設定を保存します。これでSalesforce コネクタの設定は完了です。

Salesforce コネクタ

XMLMap コネクタ

最後に「MySQL のデータをSalesforce へマッピング」するXMLMap コネクタを設定します。この連携フローのおわり(終点)となるコネクタです。

XMLMap コネクタは、CData Arc の中でも中核的なコネクタです。CData Arc は、データの操作と変換の中間形式としてXML を使用します。多くのコネクタは、さまざまな形式のファイルをXML に、またはその逆に変換します。さらにCData Arc はXML を使用してデータベースやSaaS などバックエンドシステムの入力と出力をモデル化します。この仕組みにより、様々なフォーマットのファイルやデータベース・SaaS などのバックエンドシステムをシームレスにつなぐことができます。

XMLMap コネクタ

作成済みコネクタの後続として配置したいコネクタは、作成済みコネクタのアウトプット横にある「+」から、後続のコネクタとして作成することもできます。今回はMySQL コネクタの後続としてコネクタを追加してみましょう。

XMLMap コネクタ

XMLMap コネクタ

コネクタID には任意の名称を設定することができます。何を行うコネクタか、分かりやすい名前を設定します。ここでは「XMLMap_Customer_to_Lead」と設定します。

XMLMap コネクタ

XMLMap コネクタ

MySQL コネクタの後続として作成しているため、入力元であるソースファイルは選択することができますが、この段階では出力先であるデスティネーションファイルを選択することができません。コネクタ設定を一度閉じ、XML Map コネクタからの出力先をフローとして接続します。

XMLMap コネクタ

XMLMap コネクタ

これでXML Map コネクタのデスティネーションファイルも選択することができるようになりました。続いてマッピングに進みます。

XMLMap コネクタ

ソースファイルとデスティネーションファイルを選択すると、マッピングエディタにデータ構造が反映され、同名項目同士などデフォルトのマッピングが施されます。

XMLMap コネクタ

XML Map のマッピングエディタは豊富な機能を有しており、XML の値だけでなく属性(アトリビュート)も対象にすることができます。
 
ただ、このハンズオンのようにシンプルなシナリオだとXML の各項目の属性(アトリビュート)まで表示していると見通しがやや下がる面もあるかも知れません。そのようなときは「アトリビュートを表示」をOff にすることで各項目の値のみをシンプルに表示することができます。
 
XMLMap コネクタ

マッピング

下記の項目を「データソース」から「宛先」にマッピングします。Salesforce ではデータの登録時にId が自動採番されます。このシナリオでは、MySQL 側の主キーである「顧客コード」はSalesforce Lead の「Description(説明)」に連携します。

データソース 宛先
顧客コード Description
メールアドレス Email
会社名 Company
LastName
FirstName
電話番号 Phone

XMLMap コネクタ

もし意図しない宛先にマッピングを施してしまった場合、「マッピングを削除」から取り消すことができます。
 
XMLMap コネクタ

マッピング(式エディタ)

XMLMap コネクタでは、フォーマッタや条件、カスタムスクリプトなどを利用した高度なマッピング機能も利用できます。

ここでは「電話番号」を「Phone」にマッピングするときに「ハイフン(-)無し」に編集します。「Phone」項目の「式」をクリックして、エクスプレッションエディタ(式エディタ)を開きます。

XMLMap コネクタ

XMLMap の式エディタでは、ArcScript のフォーマッタを利用してマッピング中にデータを動的に編集・加工することができます。ここでは replace フォーマッタを利用して「-」を除去します。

XMLMap コネクタ

[xpath(電話番号) | replace('-', '')]

「変更を保存」でコネクタの設定を保存します。これでXMLMap コネクタの設定は完了です。

式エディタで利用できるフォーマッタには、よく利用される文字列・日付・算術カテゴリの他に、ファイル操作や、XML やCSV を解析する操作で利用できるフォーマッタなどが豊富に備わっています。式エディタで利用できるArcScript のフォーマッタについては、こちら もご覧ください。

またXMLMap コネクタのマッピングではArcScript を利用した「カスタムスクリプト」の実行結果をマッピングの値として設定することもできます。シンプルなマッピングや式エディタでは実現が難しいビジネスロジックを含んだマッピングなどで力を発揮します。
XMLMap コネクタ - マッピング
ArcScript については、こちら や、ナレッジベース などもご覧ください。
CData Arc では設定したマッピングの結果をすぐにテストすることができる「テストマッピング」の機能が搭載されています。フォーマッタを利用して変換や編集をともなうマッピングを施している場合、その結果をすぐにテストできる「テストマッピング」の機能はとても便利です。

「マッピングをテスト」をクリックするとマッピングテストダイアログが表示されます。「サンプルデータを保存」しておくとデータソース側にテスト対象のデータとして設定された状態になります。テスト対象となる「データソース」欄には任意のデータを上書きして指定することも、任意のテストデータファイルをアップロードして指定することもできます。

XMLMap コネクタ

「テスト」をクリックすると、マッピングを実行した結果が「宛先」欄に出力されます。このシナリオではPhone の項目がハイフンなしに編集できていることがすぐに確認できます。

XMLMap コネクタ
フローを整列させたいときには「オートフォーマット」が便利です。

オートフォーマット

オートフォーマット

フローの実行

これでシナリオの連携フローが完成しました。連携フローを手動で実行するときは、先ほどのように起点のコネクタでデータをアウトプット(受信)する以外に、トリガー開始の「手動で受信」からも実行することができます。今回はトリガー開始の「手動で受信」を実行します。

動作の確認

実行結果の確認

MySQL コネクタののアウトプットタブを確認すると受信に成功が確認できます。受信に成功(Success)したメッセージファイルは、オートメーションの機構により、後続のXML Map コネクタに渡されます(インプットされます)。

動作の確認

XMLMap コネクタの「インプット」「アウトプット」でMySQL コネクタから渡されたメッセージファイルがマッピングされ、アウトプットされていることが確認できます。

動作の確認

動作の確認

最後のSalesforce コネクタの「インプット」タブで、XMLMap コネクタから渡されたメッセージファイルで指定した処理(Upsert)に成功していることが確認できます。

動作の確認

コネクタ実行履歴の右端に表示される「詳しくはこちら」から、ログページ上で「フローの一連の流れ」として確認することもできます。

動作の確認

動作の確認

Salesforce 上での結果確認

Salesforce のリードオブジェクトの内容を確認してみます。このハンズオンでは複数のSalesforce アカウントがそれぞれリードを登録しているので「私のリード」ビューで自分が連携を実行したデータが登録されているかを確認します。

Salesforce 上での結果確認

Salesforce 上での結果確認

フローの自動実行

CData Arc にはスケジューリング実行するための機能が標準で搭載されています。開発・テストが完了した連携フローを自動で定期的に実行したいときに便利です。スケジュール実行はフローの起点となるコネクタで「受信オートメーション」を有効にすることで設定します。この設定は「トリガーを開始」の「オートメーションを有効化」からも開く事ができます。

受信オートメーションの設定

受信オートメーションの設定

このシナリオのフローを、1時間に1度、毎時0分に自動実行する場合は、MySQL コネクタの「オートメーション」タブで下記のように設定します。

受信 有効
受信間隔 Hourly
毎時何分 0

ここまでのまとめ

これで「CData Arc ハンズオンセミナー ~はじめてのCData Arc~」の「シナリオ1-1」が完了しました。

ハンズオンテキスト

シナリオ1-1

この記事では CData Arc™ 2024 - 24.1.8906.0 を利用しています。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。