CData Arc を使ってkintone とSQL Server を双方向にデータ連携する方法

by 色川穂高 | 2022年01月14日

f:id:irokawah:20220113222415p:plain

こんにちは。CData Software Japanの色川です。

kintone、とても使いやすいプラットフォームですよね。kintone の利用が進むと、kintone で登録したデータを他の社内システムへ連携したり、マスター情報など社内システムのデータをkintone に連携させたくなるケースも増えますよね。それら他システムのデータストアにはSQL Server やOracle、PostgreSQL やMySQL などを利用されている事が多いと思います。

この記事では、kintone と他システムとの連携を想定して、CData Arc を使ってノーコードでkintone とSQL Server を双方向にデータ連携する方法をご紹介します。

CData Arc とは?

ファイル転送(MFT)とSaaSデータ連携をノーコードで実現できるデータ連携ツールです。ファイル・データベース・SaaS API、オンプレミスやクラウドにある様々なデータをノーコードでつなぐ事ができます。

arc.cdata.com

この記事のシナリオ

この記事では「SQL Server のデータをkintone アプリに」「kintone アプリのデータをSQL Server に」連携するシナリオをそれぞれ作成します。

具体的には「SQL Server にある顧客データをkintone の顧客管理アプリに連携」し、「kintone の案件管理アプリで登録したデータをSQL Server へ案件データとして連携」します。

必要なもの

この記事のシナリオでは以下の製品を利用します。すべて30日間のトライアルが提供されています。ぜひお手元で試してみてください。

製品のインストール等はこちらの記事を参考にしてください。

www.cdatablog.jp

kintone の準備

今回kintone 側は、営業支援パックにある「顧客管理」「案件管理」から用意しました。

顧客管理 f:id:irokawah:20220113222440p:plain

案件管理 f:id:irokawah:20220113222455p:plain

SQL Server の準備

SQL Server 側は、以下のようなテーブル構成とデータを用意しました。今回は基本的にkintone 側と同じデータ構造で用意しました。顧客テーブルのデータはkintone 顧客管理アプリのサンプルデータを活用させてもらいました。

顧客テーブル f:id:irokawah:20220113222506p:plain

案件テーブル f:id:irokawah:20220113222517p:plain

CData Arc の基本的な使い方

CData Arc の起動方法や基本的なフローの作り方についてはこちらをご覧ください。

arc.cdata.com

arc.cdata.com

それでは実際にそれぞれの連携フローを作成していきます。

SQL Server のデータをkintone に連携する

こちらの連携フローは以下のような流れになっています。

  コネクタ 内容
1 SQL Server(SQLServer_Select) SQL Server にある顧客データのSelect
2 XMLMap(XMLMap_SQLServer_kintone) 1.で取得した情報を3.にマッピング
3 CData(kintone_Upsert) kintone の顧客管理アプリにUpsert

f:id:irokawah:20220113222533p:plain

SQL Server コネクタ(SQLServer_Select)の配置と構成

最初にフローの起点となるSQL Server コネクタ(SQLServer_Select)を配置し「SQL Server の顧客データを取得」します。Database カテゴリから「SQL Server コネクタ」を選択し、フローキャンバスへ配置します。

f:id:irokawah:20220113222553p:plain

Connection でSQL Server の接続情報を設定します。「Test Connectoin」で接続の確認ができます。

f:id:irokawah:20220113222605p:plain

Action は「Select」。対象テーブルに「顧客」テーブルを選択します。

f:id:irokawah:20220113222625p:plain

f:id:irokawah:20220113222636p:plain

この記事ではシンプルに全レコードを取得しますが、抽出するカラムの選択や、条件設定もここで行えます。

設定内容で正しく取得できるか確認するために、アウトプットタブから「受信」を実行します。対象レコード分、取得できていれば成功です。

f:id:irokawah:20220113222647p:plain

CData コネクタ(kintone_Upsert)の配置と構成

