連携パターン別kintoneと外部システムの連携方法と選び方のポイント
はじめに
kintoneと外部システムの連携には多くのニーズがある一方で、検討すべき事項がいくつかあります。
kintoneを外部連携する際の検討ポイントは、次の記事で紹介しています。
kintoneと外部システムを連携する際に検討すべきポイント
本記事では、kintoneと外部システムとのデータ連携に対する具体的な方法を4つのパターンに分類し、それぞれのパターンでの検討事項やマッチするケースについて紹介します。
想定読者
- kintoneと外部システムの連携を提案する人
- kintoneと外部システムの連携を検討する人
kintoneと外部システムの連携パターンについて
kintoneと外部システムの連携方法は、基本的に次の4つのパターンに分類されます。
連携パターン | 利用するkintoneの機能 |
---|---|
A. 転記パターン | ブラウザー画面における入出力 |
B. CSVパターン | CSVの読み込み・書き出し |
C. 連携製品パターン | kintone REST API, Webhook機能, JavaScriptによるカスタマイズ |
D. 個別開発パターン | kintone REST API, Webhook機能, JavaScriptによるカスタマイズ |
kintoneの機能ごとに分類すると上記表のようになりますが、実際には、各機能を複合的に組み合わせた応用パターンも考えられます。
この記事では、基本の4つのパターンについて、検討すべきポイントを紹介します。
A. 転記パターン
ブラウザー画面において、手作業にて転記するパターンです。
連携するデータが少量の場合は、まずはこのパターンを検討します。
連携の自動化にかかるコストと、転記作業の日々の煩わしさや手作業により発生しうる転記ミスの影響を比較し判断します。
転記データが多量な場合、もしくは複雑な作業を必要とする場合は、メンテナンスが煩雑となり得るため、他の連携パターンを検討をしてください。
転記作業を楽にするテクニック
転記作業による煩わしさについては、kintoneの基本機能やRPA製品を活用することにより軽減可能です。
自動計算機能を利用してフィールドの値をまとめる
たとえば、レコード詳細画面から複数のフィールドを転記する必要がある場合、「文字列(1行)」フィールドの自動計算機能を利用し、対象のフィールドの値をまとめることで手数を減らすことが可能です。
まとめたいフィールドのフィールドタイプによっては、「文字列(1行)」の自動計算機能だけでは実現できない場合もあります。
この場合、JavaScriptカスタマイズや、パートナー提供のプラグインを使ったフィールド結合を検討してください。
スレッドにアプリを貼り付けて転記内容をまとめて表示する
kintoneの「アプリ貼り付け」機能を利用することで、「お知らせ」に情報を一元化し、転記しやすい環境の用意が可能です。
RPA製品を利用する
データが少量で、かつ常に同じ箇所に転記する場合は、RPA製品の利用も選択肢となります。
B. CSVパターン
連携先の外部システムにCSVの読み込み/書き出し機能が備わっている場合に、本パターンを検討可能です。
CSVで連携する際に確認するポイント
CSVでの連携を検討する場合には、外部システムのCSV機能について、次のような項目を必ず確認してください。
確認項目 | 説明 |
---|---|
操作方法 | ブラウザーや専用クライアントからの操作、コマンドラインなど |
フォーマット | 値の位置や順番が固定か否か、カラム名の仕様、マッピング対応可否など |
実行タイミング | スケジュール実行、トリガ実行など |
ファイル入出力場所 | PCなどのローカルディスク、クラウドストレージなど |
文字コード | Shift-JIS、UTF-8など |
その他の仕様・制限事項 | 改行コード、ファイルサイズ上限、最大行、最大カラムなど |
CSVフォーマット
連携する情報の連携先が期待するフォーマットかどうかを確認します。
kintoneおよび外部システムの機能によっては、CSVの変換処理を必要とする場合があります。
テキストデータの変換処理となるため、運用担当者が継続的にメンテナンス可能なスクリプト系言語を利用して対応することを検討してください。
kintoneからのCSV書き出しと読み出し
kintoneには、ブラウザーから実行する「ファイルに書き出す」「ファイルから読み込む」に加え、コマンドラインツール(cli-kintone)によるCSV入出力が可能です。スケジュール実行などの場合は、利用を検討してください。
kintoneにおけるCSVファイルの制限は次のページを参照してください。
CSV連携の例
参考までに、CSVを使った連携の一例を紹介します。
以下の例は、外部システムに、CSV出力コマンドが備わっており、ジョブ実行可能なサーバーがある前提としています。
C. 連携製品パターン(プラグイン、ETL / EAI、iPaaS等)
kintoneの連携製品は多数あります。要件に応じた製品を利用してください。
プラグインによる連携
本記事において「プラグイン」は、kintoneアプリに設定するプラグインだけでなく、連携サービスを含みます。
プラグインについては、外部システムとkintoneの専用連携製品がないかを確認します。
連携製品が存在する場合は、提供元の制限事項を事前確認し、要件にマッチするかを判断します。
(例)特定の会計クラウドサービスとの専用連携プラグインなど。
「B. CSVパターン」の派生となりますが、CSV連携を簡単に行うためのプラグインもあります。組み合わせて利用することも検討してください。
(例)データ入力としてCSVをサポートしているプラグインなど。
ETL/EAIによる連携
ETL / EAIは比較的高コストとなりますが、多量のデータの連携やさまざまな変換への対応、実行中のエラー対応など、運用において必要な点を考慮している場合が多くあります。
外部システムとkintoneの両方に対応するETL / EAI製品がないかを確認します。
連携製品が存在する場合は、提供元の制限事項を事前確認し、要件にマッチするかを判断します。
iPaaSによる連携
iPaaSは、複数の外部システムでデータ連携させたい場合に利用すると、効果が高くなります。
多量や複雑なデータ連携というよりも、順序に従いデータを複数クラウドに受け渡し、処理を進めるというフロー制御に注目するのがよいと考えます。
外部システムとkintoneの両方に対応するiPaaS製品がないかを確認します。
連携製品が存在する場合は、提供元の制限事項を事前確認し、要件にマッチするかを判断します。
iPaaSによる連携イメージ
kintoneのデータを他システムに渡し、かつ、そのデータをファイルとしてクラウドストレージに保管、その後、SNSで通知するといった内容になっています。
iPaaSの役割は、各クラウドとの接続とデータ連携、並びに、それぞれの処理のフロー制御となります。
D. 個別開発パターン
これまでのパターンでは解決できない要件の場合、個別開発での実現検討を行います。
kintoneは、アプリに対して、JavaScriptによるカスタマイズの実施や、kintone REST APIを使ったプログラムによる外部からのデータ操作が可能となっています。
個別開発を検討する際は、外部システムについて、以下の項目を確認してください。
確認項目 | 説明 |
---|---|
外部システムの種類 | クラウドサービス、パッケージ利用し構築したオンプレミス システム、スクラッチ開発したシステムなど |
外部向けAPI | 外部システムのデータにアクセスするためのプログラム開発手段の有無確認( APIやSDKなど) |
提供元によるカスタマイズ対応 | 外部向けAPIがない場合に、提供元による機能追加を依頼可能か、また、可能な場合のコストの確認 |
データベースへの直接アクセス | パッケージやスクラッチ開発の場合、データベースへの直接アクセスが可能かの確認 |
次に、連携の実現方法を検討します。 外部システムに外部向けのAPIが存在するかどうかによって、実現方法が異なります。
外部システムに外部向けAPIがある場合
kintone REST APIおよび外部システムAPIを使ったプログラム開発を行うことで、連携可能となる可能性があります。
実現可能性について事前検証をした後、実装を開始してください。
なお、プログラムの実行環境については、いくつか選択肢が考えられます。
性能をはじめ、セキュリティや保守面を考慮して実行環境を選択してください。
(オンプレミス サーバーや、クラウドの仮想サーバー、クラウドのサーバーレス実行環境など)
外部システムに外部向けAPIがない場合
提供元によるカスタマイズ対応が可能ならば、提供元にkintone REST APIの情報を提示し、要件に合わせて開発依頼を検討してください。
おわりに
kintoneと外部システムの連携には、大きく4つのパターンがあることを説明しました。
kintoneの誰でも簡単にアプリが作れる長所を活かして、工夫を凝らすことで、必ずしもプログラム開発が必要とは限らないことを知っていただけるとうれしく思います。
また、kintoneを取り巻くパートナーの皆様のご協力で、連携できる対象が、今後も増えていくことが容易に予想されます。
これらを活用しながら、これからもkintoneを最大限使っていただけると幸いです。