kintoneと基幹システムで実現 在庫アプリに入出庫数を連携させる
本記事はCDataが提供する「CData Software Blog」に掲載された「kintoneと基幹システムの連携例|kintoneの在庫アプリに最新の入出庫数を定期的に連携」を再編集したものです。
基幹システムは、人間で言うところの心臓のような、企業にとっての超重要システムです。
それゆえ、UIが独特だったり、社外からのアクセスが困難だったり、と思うように使うことができず、もやっとしたことがある方は多いと思います。
そんなもやもやを解消するために「基幹システムのフロントとしてkintoneを利用したい!」というご相談をよく頂戴します。
基幹システムのフロントとしてkintoneを利用する場合には、何らかのツール(あるいはプログラム)を利用して、基幹システムからデータを取得し、kintoneのアプリにデータを書き込む必要があります。
この仲介役となるツール・プログラムについては、kintoneと連携させたい基幹システムの種類や基幹システムのデータが蓄積されているバックエンドのデータベースの種類などによりマッチする方法が異なってきますが、例えば基幹システムのデータがSnowflakeなどこちらのページに記載されているデータベースに格納されている場合、CData Syncの「リバースETL機能」でFrom 基幹システム To kintoneという連携を実現いただけます。
そこで、本記事では、基幹システムである在庫管理システムの入出庫データをkintoneのサンプルアプリ「在庫管理パック」の「製品在庫管理」アプリに定期的に連携するというシナリオにて、CData SyncのリバースETL機能(Upsert)の利用手順を紹介いたします。
なお、取り急ぎリバースETL機能(Upsert)利用時の動作イメージを確認されたい方は、手順22からご覧ください!
CData Syncのトライアル申込み&インストール
1.下記記事の項目「準備」、および「CData Sync製品のインストール、初期設定」の手順にしたがってCData Syncのインストールを実施ください。
基幹システムのデータベースと接続
2.メニュー[接続]>[+接続を追加]をクリックします。
3.タブ[データソース]よりご利用のデータベース(本記事では「PostgreSQL」を利用)を探し、クリックします。
※PostgreSQLとの接続の場合、「PostgreSQL」と「PostgreSQL(Native)」の2種類がありますが、リバースETL機能ご利用時は「PostgreSQL」をクリック(選択)してください。
4.データベースとの接続に必要な接続情報を入力します。
(例)
5.画面右上の[作成およびテスト]をクリックします。
6.テストに成功し、期待どおりデータベースと接続されますと、接続情報がCData Syncに自動保存されます。
■kintoneと接続
7.メニュー[接続]>[+接続を追加]をクリックします。
8.タブ[同期先]よりkintoneを探し、クリックします。
9.kintoneとの接続に必要な接続情報を入力します。
(本記事では、kintoneのログインURL、ログインID、ログインPWを使用した接続を使用しています)
10.画面右上の[作成およびテスト]をクリックします。
11.テストに成功し、期待どおりkintoneと接続されますと、接続情報がCData Syncに自動保存されます。
ジョブ(リバースETL)の設定
12.メニュー[ジョブ]>[+ジョブを追加]>[新しいジョブを追加]をクリックします。
13.下記のとおり入力します。
(例)
※各転送モードの詳しい説明については、下記記事をご参照ください。
待望のkintone へのリバースETL機能が、ついにCData Sync V25.1で追加されました!
14.[次へ]をクリックします。
15.下記のとおり選択します。
(例)
16.[次へ]をクリックします。
17.項目[キー]を設定します。
kintone側のキーの選択肢では「値の重複を禁止する」の設定がされた数値フィールド、あるいは文字列フィールドがリストアップされますので、データベース側は選択したkintone側のキーに合わせて選択します。
(本記事では、データベース(基幹システム)側で自動採番されるIdをkintoneアプリ側でも持つ設計とし、利用。)
18.項目[必須]を設定します。
kintone側で必須入力となっているフィールドが対象となります。データベース側はkintone側のフィールドに対応するカラムを選択します。
(本記事では、kintone側の「入出庫区分」に該当するデータベースのカラム「InOutDestination」を選択)
19.項目[カラム]を設定します。kintone側のフィールドに対応するデータベースのカラムを設定していきます。
※kintone側のフィールド名とデータベースのカラム名が一致する場合は、[オートマッピング]をクリックすることで、自動で対応づけることも可能です。
※kintoneアプリのユーザー選択フィールドへ連携する場合は、データベース側のデータが「{"code": "kintoneのログインID"}」(例 {"code": "test"})という形になっている必要があります。
20.[ジョブを追加]をクリックします。
21.画面右上の[実行]をクリックします。
1回目のUpsert
22.実行時までにデータベースに登録されていた全てのデータが、kintoneアプリに新規追加(Insert)されます。
kintoneアプリに新規追加済のデータについてデータベース側で変更がかかった場合
23.データベース側の既存データが更新された後に[実行]をクリックしますと、kintoneアプリ側のデータも更新(Update)されます。
2回目以降のUpsert
24.データベース側に更新された既存データと新規追加されたデータとが混在する状態で[実行]をクリックしますと、kintoneアプリ側では新規追加(Insert)とデータも更新(Update)の両方が実施されます。
さいごに
ちなみに、kintone側に連携済のデータが基幹システム側で削除された場合、kintone側からも削除できるのか?というと残念ながら実施いただけません。
この削除同期にご興味がある方は、ぜひ下記の記事もチェックしてみてください!
(ご参考)「レコードが削除されたこと」を連携するには?|データ連携ツールだけではどうしようもない削除同期の話
kintoneと基幹システムを連携する方法は今回ご紹介しました方法以外にもございますので、「このシステムとは連携できる?」「このデータベースの場合は連携できる?」などございましたら、まずはお気軽にお問い合わせいただければうれしく思います。