次にフローの終点となるCData コネクタ(kintone_Upsert)を配置し「kintone の顧客管理アプリへのUpsert を設定」します。コアカテゴリからの「CData コネクタ」を選択し、フローキャンバスへ配置します。

f:id:irokawah:20220113222659p:plain

コネクタの設定で、kintone への接続を設定してください。

f:id:irokawah:20220113222709p:plain

Action は「Upsert」。対象テーブルに「顧客管理」を選択します。今回は必要最低限の項目だけ更新するので、Columuns で登録更新対象の列(SQL Server の顧客テーブルから取得した列)を指定しています。

f:id:irokawah:20220113222721p:plain

XMLMap(XMLMap_SQLServer_kintone) の配置と構成

このフローの最後に、SQL Server コネクタ(SQLServer_Select)の情報を、CData コネクタ(kintone_Upsert)にマッピングします。

コアカテゴリから「XMLMap」コネクタを配置します。

f:id:irokawah:20220113222757p:plain

フローキャンバスの中で、SQL Server コネクタ(SQLServer_Select)からXMLMap(SQLServer_kintone)に。XMLMap(SQLServer_kintone)からCData コネクタ(kintone_Upsert)へフローを繋ぎます。フローを接続したら、ワークスペースを保存してください。これで双方のデータ構成(スキーマ)がXMLMap で認識できるようになります。

f:id:irokawah:20220113222807p:plain

XMLMap の設定でそれぞれの項目をマッピングします。

f:id:irokawah:20220113222818p:plain

これで「SQL Server の顧客データを、kintone の顧客管理アプリへ連携する」フローができあがりました。

このシナリオではシンプルなマッピングのみでデータ項目の変換などは行いませんが、CData Arc でのデータマッピングや変換について興味のある方はこちらを併せてごらんください。

arc.cdata.com

連携フローの実行と確認

作成したフローを実行して確認してみましょう。

起点となるSQL Server コネクタ(SQLServer_Select)からフローを実行してみます。アウトプットタブから「受信」を実行します。

f:id:irokawah:20220113222835p:plain

フローの終点となるCData コネクタ(kintone_Upsert)のインプットタブの結果を確認します。顧客データのレコード数分、実行されていれば成功です。

f:id:irokawah:20220113222847p:plain

kintone の顧客管理アプリに連携されていることが確認できます。

f:id:irokawah:20220113222900p:plain

(案件管理アプリでデータ登録)

次のフローで使うデータとして、顧客管理アプリに連携したデータを利用して、案件管理アプリに以下のようなデータを登録しました。今度は登録した案件管理アプリのデータをSQL Server に連携します。

f:id:irokawah:20220113222918p:plain

f:id:irokawah:20220113222929p:plain

f:id:irokawah:20220113222940p:plain

kintone のデータをSQL Server に連携する

次は逆の流れです。こちらの連携フローは以下のような流れになっています。

  コネクタ 内容
1 CData(kintone_Select) kintone の案件管理アプリからのSelect
2 XMLMap(XMLMap_kintone_SQLServer) 1.で取得した情報を3.にマッピング
3 SQL Server(SQLServer_Upsert) SQL Server の案件テーブルにUpsert

f:id:irokawah:20220113222952p:plain

CData コネクタ(kintone_Select)の配置と構成

こちらも最初にフローの起点となるCData コネクタ(kintone_Select)を配置し「kintone の案件管理アプリのデータを取得」します。コアカテゴリから「CData コネクタ」を選択し、フローキャンバスへ配置します。

f:id:irokawah:20220113223001p:plain

コネクタの設定で、kintone への接続を設定してください。

f:id:irokawah:20220113223020p:plain

Action は「Select」。対象テーブルに「案件管理」を選択します。今回は必要最低限の項目だけ連携するので、Columuns で取得対象の列を指定しています。この記事ではシンプルに全レコード取得しますが、条件設定もここで行えます。

