【#kintone100日チャレンジ】Day 17: 出退勤管理の深淵に挑む。kintone出退勤打刻・タイムカードプラグインを作ってみた。
面倒解決エンジニアの森田ユウゴです。
台湾からお届けする「#kintone100日チャレンジ」の 17日目。
Claude Opus 4.7が突如現れましたね!
100日チャレンジレベルでは、Opus 4.7どころか、Sonnetでも十分動く仕組みは作れます。
もし、カスタマイズ入門者がご覧になる場合「最新AIじゃないとダメだ!」なんて思わずに、試してみてください。(どちらかというとルール付けが大事です)
本日は、kintoneで実現する「勤怠タイムカード(出退勤管理)プラグイン」を公開します。
正直に告白すると、エンジニアとしてこのテーマに取り組むのは少し勇気が必要でした。会社員時代に出退勤管理の仕組みに携わっていたからこそ、この領域がどれほど複雑で、一筋縄ではいかないかを知っていたからです。
今回は「100日チャレンジ」という枠組みの中で、実用性を担保しつつ、どこまでを「コア機能」として切り出すか。その葛藤の末に厳選したハックをお届けします。
kintone「勤怠タイムカード(出退勤管理)プラグイン」について
🎯 なぜ開発したか?(現場の課題とベネフィット)
現場の「不」: 多くの企業が抱える「打刻と管理の分断」。kintoneの標準機能だけで運用しようとすると、毎月1レコードでテーブルでしょうか。しかしkintoneの他のアプリと簡単に繋げるという点で、テーブルは扱いづらいです。他にも複雑な計算式や、計算用の計算フィールドを駆使する必要があり、長期に使うには手間が多いです。
導入後の世界(ベネフィット): 1日1レコードというシンプルなデータ構造を採用。打刻・休憩・勤務時間の自動計算までを一つの画面で完結させることで、利用者には直感的な操作を、管理者には集計しやすいクリーンなデータを提供します。
✨ これで出来ること(機能概要)
「本当に必要な機能は何か」を突き詰め、以下の機能を実装しました。
1日1レコード集約型の打刻パネル: 出勤・退勤だけでなく、現場で必須となる「複数回の休憩」の打刻に対応しました。その日の状況を一つのパネルで俯瞰できます。
実用的な勤務時間の自動計算: 退勤打刻時、出勤時刻と退勤時刻、そして休憩時間を差し引いた「正味の勤務時間」を自動で算出し、フィールドへ書き込みます。集計に便利です。
予実管理を支える月次カレンダー表示: 専用のカスタムビューで、1ヶ月の出退勤状況を一覧表示します。打刻漏れがある平日はハイライト表示されるため、修正すべき箇所が一目で分かります。
「sessionStorage」による高速な表示切り替え: APIの上限や表示速度を考慮し、一度取得した月次データはキャッシュを利用して表示する、インフラSE出身らしい「泥臭い」工夫も施しています。
課題
このプラグインが「完璧な勤怠管理システム」ではないことも明記しておきます。
「バイブコーディング」で突きつけられる現実
AIとの対話で骨格を作るのは一瞬ですが、必要となるべき機能はたくさんあります。「祝日の判定はどうする?」「法定休日と所定休日の区別は?」「36協定に基づく残業アラートは?」などなど…。今回は100日チャレンジという短時間勝負なので「コアな打刻体験」に特化させましたが、実運用には各社の就業規則に合わせたカスタマイズが不可欠です。
権限設計 / 運用設計の重要性
今回は超簡単な実装のため不正勤怠管理がし放題です。他にもkintoneのアクセス権限設定や、月次確定のフローといった「運用設計」とセットで初めて機能するので本導入は簡単ではありません。
他にも思いつく限り打刻をベースに、有給管理や給与管理、工数管理などなど…。kintoneだけであらゆる仕組みに繋げられます。改めてkintoneは幅広い業種・業務に対応するのだと実感。使われ続ける理由が分かります。
さいごに
「AIで簡単に作れる」からこそ、考慮していくと沼で終わらないテーマでした。今回のメインはカスタムビューの打刻機能かな?
明日もお楽しみに!
下記のブログもご覧ください!
👉 【#kintone100日連続チャレンジ】AIにkintoneカスタマイズを100%任せたらどこまでいけるか?現役フリーランスの「100 Days of kintone Hacks」始動!
👉 ココナラで「kintone有資格者が導入や運用の相談にのります」サービスを開始します!
