CData Software Blog

クラウド連携のCData Software の技術ブログです。

国産iPaaS BizteX Connect で SQL Server のデータを kintone に連携

f:id:sugimomoto:20211025161439p:plain

こんにちは。CData Software Japan リードエンジニアの杉本です。

今回は国産iPaaS BizteX Connect を使用して、SQL Server のデータをサイボウズの kintone に連携する方法を紹介したいと思います。

BizteX Connect とは

BizteX株式会社が提供する国産iPaaS です。ノーコードでkintoneやChatworkなど様々なクラウドサービスと連携したフローを作成し、業務の自動化・効率化を実現することができます。

https://service.biztex.co.jp/connect/

f:id:sugimomoto:20211025161354p:plain

iPaaSというとまだまだ海外のベンダーが多いイメージですが、BizteXは国産クラウドサービスということで、SalesforceやHubSpotといった海外SaaSだけでなく freeeやkintone、Chatworkなどの国産SaaSにも連携できるコネクターが多く提供されているのが特徴的です。

f:id:sugimomoto:20211025161400p:plain

以下のようなUIでフローを作成していくことで、クラウドサービス間のデータ連携、ビジネスプロセス・ロジックの作成をノーコードで実現できます。

f:id:sugimomoto:20211025161405p:plain

また、BizteXでは「BizteX cobit」というクラウドRPAも提供しており、iPaaSとRPA相互の連携も実現できることも、ポイントですね。

service.biztex.co.jp

f:id:sugimomoto:20211025161411p:plain

シナリオ

今回はCDataにもよく問い合わせをいただく、オンプレミス(もしくはクラウドホスティング)のSQL Server と kintone の連携をBizteX Connect で実現してみました。

f:id:sugimomoto:20211025161424p:plain

BizteX Connectでは kintone コネクターが提供されており、このコネクターで kintone にデータを書き込んだり、更新したりすることが可能です。

f:id:sugimomoto:20211025161429p:plain

しかしながら、BizteX Connect では SQL Server向けのコネクターは提供していないため、このボトルネックをCData Software で提供している API Server という製品を組み合わせて解消します。

www.cdata.com

f:id:sugimomoto:20200429134533p:plain

通常、クラウドサービスからRDB・オンプレミスの基幹システムなどにアクセスしたい場合は、インターフェースとなるAPIをスクラッチで作成する必要がありますが、API Serverを利用することで簡単にRDBに接続できるAPIを自動生成することが可能です。

これにより、既存のRDBや基幹システムのバックエンドをクラウドサービスと組み合わせて処理を実施できるようになります。

BizteX Connect では 様々なAPIにアクセスするためのHTTPコネクターが提供されているので、このコネクターでそのまま API Server が生成したAPIにアクセスできます。

f:id:sugimomoto:20211025161434p:plain

また、CData API Server はCloud Gatewayという機能を使って、クラウド上のSSHサーバーを経由してインターネット上にAPIを公開することができます。これにより、オンプレミス上でFirewall を調整したり、DMZに配置するといったことを気にする必要がありません。

f:id:sugimomoto:20211025161439p:plain

以上のような仕組みで、SQL Server の顧客データをAPI Serverを用いて公開し、BizteX Connectを経由して Kintoneにデータを書き込んでみたいと思います。

手順

それでは実際の手順を紹介します。

必要なもの

SQL Server は予め対象マシンにインストールしておいてください。

API Server の環境構成

今回はオンプレミスに API Server を配置して BizteX Connect と連携します。SSH サーバーとしてAWS EC2のインスタンスを使用しました。基本的な環境構築方法は以下の記事を参考にしてみてください。

www.cdatablog.jp

API Server は以下からトライアルがダウンロードできます。

https://www.cdata.com/jp/apiserver/

なお、対象OSはWindowsマシン(Windows 10や Windows Server)としています。

SQL Server の接続を追加する

API Server の環境を構築後、SQL Server への接続を追加します。

「設定」→「接続」から「SQL Server」を選択し

f:id:sugimomoto:20211025161447p:plain

オンプレミスに構成しておいた、SQL Serverへの接続情報を入力します。入力後、接続テストをクリックして問題なければ設定を保存します。

f:id:sugimomoto:20211025161452p:plain

対象のエンドポイントを追加する

API Server 構成後、今回利用するエンドポイントを新しく追加します。

「設定」→「リソース」タブに移動し「新しいリソースを追加」をクリックします。

f:id:sugimomoto:20211025161506p:plain

前の手順で作成しておいた「SQL Server」のコネクションを選択して、次へ移動し

f:id:sugimomoto:20211025161511p:plain

「vStoreWithContacts」テーブルを追加します。

f:id:sugimomoto:20211025161515p:plain

リソース名は「Contacts」としました。利用する操作はGETだけなので、GETを指定して保存します。

f:id:sugimomoto:20211025161520p:plain

ユーザーの追加と動作確認

あとは接続の時に利用するユーザーも登録しておきます。生成されたトークンを後で利用するので、控えておきましょう。

f:id:sugimomoto:20211025161525p:plain

構成されたAPIエンドポイントを確認してみます。「API」タブに移動すると、追加したリソースが表示されています。ここでリクエスト方法などを確認できます。

f:id:sugimomoto:20211025161529p:plain

試しにURLをクリックしてみると、以下のようなJSONを取得できました。

f:id:sugimomoto:20211025161534p:plain

これでAPI Server側の準備は完了です。

プロジェクト・シナリオの作成

API Server の準備ができたので、BizteX Connect 側の作業を進めていきましょう。

まずはプロジェクトとシナリオ(フロー)を作成します。

シナリオ(フロー)はプロジェクト単位でまとめて管理できるようです。

BizteX Connectにログインしたら、画面上のメニューから「プロジェクト」を選択し

