kintoneの外部システム連携で検討すべきポイント
はじめに
kintoneと外部システムの連携には多くのニーズがあります。
一方で、外部システムの要件や仕様によって検討ポイントが変わるため、最適なデータ連携方法を選択することが難しいケースもあります。
本記事では、kintoneと外部システムを連携するメリットや、外部連携を検討する際のポイントを紹介します。
想定読者
- kintoneと外部システムの連携を提案する人
- kintoneと外部システムの連携を検討する人
外部システムとは
この記事で取り扱う外部システムとは、次のようなシステムを指しています。
- 自社専用に構築したスクラッチシステム
- 専門機能をもつパッケージシステム
上記のシステムは、以下のような特色が強い場合、お客様業務と密接に関係していることが多くあります。
- 業種特有/自社特有の複雑な処理ができる。
- 堅牢性や安定性が担保できる。
このようなシステムは改修難易度が高く、費用や時間も要する場合があります。
そのため、業務の軽微な変更に合わせて適宜システムを改修することが難しい場合もあります。
kintoneと外部システムを連携するメリット
kintoneは専門システムより柔軟に、自社でシステムを開発するより低コスト&スピーディーに業務システムを構築できるサービスです。
そのため、次のようにそれぞれの強みに応じて役割を分け、これらを連携するしくみを構築することで、ビジネスの成長や変化への対応が可能となります。
- 高度なノウハウや専門機能は外部システムで扱う。
- 改修の柔軟性やスピードを求める機能はkintoneで扱う。
kintoneと外部システムの連携で検討すべきポイント
コストと納期
連携するには、次のようなコストがかかります。
- 自社で開発する場合の作業コスト
- サイボウズパートナーや開発会社に構築依頼するコスト
- サイボウズパートナーや開発会社が提供している連携サービスの利用コスト
また、連携するデータの量や頻度など後述の観点で、コストと納期は大きく変わります。
kintoneの仕様
kintoneのデータ入出力は次の方法で実現できます。
- kintoneアプリ画面でのデータ操作(閲覧/追加/編集/削除/CSV取り込み/CSV書き出し/一括削除)
- kintone REST API でのデータ操作(取得/追加/編集/削除)
kintoneアプリ画面でのデータ操作はブラウザーが必要になるため、手動やRPAを利用する方法があります。
kintone REST APIでのデータ操作は連携製品を購入して利用する方法や連携プログラムを開発する方法があります。
kintoneの性能
kintoneの制限値により、性能への影響を考慮しないと適切な連携ができない可能性もあります。
詳細は記事後半の「
連携処理の頻度とデータ量
」で説明します。
外部システムの仕様と性能
kintoneに仕様と性能の検討ポイントがあるよう、外部システムにも仕様と性能の検討ポイントが必ずあります。
- データ入出力の方法
- データ量やアクセス頻度によるパフォーマンスへの影響
- 自動化の対応可能範囲と実現手段
- 外部システムの機能観点での制約
について検討が必要となります。
特に専門性の高い機能では、機能の観点での制約に気を付ける必要があるため、kintoneだけでなく外部システムの仕様と性能も確認してください。
連携処理を実行するしくみ
kintoneには連携処理を定期的に実行する機能はありません。そのため、実行するしくみが必要です。
- RPAやAPI実行機能をもつ外部サービスの利用
- RPAやAPI実行機能をもつプログラムをスクラッチで開発
といった対応が必要です。
また、しくみを実行する環境が必要なケースもあります。
- 実装するしくみと環境がセットとなったクラウドサービスを利用する。
- 実装する環境を用意する(例:クラウドベースのサーバーを用意する、オンプレミスサーバーを利用する)
などの選択肢が考えられます。
kintone(cybozu.com)はインターネット経由で利用可能なサービスなので、kintone(cybozu.com)と外部サービスをつなぐネットワーク構成についても検討が必要です。
kintoneのセキュリティ制限については、
アクセス制限に関するセキュリティの概要
をご参考ください。
連携処理のタイミング
リアルタイムとスケジュールの2つあります。
リアルタイムは利用者の操作をきっかけに連携処理を実行します。
たとえばkintoneのレコード保存時に外部システムへデータを送信します。
スケジュールは決められた日時に連携処理を実行します。
たとえば毎日0時0分に外部システムのマスターデータをkintoneのアプリへ反映します。
連携処理の頻度とデータ量
連携処理する頻度の高い場合や、大量データを連携する場合は性能の考慮が必要です。
連携処理のタイミングがリアルタイムで高頻度の場合は、スケジュールに変更できないか検討してください。
連携データ量が多い場合は差分処理などの方法を検討してください。
詳細はこちらの記事を確認してください。
連携処理の向き
処理を開始する起点とデータの流れを考慮して検討してください。
たとえばkintoneのデータを外部システムに登録する場合は次の2つの選択肢があります。
- kintoneから外部システムにデータを登録する。
- 外部システムがkintoneのデータを取得し、取り込む。
双方向で連携する場合はデータの整合性を考慮する必要があります。
補足:双方向連携時のデータ整合性への考慮
同じ情報をAシステム/Bシステムどちらからも更新される設計としていた場合、連携頻度やタイミングによって、一時的に同期のとれていない(不整合)状態となる可能性があります。
システム連携の要望では、下記を求められるケースが多くあります。
- リアルタイム実行
- 高頻度での連携
- 双方向の連携
これらすべてを実現するには、kintone /外部システム/構築運用スキルがすべて高いレベルでそろう必要もあり、難易度の高いプロジェクトとなることが一般的です。
現状の運用状況を把握/理解し、最低限必要な条件で連携をスタートし、連携頻度や向きを見直すという進め方を推奨します。
エラー発生時の対処方法
別々のシステムを別々の環境で運用する形式上、さまざまな要因から連携エラーが発生する可能性が高いです。
そのため、連携システムの設計の段階で、次のような事項の検討が必要です。
- エラー発生に気付く方法
- エラー発生時の代替運用方法
- エラー発生時のデータ復旧方法
kintoneでのエラー発生に気付く手段は次のとおりです。
- kintone REST APIのレスポンス
- cybozu.comの監査ログ
なお、監査ログはAPIを使って取得できないため、ブラウザー操作/管理者宛通知メールで確認してください。
エラーへの即時対応が必要な場合、次のようなしくみの検討が必要です。
- kintone REST APIのエラーレスポンスを保存するしくみ
- エラーレスポンスの保存をトリガとし、管理者に通知を送るしくみ
日次業務の根幹を担うシステムと連携している場合、システムエラーの発生が業務に多大な悪影響を与える可能性が高いため、十分ご注意ください。
おわりに
本記事では外部システムとkintoneの連携について紹介しました。
kintoneと外部システムを連携するメリットは大きいですが、パフォーマンスやセキュリティなどへの十分な考慮/検討が必要です。
いきなり大規模/高難度な連携をせず、スモールスタートで構築していくことをおすすめします。
また、本来kintoneや外部システムへの連携はそれぞれの仕様にのっとったコーティング作業が必要ですが、ETLツールを利用することで、連携処理をノーコード/ローコードでの設定で構築できます。
詳細はリンク先の各社紹介記事にございますので、ぜひ確認してください。
データ連携(EAI)
このTipsは、2023年1月版kintoneで動作を確認しています。