CData Software Blog

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

SQLServer・BigQuery・SAP S/4 HANAのデータをArcESBを使ってkintoneに連携する方法

この記事ではノーコードのデータ連携ソフトウェアである ArcESB を利用し、SQLServer・BigQuery・SAP S/4 HANA のデータを定期的に kintone に連携する方法を紹介します。 f:id:sennanvolar44:20200219222124p:plain

ArcESB とは?

ArcESB はノーコードでETL/EAI などのデータ連携や EDI などの企業間での各種取引情報連携を実現できるWebアプリケーションです。

https://www.arcesb.com/

f:id:sennanvolar44:20200219072923p:plain

今回はこの ArcESB と BigQuery、OData(SAP S/4 HANA への接続用)の ADO.NET Provider を組み合わせて、kintone へデータを連携するための方法を解説します。
SQLServer への接続コネクタは ArcESB に入っております。

必要なもの

以下の製品のインストールが必要になります。すべて30日間のトライアルが提供されていますので、是非試してみてください。

事前準備

まず使用する製品をそれぞれインストールします。以下のページから、ArcESB の本体を入手できます。必要に応じて、WindowsJava/Linux、Cloud Hosted のバージョンから選択してください。なお、本記事ではWindows ベースで進めます。

https://www.arcesb.com/download/ f:id:sugimomoto:20200127165940p:plain

インストールはそのままダイアログに従って進めれば大丈夫です。難しいところは特にありませんが、ログインする際のパスワード入力を求められる場所がありますので、忘れてしまわないように注意しましょう。

f:id:sugimomoto:20200127165947p:plain

また ArcESB には BigQuery と OData の接続用ライブラリが含まれていませんので、それらを個別で CData のサイトから入手し、インストールします。

それぞれ以下の URL から入手可能です。

https://www.cdata.com/jp/drivers/bigquery/ado/ f:id:sennanvolar44:20200219104010p:plain

https://www.cdata.com/jp/drivers/odata/ado/ f:id:sennanvolar44:20200219104145p:plain

https://www.cdata.com/jp/drivers/kintone/ado/ f:id:sennanvolar44:20200219122157p:plain こちらのインストールもそのまま進んでいくだけで大丈夫です。

kintone には、SQLServer、BigQuery、SAP S/4 HANA それぞれの連携先としてアプリを3つ用意しておきます。

今回は、以下の3つのアプリを事前に作成しました。
f:id:sennanvolar44:20200219112643p:plain

ArcESB でジョブ作成~実行

ArcESB を起動後、ログイン画面が表示されるので、ArcESB のインストール時に設定したパスワードを入力してログインします。
f:id:sennanvolar44:20200219113136p:plain

SQLServer から kintone への連携ジョブを作成

SQLServer の設定

左側のサイドメニューの Database にカーソルを当てると、「+」が表示されますのでクリックします。
f:id:sennanvolar44:20200219114115p:plain

コネクタId に今回は「SQLServer-Test」と入力しました。入力後、「コネクタを作成」をクリックします。
f:id:sennanvolar44:20200219114528p:plain

ドライバー名の項目がプルダウンとなっていますので、SQLServer を選択します。あとはサーバ名やユーザ名など、それぞれの項目に SQLServer の情報を入力してください。
f:id:sennanvolar44:20200219114853p:plain

入力後「接続のテスト」をクリックし、画面上部に”成功しました”とメッセージが表示されましたら、右上にある「変更を保存」をクリックして接続情報を保存します。


次に SQLServer のどのテーブルのデータを取得するかを設定していきます。
マッピングの「アウトプット」→「+」の順にクリックし、その後に表示される「テーブルまたはビュー」をクリックします。
f:id:sennanvolar44:20200219115312p:plain

SQLServer のテーブルが表示されるので、kintone へ連携したいテーブルを選択し、「次へ」をクリックします。
f:id:sennanvolar44:20200219115844p:plain

ここでは、SQLServer から取得する際の条件を指定できます。画面上部のカラムエリアで取得したいカラムにチェックを入れると、クエリエリアに自動的にクエリが作成されます。逆にクエリを手動で入力することも可能です。その場合は、「カスタムクエリの記述」にチェックを入れると、入力することが可能になります。
f:id:sennanvolar44:20200219120344p:plain

