この記事では「CData Arc ハンズオンセミナー ~はじめてのCData Arc(kintone 版)~」の「シナリオ1-1」について進めていきます。
ハンズオン環境へサインイン
CData Arc のハンズオン環境には、こちらからサインインします。
http://localhost:8001/
ユーザー名 |
admin |
パスワード |
ハンズオン環境のクレデンシャル情報を参照してください |
ハンズオンのシナリオ
業務システムのデータストアなどで利用されているデータベースからSaaS へのデータ連携は、よくあるシナリオです。
このシナリオではMySQL から取得(Select)したデータをkintone に更新(Upsert)します。
MySQL の構成
このシナリオでは、ハンズオン実行環境に構成されているMySQL のhandson スキーマの「Customer」テーブルからデータを取得します。
kintone の構成
このシナリオでは、ハンズオン用に用意されているkintone の「顧客リスト」アプリへデータを更新します。
連携フローの概要
このシナリオでは、このような連携フローを作成していきます。
|
コネクタ |
設定内容 |
1 |
MySQL |
MySQL からデータを取得(Select) |
2 |
XMLMap |
1 と3 をマッピング |
3 |
Kintone |
kintone へデータを更新(Upsert) |
ワークスペースの作成
CData Arc では、フローキャンバス上で目的の異なる連携フローを分離できるように、任意の「ワークスペース」を作成することができます。ワークスペースを作成するにはフローキャンバス右上の「ワークスペースを作成」をクリックします。
ワークスペース名には任意の名称を設定することができます。何のためのワークスペースか、分かりやすい名前を設定します。ここでは「MySQL_to_kintone」と設定します。
このシナリオでは、この「MySQL_to_kintone」ワークスペースにフローを作成していきます。
MySQL コネクタ
最初に「MySQL のCustomer テーブルからSelect(データを取得)」するMySQL コネクタを設定します。この連携フローのはじまり(起点)となるコネクタです。
配置
MySQL コネクタは「データベース」カテゴリに含まれています。「データベース」カテゴリから「MySQL」を選択してフローキャンバスへ配置します。
コネクタID には任意の名称を設定することができます。何を行うコネクタか、分かりやすい名前を設定します。ここでは「MySQL_Customer_Select」と設定します。
接続の作成
MySQL への接続情報を作成します。「接続」の「作成」をクリックします。ここで作成した「接続」は、他のMySQL コネクタでも利用することができます。
「接続の追加」ダイアログで、ハンズオンで利用するMySQL への接続を作成していきます。名前には任意の名称を設定することができます。識別しやすい名前を設定します。ここでは「MySQL_Handson」と設定します。
接続に必要な以下の情報を設定します。
Server |
ハンズオン環境のクレデンシャル情報に従って設定します |
Port |
ハンズオン環境のクレデンシャル情報に従って設定します |
Database |
ハンズオン環境のクレデンシャル情報に従って設定します |
User |
ハンズオン環境のクレデンシャル情報に従って設定します |
Password |
ハンズオン環境のクレデンシャル情報に従って設定します |
設定したら「接続テスト」で確認します。「Success!」と表示されれば成功です。
「接続の追加」をクリックして「接続を保存」します。
アクション
MySQL へのアクション(実行する操作)を選択します。このコネクタではデータを取得するので「Select」を選択します。
テーブル
MySQL からデータをSelect するテーブルを選択します。「+ 追加」をクリックして「テーブルの追加」ダイアログを開きます。
「Customer」テーブルを選択して「+追加」をクリックします。「テーブル」に「Customer」が追加され、「カラム」に「Customer」テーブルの列構成が反映されます。「フィルタ」「並べ替え」「クエリ」で取得設定を細かく指定することもできます。対象テーブルの構成次第では「高度な設定」により差分取得を利用することもできます。
「XML 出力をプレビュー」することで、コネクタからの出力データをプレビューすることができます。プレビューにより取得されるデータを簡単に確認することができます。
後続のXML Map コネクタの設定をより分かりやすく実施できるように「サンプルデータを保存」しておきます。「サンプルデータを保存」しておくと、XML Map のマッピングエディタ上で、データソース側にデフォルトのサンプルデータが表示された状態になりますので、マッピングを施す際にもより判断しやすくなります。
「変更を保存」をクリックして、コネクタの設定を保存します。これでMySQL コネクタの設定は完了です。
取得(受信)のテスト
実際にデータを取得できることを確認してみます。「アウトプット」タブの「受信」をクリックします。
MySQL コネクタでは、デフォルトでは取得したデータがレコード単位にメッセージファイルとして生成されます。
メッセージファイル名をクリックすると、データを確認することができます。
また各レコード左端の「+」で展開すると、CData Arc が自動的に付与するメッセージファイルのメタデータ(メッセージヘッダ)やログの内容を確認することができます。メッセージファイルやログはダウンロードすることもできます。
このようにCData Arc ではコネクタ単位に設定や動作を確認しながらフロー作成を進めることができます。
テストで取得(受信)したメッセージやログは、選択して「削除」できます。
Kintone コネクタ
次に「kintone の顧客リストへUpsert(データを更新)」するKintone コネクタを設定します。この連携フローのおわり(終点)となるコネクタです。
配置
Kintone コネクタは「その他」カテゴリに含まれています。「その他」カテゴリから「Kintone」を選択してフローキャンバスへ配置します。
コネクタID には任意の名称を設定することができます。何を行うコネクタか、分かりやすい名前を設定します。ここでは「kintone_CustomerList_Upsert」と設定します。
接続の作成
kintone への接続情報を作成します。「接続」の「作成」をクリックします。ここで作成した「接続」は、他のkintone コネクタでも利用することができます。
「接続の追加」ダイアログで、ハンズオンで利用するkintone への接続を作成していきます。名前には任意の名称を設定することができます。識別しやすい名前を設定します。ここでは「kintone_Handson」と設定します。
接続に必要な以下の情報を設定します。
URL |
ハンズオン環境のクレデンシャル情報に従って設定します |
User |
ハンズオン環境のクレデンシャル情報に従って設定します |
Password |
ハンズオン環境のクレデンシャル情報に従って設定します |
設定したら「接続テスト」で確認します。「Success!」と表示されれば成功です。
「接続の追加」をクリックして「接続を保存」します。
アクション
kintone へのアクション(実行する操作)を選択します。このコネクタではデータを更新するので「Upsert」を選択します。
テーブル
kintone へデータを更新するテーブル(アプリ)を選択します。「+ 追加」をクリックして「テーブルの追加」ダイアログを開きます。
顧客リストテーブル(アプリ)を選択して「+ 追加」をクリックします。テーブル(アプリ)は検索ボックスで絞り込むこともできます。
「テーブル」に「顧客リスト」が追加され、「カラム」に顧客リストテーブル(アプリ)の構成が反映されます。ここでは「Upsert の有効化」や「Upsert のKey」を細かく指定することができます。
ここでは、Upsert のKey にEmail を選択します。これで同じメールアドレスを持つデータは登録ではなく、既存データの更新として扱われます。
「変更を保存」をクリックして、コネクタの設定を保存します。これでkintone コネクタの設定は完了です。
XMLMap コネクタ
最後に「MySQL のデータをkintone へマッピング」するXMLMap コネクタを設定します。この連携フローのおわり(終点)となるコネクタです。
XMLMap コネクタは、CData Arc の中でも中核的なコネクタです。CData Arc は、データの操作と変換の中間形式としてXML を使用します。多くのコネクタは、さまざまな形式のファイルをXML に、またはその逆に変換します。さらにCData Arc はXML を使用してデータベースやSaaS などバックエンドシステムの入力と出力をモデル化します。この仕組みにより、様々なフォーマットのファイルやデータベース・SaaS などのバックエンドシステムをシームレスにつなぐことができます。
配置
XMLMap コネクタは「コア」カテゴリに含まれています。「コア」カテゴリから「XML Map」を選択してフローキャンバスへ配置します。
コネクタID には任意の名称を設定することができます。何を行うコネクタか、分かりやすい名前を設定します。ここでは「XMLMap_Customer_to_CustomerList」と設定します。
フロー設定
コネクタ間の流れを設定していきます。まず「MySQL コネクタからXMLMap コネクタ」にフローをつなぎます。
次に「XMLMap コネクタからKintone コネクタ」にフローをつなぎます。
これでXMLMap コネクタでは、どのコネクタからインプットされ、どのコネクタへアウトプットするかが理解されるようになります。
ソースファイル・デスティネーションファイル
ここまでの操作で、MySQL コネクタでアウトプットされるデータ構造と、Kintone コネクタにインプットされるデータ構造が構成されていますので、マッピングのソースファイル(変換元)とデスティネーションファイル(変換先)にそれぞれ選択して設定します。
ソースファイルとデスティネーションファイルを指定すると、マッピングエディタにデータ構造が反映され、同名項目同士などデフォルトのマッピングが施されます。
XML Map のマッピングエディタは豊富な機能を有しており、XML の値だけでなく属性(アトリビュート)も対象にすることができます。
ただ、このハンズオンのようにシンプルなシナリオだとXML の各項目の属性(アトリビュート)まで表示していると見通しがやや下がる面もあるかも知れません。そのようなときは「アトリビュートを表示」をOff にすることで各項目の値のみをシンプルに表示することができます。
マッピング
下記の項目を「ソース」から「宛先」にマッピングします。kintone ではデータの登録時にRecordId が自動採番されます。このシナリオでは、MySQL 側の主キーである「CustomerId」はkintone 顧客リストの「備考」に連携します。
ソース(MySQL 側) |
宛先(kintone 側) |
CustomerId |
備考 |
Address |
住所 |
Company |
会社名 |
Department |
部署名 |
Email |
メールアドレス |
Fax |
FAX_数字のみ_ |
Name |
担当者名 |
PostCode |
郵便番号_数字のみ_ |
Rank |
顧客ランク |
Tel |
TEL_数字のみ_ |
もし意図しない宛先にマッピングを施してしまった場合、「マッピングを削除」から取り消すことができます。
マッピング(式エディタ)
XMLMap コネクタでは、フォーマッタや条件、カスタムスクリプトなどを利用した高度なマッピング機能も利用できます。
ここでは「PostCode」を「郵便番号_数字のみ_」にマッピングするときに「ハイフン(-)無し」に編集します。「PostCode」項目の「式」をクリックして、エクスプレッションエディタ(式エディタ)を開きます。
XMLMap の式エディタでは、ArcScript のフォーマッタを利用してマッピング中にデータを動的に編集・加工することができます。ここでは
replace フォーマッタを利用して「-」を除去します。
[xpath(PostCode) | replace('-', '')]
「変更を保存」をクリックして、コネクタの設定を保存します。これでXMLMap コネクタの設定は完了です。
式エディタで利用できるフォーマッタには、よく利用される文字列・日付・算術カテゴリの他に、ファイル操作や、XML やCSV を解析する操作で利用できるフォーマッタなどが豊富に備わっています。式エディタで利用できるArcScript のフォーマッタについては、こちら もご覧ください。
またXMLMap コネクタのマッピングではArcScript を利用した「カスタムスクリプト」の実行結果をマッピングの値として設定することもできます。シンプルなマッピングや式エディタでは実現が難しいビジネスロジックを含んだマッピングなどで力を発揮します。
ArcScript については、こちら や、ナレッジベース などもご覧ください。
CData Arc では設定したマッピングの結果をすぐにテストすることができる「テストマッピング」の機能が搭載されています。フォーマッタを利用して変換や編集をともなうマッピングを施している場合、その結果をすぐにテストできる「テストマッピング」の機能はとても便利です。
「マッピングをテスト」をクリックするとマッピングテストダイアログが表示されます。「サンプルデータを保存」しておくとデータソース側にテスト対象のデータとして設定された状態になります。テスト対象となる「データソース」欄には任意のデータを上書きして指定することも、任意のテストデータファイルをアップロードして指定することもできます。
「テスト」をクリックすると、マッピングを実行した結果が「宛先」欄に出力されます。このシナリオでは「郵便番号_数字のみ_」の項目がハイフンなしに編集できていることがすぐに確認できます。
フローの実行
これでシナリオの連携フローが完成しました。連携フローを手動で実行するときは、起点のコネクタでデータをアウトプット(受信)します。MySQL コネクタの「アウトプット」タブで「受信」を実行します。
実行結果の確認
受信に成功(Success)したメッセージファイルは、オートメーションの機構により、後続のXMLMap コネクタに渡されます(インプットされます)。
XMLMap コネクタの「インプット」「アウトプット」でMySQL コネクタから渡されたメッセージファイルがマッピングされ、アウトプットされていることが確認できます。
最後のkintone コネクタの「インプット」タブで、XMLMap コネクタから渡されたメッセージファイルで指定した処理(Upsert)に成功していることが確認できます。
コネクタ実行履歴の右端に表示される「詳しくはこちら」から、ログページ上で「フローの一連の流れ」として確認することもできます。
kintone 上での結果確認
kintone の「顧客リスト」アプリの内容を確認してみます。このハンズオンでは同じ顧客リストアプリへ、複数の参加者の方々がそれぞれの顧客情報を登録しているので、自分が連携を実行したデータが登録されているかを確認します。
フローの自動実行
CData Arc にはスケジューリング実行するための機能が標準で搭載されています。開発・テストが完了した連携フローを自動で定期的に実行したいときに便利です。スケジュール実行はフローの起点となるコネクタで「受信オートメーション」を有効にすることで設定します。
このシナリオのフローを、1時間に1度、毎時0分に自動実行する場合は、MySQL コネクタの「オートメーション」タブで下記のように設定します。
ここまでのまとめ
これで「CData Arc ハンズオンセミナー ~はじめてのCData Arc(kintone 版)~」の「シナリオ1-1」が完了しました。
シナリオ1-1
この記事では CData Arc™ 2023 - 23.4.8801.0 を利用しています。
関連コンテンツ