f:id:sugimomoto:20211025161542p:plain

「新規プロジェクト作成」をクリック

f:id:sugimomoto:20211025161548p:plain

任意の名称でプロジェクトを作成します。

f:id:sugimomoto:20211025161552p:plain

その後「+新規シナリオ作成」をクリックして、kintone データ連携シナリオの作成を進めていきます。

f:id:sugimomoto:20211025161556p:plain

起動イベントの設定

シナリオの作成で一番最初に設定することが、起動イベントの構成です。BizteX Connect では様々な起動イベントが存在しますが、今回は検証用途として「手動」実行にしてみました。

「アプリ選択」の一覧から「一般」を選択し

f:id:sugimomoto:20211025161601p:plain

「ボタンを押して実行」を選択します。

f:id:sugimomoto:20211025161607p:plain

それぞれのイベントでは出力データが変数として格納されます。内容を確認して「完了して次へ」をクリックしましょう。

f:id:sugimomoto:20211025161612p:plain

HTTP コネクタの構成

今回のシナリオでは、SQL Serverのデータを取得して Kintone に書き込みを行います。

そのため、最初の処理としてAPI Server からSQL Serverのデータを取得する処理を構成します。

API Server へのアクセスには「HTTPコネクタ」が利用できるので、アプリの一覧から選択します。

f:id:sugimomoto:20211025161618p:plain

アクションは「HTTPリクエスト」を指定します。

f:id:sugimomoto:20211025161622p:plain

続いて、データを取得するためのAPIリクエストを指定します。今回はデータを取得するのでGETリクエストです。対象のURLはAPI ServerのAPIドキュメントから取得してきて指定しましょう。

プロパティ名 備考
URL http://XXXXXX.com:8080/api.rsc/Contacts/
メソッド GET

f:id:sugimomoto:20211025161728p:plain

基本設定が完了したら、オプションを指定します。ここで最低限必要になるオプションはAPI Serverへの認証情報の指定です。以下のようなJSON形式でx-cdata-authtokenのプロパティにAPI Server で構成したユーザーのトークンを指定すれば接続が行えます。

{"x-cdata-authtoken":"XXXXXXXXX"}

f:id:sugimomoto:20211025161734p:plain

すべての設定が完了したら出力結果を確認してみましょう。以下のようにBodyの中の「value」オブジェクトの中に配列形式でデータが格納されていることが確認できます。正常にBizteX ConnectからSQL Serverのデータが取得できていますね。

f:id:sugimomoto:20211025161739p:plain

繰り返し処理

SQL Server からのデータを取得処理が作成できたら、kintoneにデータを書き込むため、1レコード単位にデータを分解します。

これにはBizteX Connectの「一般」の「繰り返し」が利用できます。

f:id:sugimomoto:20211025161751p:plain

f:id:sugimomoto:20211025161755p:plain

「繰り返し対象」で先程取得した「Array」の配列要素を選択し「ブロックを開く」をクリックしましょう。

f:id:sugimomoto:20211025161759p:plain

すると、Itemの中身が展開されて、このデータをもとにした処理を引き続き作成できます。

f:id:sugimomoto:20211025161804p:plain

kintone 処理の追加

最後に kintone への書き込み処理を追加します。

アプリの一覧から「kintone」を選択し

f:id:sugimomoto:20211025161809p:plain

アクションの一覧から「レコードの登録」を選択して、次へ進みます。

f:id:sugimomoto:20211025161813p:plain

kintone コネクタでは処理内容を指定する前に認証設定を行います。「新しいコネクタを作成する」をクリックし

f:id:sugimomoto:20211025161818p:plain

kintone への接続情報を指定していきます。設定方法の詳細は以下のヘルプページを参考にしてみてください。

connect.help.biztex.co.jp

f:id:sugimomoto:20211025161823p:plain

接続が完了すると、kintone のアプリで保持している項目の一覧が表示され、それぞれの項目にどのような値を入力するのか指定する画面が表示されます。

画面右側には現在のシナリオで利用できる変数の一覧、繰り返し項目の中身も表示されるので、これをそれぞれの項目にマッピングしていくことができます。

f:id:sugimomoto:20211025161828p:plain

これでkintoneへの書き込み処理は完成です。

f:id:sugimomoto:20211025161832p:plain

シナリオを動かしてみる

それでは実際にシナリオを動かしてみましょう。設定を保存したら画面右上から「シナリオ有効化」をONにします。

f:id:sugimomoto:20211025161836p:plain

その後シナリオ一覧に移って再生ボタンをクリックしましょう。

f:id:sugimomoto:20211025161841p:plain

処理結果画面に移動して「ステータス」が「成功」になっていればOKです。

f:id:sugimomoto:20211025161846p:plain

kintone のアプリ側も見てみると、以下のようにSQL Serverのデータが正常に登録されていることが確認でkました。

f:id:sugimomoto:20211025161851p:plain

おわりに

このようにAPI ServerでAPIを公開することで、クラウドサービスから既存のRDBなどがとても使いやすくなります。

今回はSQL Server を対象にしましたが、PostgreSQLMySQLOracleといったデータソースにも対応できます。

https://www.cdata.com/jp/apiserver/#databases

f:id:sugimomoto:20200429135116p:plain

また、SalesforceSharePointなどのクラウドサービスも、部分的にAPI Server経由でAPI公開することができ、通常は複雑なAPIリクエストが必要なクラウドサービスにも手軽にAPIアクセスできるようになります。

f:id:sugimomoto:20200429135126p:plain

ぜひ、いろんなシチュエーションで試してみてください。

何か質問・疑問がありましたら、テクニカルサポートまでお気軽にどうぞお問い合わせください。

https://www.cdata.com/jp/support/submit.aspx