エリエリアの下に Advanced という項目がありますが、ここでは新規レコード、または変更レコードのみを取得する設定ができるようになっています。日時のカラムを取得対象に含めている場合は、設定することが可能となっています。今回は「LastModifiedDate」を設定し、「作成」をクリックします。
f:id:sennanvolar44:20200219121052p:plain これで SQLServer の設定が完了しましたので、右上にある「変更を保存」で保存を行ってください。

kintone の設定

kintone と BigQuery、OData は 先ほどインストールした CData ADO.NET を使いますので、サイドメニューの「エンタープライズ」にある、CData の「+」をクリックします。
f:id:sennanvolar44:20200219122617p:plain

先ほどと同じように名前を入力した後、接続設定画面が表示されます。
データソースに「CData Kintone」を選択後、URL、User、Password を入力し、接続のテストを行います。成功であれば保存します。
f:id:sennanvolar44:20200219123155p:plain

マッピングの設定でになります。kintone はデータを受ける方なので「インプット」を選択後、「+」→「テーブルまたはビュー」をクリックします。
f:id:sennanvolar44:20200219132026p:plain

対象のテーブル(kintoneのアプリ)を選択すると、以下のような画面が表示されます。ここでは、kintone に登録する項目を設定します。UPSERT する場合は赤枠部分を ON にします。今回は UPSERT する場合の KEY 項目に Id を設定しています。 設定後は画面下部にある「保存」をクリックします。
f:id:sennanvolar44:20200219132424p:plain

元の画面に戻ったら、今度は「変更を保存」をクリックします。

以上で kintone の設定が完了し、ジョブのデータIN/OUT までを作成することができました。次は SQLServer と kintone のデータをマッピングする設定を行っていきます。
f:id:sennanvolar44:20200219133248p:plain

Mapping の設定

サイドメニューより「XML Map」を選択します。
f:id:sennanvolar44:20200219133912p:plain

一度「変更を保存」で XML Map を保存します。
f:id:sennanvolar44:20200219134136p:plain

以下のように「SQLServer」→「XML Map」→「kintone」の流れになるように線をつなげていき、右側にある保存アイコンをクリックして今の状態を保存します。
f:id:sennanvolar44:20200219134346p:plain

XML Map」をクリックすると以下の画面が表示されます。ここでは、実際に項目のマッピングを設定します。
まずは、先ほど作成した接続内容をそれぞれに設定します。ソースファイルに SQLServer 、デスティネーションに kintone です。
画面下部のマッピングは、ドラッグ&ドロップでできますので、対応する項目に設置してください。設定が終わりましたら、「変更を保存」をクリックします。
f:id:sennanvolar44:20200219134743p:plain

ジョブ実行

作成した SQLServer のコネクタをクリックし、「アウトプット」タブで以下の画面が表示されます。ジョブを実行する場合は、受信ボタンをクリックするとスタートします。
f:id:sennanvolar44:20200219141207p:plain

実行されると以下のように、取得したレコードが一覧で表示されます。 f:id:sennanvolar44:20200219141523p:plain

実行後、kintone にデータが連携されたかどうか確認してみると、空だったSQLServer-Replicate というアプリに SQLServer のデータが連携されました。

f:id:sennanvolar44:20200219141910p:plain

再度実行した場合は、更新されたデータがないため、SQLServer から何もデータを取得しません。これは SQLServer の設定で「LastModifiedDate」で新規、更新のレコードを判断するよう設定していたためです。
f:id:sennanvolar44:20200219142454p:plain

ジョブのスケジューリング

SQLServer の設定画面から「オートメーション」タブをクリックすると以下の画面が表示されます。受信のチェックボックスにチェックを入れると、実行間隔を設定することができます。 f:id:sennanvolar44:20200219140650p:plain

以上が、SQLServer → kintone のジョブ作成から実行でした。では、同じ要領で BigQuery と SAP S/4 HANA のジョブも作成していきます。

BigQuery から kintone への連携ジョブを作成

kintone のコネクタを作成した際と同じように、サイドメニューのCData からコネクタを作成します。設定画面を表示後、データソースに「CData Google BigQuery」、Project Id には Google Cloud Platform のプロジェクトを設定し、下の青いボタンをクリックします。
※以下の画面は接続完了後なので、ボタン名が若干違うかと思います
f:id:sennanvolar44:20200219144540p:plain

