こんにちは。CData Software Japan リードエンジニアの杉本です。
今回は国産iPaaS BizteX Connect を使用して、SQL Server のデータをサイボウズの kintone に連携する方法を紹介したいと思います。
BizteX Connect とは
BizteX株式会社が提供する国産iPaaS です。ノーコードでkintoneやChatworkなど様々なクラウドサービスと連携したフローを作成し、業務の自動化・効率化を実現することができます。
https://service.biztex.co.jp/connect/
iPaaSというとまだまだ海外のベンダーが多いイメージですが、BizteXは国産クラウドサービスということで、SalesforceやHubSpotといった海外SaaSだけでなく freeeやkintone、Chatworkなどの国産SaaSにも連携できるコネクターが多く提供されているのが特徴的です。
以下のようなUIでフローを作成していくことで、クラウドサービス間のデータ連携、ビジネスプロセス・ロジックの作成をノーコードで実現できます。
また、BizteXでは「BizteX cobit」というクラウドRPAも提供しており、iPaaSとRPA相互の連携も実現できることも、ポイントですね。
シナリオ
今回はCDataにもよく問い合わせをいただく、オンプレミス(もしくはクラウドホスティング)のSQL Server と kintone の連携をBizteX Connect で実現してみました。
BizteX Connectでは kintone コネクターが提供されており、このコネクターで kintone にデータを書き込んだり、更新したりすることが可能です。
しかしながら、BizteX Connect では SQL Server向けのコネクターは提供していないため、このボトルネックをCData Software で提供している API Server という製品を組み合わせて解消します。
通常、クラウドサービスからRDB・オンプレミスの基幹システムなどにアクセスしたい場合は、インターフェースとなるAPIをスクラッチで作成する必要がありますが、API Serverを利用することで簡単にRDBに接続できるAPIを自動生成することが可能です。
これにより、既存のRDBや基幹システムのバックエンドをクラウドサービスと組み合わせて処理を実施できるようになります。
BizteX Connect では 様々なAPIにアクセスするためのHTTPコネクターが提供されているので、このコネクターでそのまま API Server が生成したAPIにアクセスできます。
また、CData API Server はCloud Gatewayという機能を使って、クラウド上のSSHサーバーを経由してインターネット上にAPIを公開することができます。これにより、オンプレミス上でFirewall を調整したり、DMZに配置するといったことを気にする必要がありません。
以上のような仕組みで、SQL Server の顧客データをAPI Serverを用いて公開し、BizteX Connectを経由して Kintoneにデータを書き込んでみたいと思います。
手順
それでは実際の手順を紹介します。
必要なもの
- CData API Server
- SQL Server
- AWS EC2
- Windows マシン
SQL Server は予め対象マシンにインストールしておいてください。
API Server の環境構成
今回はオンプレミスに API Server を配置して BizteX Connect と連携します。SSH サーバーとしてAWS EC2のインスタンスを使用しました。基本的な環境構築方法は以下の記事を参考にしてみてください。
API Server は以下からトライアルがダウンロードできます。
https://www.cdata.com/jp/apiserver/
なお、対象OSはWindowsマシン(Windows 10や Windows Server)としています。
SQL Server の接続を追加する
API Server の環境を構築後、SQL Server への接続を追加します。
「設定」→「接続」から「SQL Server」を選択し
オンプレミスに構成しておいた、SQL Serverへの接続情報を入力します。入力後、接続テストをクリックして問題なければ設定を保存します。
対象のエンドポイントを追加する
API Server 構成後、今回利用するエンドポイントを新しく追加します。
「設定」→「リソース」タブに移動し「新しいリソースを追加」をクリックします。
前の手順で作成しておいた「SQL Server」のコネクションを選択して、次へ移動し
「vStoreWithContacts」テーブルを追加します。
リソース名は「Contacts」としました。利用する操作はGETだけなので、GETを指定して保存します。
ユーザーの追加と動作確認
あとは接続の時に利用するユーザーも登録しておきます。生成されたトークンを後で利用するので、控えておきましょう。
構成されたAPIエンドポイントを確認してみます。「API」タブに移動すると、追加したリソースが表示されています。ここでリクエスト方法などを確認できます。
試しにURLをクリックしてみると、以下のようなJSONを取得できました。
これでAPI Server側の準備は完了です。
プロジェクト・シナリオの作成
API Server の準備ができたので、BizteX Connect 側の作業を進めていきましょう。
まずはプロジェクトとシナリオ(フロー)を作成します。
シナリオ(フロー)はプロジェクト単位でまとめて管理できるようです。
BizteX Connectにログインしたら、画面上のメニューから「プロジェクト」を選択し
「新規プロジェクト作成」をクリック
任意の名称でプロジェクトを作成します。
その後「+新規シナリオ作成」をクリックして、kintone データ連携シナリオの作成を進めていきます。
起動イベントの設定
シナリオの作成で一番最初に設定することが、起動イベントの構成です。BizteX Connect では様々な起動イベントが存在しますが、今回は検証用途として「手動」実行にしてみました。
「アプリ選択」の一覧から「一般」を選択し
「ボタンを押して実行」を選択します。
それぞれのイベントでは出力データが変数として格納されます。内容を確認して「完了して次へ」をクリックしましょう。
HTTP コネクタの構成
今回のシナリオでは、SQL Serverのデータを取得して Kintone に書き込みを行います。
そのため、最初の処理としてAPI Server からSQL Serverのデータを取得する処理を構成します。
API Server へのアクセスには「HTTPコネクタ」が利用できるので、アプリの一覧から選択します。
アクションは「HTTPリクエスト」を指定します。
続いて、データを取得するためのAPIリクエストを指定します。今回はデータを取得するのでGETリクエストです。対象のURLはAPI ServerのAPIドキュメントから取得してきて指定しましょう。
プロパティ名 | 値 | 備考 |
---|---|---|
URL | http://XXXXXX.com:8080/api.rsc/Contacts/ | |
メソッド | GET |
基本設定が完了したら、オプションを指定します。ここで最低限必要になるオプションはAPI Serverへの認証情報の指定です。以下のようなJSON形式でx-cdata-authtokenのプロパティにAPI Server で構成したユーザーのトークンを指定すれば接続が行えます。
{"x-cdata-authtoken":"XXXXXXXXX"}
すべての設定が完了したら出力結果を確認してみましょう。以下のようにBodyの中の「value」オブジェクトの中に配列形式でデータが格納されていることが確認できます。正常にBizteX ConnectからSQL Serverのデータが取得できていますね。
繰り返し処理
SQL Server からのデータを取得処理が作成できたら、kintoneにデータを書き込むため、1レコード単位にデータを分解します。
これにはBizteX Connectの「一般」の「繰り返し」が利用できます。
「繰り返し対象」で先程取得した「Array」の配列要素を選択し「ブロックを開く」をクリックしましょう。
すると、Itemの中身が展開されて、このデータをもとにした処理を引き続き作成できます。
kintone 処理の追加
最後に kintone への書き込み処理を追加します。
アプリの一覧から「kintone」を選択し
アクションの一覧から「レコードの登録」を選択して、次へ進みます。
kintone コネクタでは処理内容を指定する前に認証設定を行います。「新しいコネクタを作成する」をクリックし
kintone への接続情報を指定していきます。設定方法の詳細は以下のヘルプページを参考にしてみてください。
接続が完了すると、kintone のアプリで保持している項目の一覧が表示され、それぞれの項目にどのような値を入力するのか指定する画面が表示されます。
画面右側には現在のシナリオで利用できる変数の一覧、繰り返し項目の中身も表示されるので、これをそれぞれの項目にマッピングしていくことができます。
これでkintoneへの書き込み処理は完成です。
シナリオを動かしてみる
それでは実際にシナリオを動かしてみましょう。設定を保存したら画面右上から「シナリオ有効化」をONにします。
その後シナリオ一覧に移って再生ボタンをクリックしましょう。
処理結果画面に移動して「ステータス」が「成功」になっていればOKです。
kintone のアプリ側も見てみると、以下のようにSQL Serverのデータが正常に登録されていることが確認でkました。
おわりに
このようにAPI ServerでAPIを公開することで、クラウドサービスから既存のRDBなどがとても使いやすくなります。
今回はSQL Server を対象にしましたが、PostgreSQLやMySQL、Oracleといったデータソースにも対応できます。
https://www.cdata.com/jp/apiserver/#databases
また、SalesforceやSharePointなどのクラウドサービスも、部分的にAPI Server経由でAPI公開することができ、通常は複雑なAPIリクエストが必要なクラウドサービスにも手軽にAPIアクセスできるようになります。
ぜひ、いろんなシチュエーションで試してみてください。
何か質問・疑問がありましたら、テクニカルサポートまでお気軽にどうぞお問い合わせください。