f:id:irokawah:20220113223037p:plain

設定内容で正しく取得できるか確認するために、アウトプットタブから「受信」を実行します。対象レコード分(ここでは先ほど登録した1件)、取得できていれば成功です。

f:id:irokawah:20220113223053p:plain

SQL Server コネクタ(SQLServer_Upsert)の配置と構成

次にこちらのフローの終点となるSQL Server コネクタ(SQLServer_Upsert)を配置し「SQL Server の案件テーブルを更新する設定」をします。Database カテゴリから「SQL Server コネクタ」を選択し、フローキャンバスへ配置します。

f:id:irokawah:20220113223112p:plain

Connection でSQL Server の接続情報を設定します。先ほどのフローと同じ接続先なので、作成した接続情報を選択するだけで大丈夫です。

f:id:irokawah:20220113223127p:plain

Action は「Upsert」。対象に「案件」テーブルを選択します。

f:id:irokawah:20220113223147p:plain

XMLMap(XMLMap_kintone_SQLServer) の配置と構成

このフローの最後に、CData コネクタ(kintone_Select)の情報を、SQL Server コネクタ(SQLServer_Upsert)にマッピングします。

コアカテゴリから「XMLMap」コネクタを配置します。

f:id:irokawah:20220113223201p:plain

フローキャンバスの中で、CData コネクタ(kintone_Select)からXMLMap(kintone_SQLServer)に。XMLMap(kintone_SQLServer)からSQL Server コネクタ(SQLServer_Upsert)へフローを繋ぎます。フローを接続したら、ワークスペースを保存してください。これで双方のデータ構成(スキーマ)がXMLMap で認識できるようになります。

f:id:irokawah:20220113223214p:plain

XMLMap の設定でそれぞれの項目をマッピングします。

f:id:irokawah:20220113223227p:plain

これで「kintone の案件管理アプリのデータを、SQL Server の案件テーブルへ連携する」フローができあがりました。

連携フローの実行と確認

起点となるCData コネクタ(kintone_Select)からフローを実行してみます。アウトプットタブから「受信」を実行します。

f:id:irokawah:20220113223244p:plain

フローの終点となるSQL Server コネクタのインプットタブの結果を確認します。案件管理アプリのレコード数分、実行されていれば成功です。

f:id:irokawah:20220113223253p:plain

SQL Server の案件テーブルに連携されていることが確認できます。

f:id:irokawah:20220113223302p:plain

フローを自動実行したいとき

CData Arc ではフローを定期実行するスケジューラ機能を持っています。今回のシナリオであれば、それぞれのフローの起点となるコネクタの「オートメーション」タブで設定することができます。1時間に1度、毎時0分に定期実行する場合は、このように設定します。

f:id:irokawah:20220113223312p:plain

レコードをまとめて処理したいとき

基本的に CData Arc では、1レコードずつXMLドキュメントとして出力し処理を実行します。レコード数が多い場合など、処理対象レコードを1つのXMLドキュメントに一括して出力し処理を実行したい場合にはバッチ処理を活用する事ができます。CData Arc のバッチ処理はこちらを参考にしてください。

https://www.cdata.com/jp/blog/2020-02-28-145157

おわりに

kintone へ登録更新する、kintone から取得する、いずれの流れでも、他システムとkintone を連携したいケースは多いと思います。今回はSQL Server でしたが、CData Arc ではOracle やPostgreSQL、MySQL などデータベースコネクタを差し替えることで、それぞれ同じ使用感で今回のシナリオを実現頂けます。またファイル系のコネクタも充実していますので、データベースだけでなくCSV などのファイルとkitone との連携も可能です。

CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。CData Drivers との組み合わせで250を超えるアプリケーションへの連携を実現できます。必要な連携を低価格からはじめられる事も大きな特長です。

皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。

arc.cdata.com

お試しいただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。

www.cdata.com


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

関連コンテンツ

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

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