kintone(キントーン)と外部データベースの連携

こんにちは。kintone(キントーン)導入支援のギャンです。
今回は「kintone(キントーン)と外部データベースの連携」ということで、kintone(キントーン)と外部データベースの連携についてまとめてみました。

外部データベースを連携したい

サイボウズの2023年12月の発表によると、kintoneの契約ユーザー企業数は、3万2800社となり、1か月50社から60社のペースで増えているそうです。東証プライム企業においても3社に1社が導入し、その汎用性の高さから幅広い業種で活用され、導入担当者の93%が非IT部門と継続して現場での支持を得られているとのことです。このようにkintone を活用する幅が広がるほど、外部のシステムやデータベースと連携させたいシーンも増えています。

外部データソースを直接扱えない

kintoneは誰でも簡単に業務アプリを作ることができますので、kintoneをフロントエンドとして利用し、データは外部のデータベースをリアルタイムで活用できればすごく便利だと思いますが、それは難しいと言わざる得ません。それは、kintone では(ACCESSのリンクテーブルやSalesforce の外部オブジェクト機能のように)kintone 以外の外部データソース(SQL Server など)に保存されているデータを直接扱うことが出来ないからです。

外部データベースを連携するには

kintoneが外部データソースを直接扱えないとすれば、連携するにはどうすればいいのでしょうか?

JavaScriptカスタマイズで連携できる?

まず思いつく方法として、kintone のJavaScript カスタマイズ等を利用すれば(JavaScript から外部データソースのAPI をコールしてデータを取得するなどすれば)外部データソースのデータを取得してkintone 上で表示することは可能です。またレコードの保存の際に外部データソースへも同じデータを保存することもできます。ただしそのためには外部データベースがAPIを利用できることが必要ですので、外部データベースがオンプレミスである場合には実現できません。

CSVで連携する

kintone(キントーン)のシステム連携」に書きましたが、kintoneにおいてシステム連携を行う方法は大きく2つあります。一つはCSVファイルを介してシステム連携する方法で、もう一つはkintone REST APIを利用してシステム連携する方法になります。CSVを利用する場合は、当然ですが、リアルタイムには連携できません。現実的に考えると、1日1回程度、同期を取るといった運用になるかと思います。あとはRPAを活用し自動で実施するか、手動で行うかといったところだと思います。

kintone REST APIで連携する

CSVでの連携よりも連携する頻度を上げたい場合は、kintone REST APIを活用した連携プログラムを作成することで対応します。なお、連携処理の頻度を上げる場合、1 日に実行できる API リクエスト数:1 つのアプリにつき 10,000 リクエストという制限に注意が必要です。kintoneと外部データベースのレコードの同期を取る際に、差分のみを更新するような処理が必要になります。また、この連携プログラムは、kintoneと外部データベースの両方にアクセスする必要がありますので、外部データベースがオンプレミスに存在する場合は、クラウドとオンプレミスの両方にアクセスできる環境上で動かす必要があります。ということは、インターネット環境とオンプレミス環境の両方に接続できるということですので、連携プログラムの動作環境が、セキュリティホールにならないようする必要がありますので、安全なネットワークの設計が必要です。

kintoneと外部データベースの連携のまとめ

今回、「kintoneと外部データベースの連携」についてまとめてみましたが、連携が必要な頻度及び自動化するのか、手動で行うのかによって、CSVで連携するか、kintone REST APIを活用した連携プログラムで連携するかを判断することになります。kintoneと外部データベースを連携することでkintoneを外部システムのフロントエンドとして利用することも可能になり大変便利になりますが、APIリクエストの制限や、セキュリティまで考えて、連携すべきかどうかを慎重に考えていただければと思います。なお、弊社ではOracle、SQL Server、PostgreSQL、MySQLなどのDBMSと連携した経験がありますので、必要であればご相談いただければと思います。