経過年数をkintoneで取り扱う方法(勤続年数や年齢の自動更新)

目次

はじめに

kintoneは「ノーコードで・すばやく」業務システムを構築できますが、データを自動で更新するしくみはありません。

よくあるケースとして、レコードで勤続期間や年齢などを管理する場合があります。
標準機能で計算するしくみはありますが、登録時点のデータが保持され、時間経過しても自動では更新されません。

自動で更新するにはJavaScriptカスタマイズが必要になります。
JavaScriptカスタマイズは2つの方法があり、データの利用用途や費用を考慮して選択する必要があります。

本記事では標準機能でできることと、2つのカスタマイズ方法を紹介します。

標準機能

まずは標準機能でできることを紹介します。

計算フィールドの使用

たとえば、勤続期間のような時間経過を伴うデータを算出したい場合は計算フィールドを使用します。

計算式の例
すでに退職した人の勤務継続年数を算出する場合

(退社日 - 入社日) / (60 * 60 * 24 * 365)

勤続中の人の勤務継続年数を算出する場合

(本日 - 入社日) / (60 * 60 * 24 * 365)

計算式の説明は、 日付・時間の計算 (External link) を参照してください。
なお、この計算式の例では、うるう年(366日)に対応した計算はできません。

問題点

「勤続中の人の勤務継続年数を算出する場合」において、「本日」の値は日々変化する必要があります。
そのため、「本日」の日付フィールドの値を毎日手動で更新しなければいけないといった問題が発生します。
この問題に対応するには、kintone JavaScriptカスタマイズを利用する必要があります。

kintone JavaScript カスタマイズでできること

自動更新した値を表示するだけの場合と、データを保持する場合の2つのカスタマイズを紹介します。

表示のみの場合

自動更新されたデータを表示するだけの場合のカスタマイズを紹介します。

絞り込みや集計での利用、CSV出力などはできませんが、データを表示するだけのため、kintone JavaScript APIの利用のみで実装可能です。
そのため、カスタマイズ費用や運用コストは比較的低くなります。

カスタマイズの方法については、詳細画面と一覧画面で異なるため、それぞれ紹介します。

詳細画面の場合

kintoneアプリのフォームにスペースフィールドを設置し、そのスペース内にデータを表示します。

関連Tips:経過年数を表示する

一覧画面の場合

一覧画面に列を追加して表示する方法はありません。
そのようなAPIがないためですが、APIを利用せずに実装すると、kintoneのバージョンアップで動作しなくなる可能性があるため、推奨しません。

詳細は、 そのカスタマイズ大丈夫? アップデートの影響を受けにくいカスタマイズ Tipsで説明しています。

どうしても一覧画面に表示したい場合はカスタマイズビューを利用します。

絞り込みやページ送りなどの一覧画面の機能を用意する場合は、追加で開発する必要があります。

関連Tips:第7回 カスタマイズビューを利用してみよう

データを保持する場合

自動更新されたデータを絞り込み条件や外部システムなどで利用する場合は、データを保持する必要があります。
この場合、kintone REST APIを利用してレコードを定期的に更新します。
自動更新する場合と手動更新する場合で実現方法や費用感が異なるため、それぞれ紹介します。

自動更新する場合

kintoneにはプログラムを定期実行する手段がありません。
そのためkintone REST APIを介してデータを更新するには、プログラムを定期実行できる環境(サーバーやサーバーレスサービスなど)を用意する必要があります。

また、環境構築だけでなく、エラーチェックのしくみなどの運用も必要になるため、カスタマイズの費用が高くなります。

手動更新する場合

一覧画面にボタンを表示し、クリックでデータを一括更新します。
外部システムは不要ですが、定期更新の運用が発生します。

具体的な設定方法は、以下の記事を参考にしてください。
第2回 レコード一覧画面にボタンを置いてみよう!
定期実行でデータの同期を実現するスマートな方法 その1〜cli-kintone編〜
定期実行でデータの同期を実現するスマートな方法 その2〜AWS Lambda編〜

注意点

自動更新、手動更新ともに更新が必要なデータのみを更新してください。
全件更新してしまうとプログラムの実行時間が長くなるだけでなく、kintoneの性能への影響が大きくなります。

詳細は次の記事で kintone の性能 Vol.1 - リクエストの処理時間で説明しています。

おわりに

ここでは動的に変化させたいデータをkintoneで取り扱う方法を紹介しました。
kintoneのカスタマイズにはさまざまな方法があります。要件や費用に応じて適切な方法を選択することが大切です。

また、kintone連携サービスの中には手動や自動でデータを一括更新できるものもあります。
連携サービスについてはkintone製品サイトの 拡張機能ページ (External link) を確認してください。

information

このTipsは、2023年5月版kintoneで動作を確認しています。