途中、BigQuery のコネクタから BigQuery への接続リクエストがありますので、下のボタンをクリックして許可します。
f:id:sennanvolar44:20200219144146p:plain

BigQuey のデータセットまで指定する場合は、「Advanced」タブから設定できます。
f:id:sennanvolar44:20200219145422p:plain

BigQuery からどんなデータを取得するかを設定後、今度は kintone に対してBigQUery のデータを受けるアプリを設定します。

設定方法は先ほどと同じです。インプットに「BigQuery-Replicate」というkintone のアプリが表示されました。
f:id:sennanvolar44:20200219150414p:plain

次に、BigQuery 用の「XML Map」を作成していきます。
XML Map」を以下のように BigQuery と kintone につなぎます。
f:id:sennanvolar44:20200219145933p:plain

XML Map」を開き、項目のマッピングを行います。
f:id:sennanvolar44:20200219152647p:plain

これで実行できる準備が整ったので、BigQuery の設定画面を開き、実行してみます。
f:id:sennanvolar44:20200219152826p:plain

kintone のBigQuery-Replicate アプリにもデータが連携されているのが確認できました。
f:id:sennanvolar44:20200219153018p:plain

SAP S/4 HANA から kintone への連携ジョブを作成

最後に「SAP S/4 HANA」からの連携です。作成方法は BigQuery の手順と同じですので、こちらは接続設定と結果だけをお伝えします。

「SAP S/4 HANA」専用コネクタはまだCData では提供していないので、今回は OData のコネクタを使用していきます。

ではサイドメニューより CData を選択してコネクタを作成していきます。データソースは「CData OData」、URLはご利用になられているSAP S/4 HANA の URL を設定し、一度「変更を保存」で保存を行います。
f:id:sennanvolar44:20200219153657p:plain

続けて、「Advanced」タブをクリックし、SAP S/4 HANA のユーザ名/パスワードを入力します。
f:id:sennanvolar44:20200219154220p:plain

Custom Headers 項目には SAP S/4 HANA で発行した API Key を以下の形式で入力します。
APIKey:XXXXXXXXXX
f:id:sennanvolar44:20200219154504p:plain
なお、SAP S/4 HANA でのAPI Key は以下の手順で取得することができます。

SAP API Business Hub にアクセスし、右上のメニューから「Preferences」をクリックして「Preferences and Settings」画面を表示します。 f:id:urabe_shintaro:20200204132630p:plain

「Preferences and Settings」画面中央の「Show API Key」ボタンをクリックするとAPIキーが表示されます。
f:id:urabe_shintaro:20200204132649p:plain


上記設定が完了しましたら接続のテストを行います。問題がなければ、BigQuery の際と同手順で、BigQuery 側の取得条件の設定 ~ kintone のアプリ設定、XML Map の設定などを行ってください。

ジョブを実行した結果は以下のように kintone 側のアプリに正しく連携されているのが確認できます。 f:id:sennanvolar44:20200219161212p:plain

事前にkintoneのデータを削除する方法

kintone のコネクタを2つ作成します。完成内容は以下のイメージです。 f:id:sennanvolar44:20200219215803p:plain

1つ目(kintone-deldata)は kintone からデータを取得する内容なので、先ほど作成したものと同じ内容となります。では、2つ目(kintone-del2)についてです。まずはインプットタブをクリックし、「kintone-deldata」で取得した内容を定義します。 f:id:sennanvolar44:20200219220620p:plain

その後、わかりずらいですが、赤枠部分にカーソルを当てると Code と表示されますのでクリックします。
f:id:sennanvolar44:20200219220732p:plain

以下の内容を赤枠部分に設定します。

operation="delete" deleteQuery="DELETE FROM `SQLServer-Replicate`"  

f:id:sennanvolar44:20200219220934p:plain

これで設定が完了です。
あとは「kintone-deldata」を実行すると、毎回kintone の「SQLServer-Replicate」アプリの全データを削除しますので、他のジョブを実行する前に行うことで、データの入れ替えを行うことができます。

最後に

ノーコードで複数のデータソースから kintone に連携することができました。kintone 以外にも CData のコネクタを組み合わせることで、様々な連携先を指定することができますので、是非お試しください。