
現在、弊社では「出退勤打刻の漏れ」が問題となっている。
弊社の打刻方法は、各社員に配布されたICカードを専用端末に読み込ませることで行う方式である。打刻が完了すると、専用の勤怠管理サイト上で出退勤時刻を確認できるようになる。
しかし、打刻を忘れた場合は、後でPCの起動ログなどを証跡として提出し、勤怠時間の修正依頼を行わなければならない。依頼を受けた人事部は、その証跡を目視で確認し、必要な修正を手動で許可する。件数が少なければ大した手間ではないが、毎日十数件に及ぶと負荷が非常に大きくなる。
このような背景から、「出退勤打刻の漏れを防ぐ」ための仕組みを考案した。
筆者はそこら辺にいる一般社員であり、以下のような制約が存在する。
- 有料ツールは導入不可
- 管理者権限を必要とするPC設定の変更は不可
- 勤怠管理サイトのAPIは使用不可
- 実装に割ける時間は数時間程度
このような制約下でも、以下のようなシンプルな仕組みであれば実現可能と判断した。
- PCの起動・シャットダウン時に何らかの通知を発行する。
- 通知を私用のスマートフォンで受信する。
- 通知経由で勤怠管理サイトをすぐに開けるようにする。
専用のスマホアプリを自作し、リッチなUIで実装することも検討したが、時間的な制約から断念した。代替案として、Pushbulletという外部サービスを利用し、通知機能を簡単に実現することにした。
Pushbulletとは?
PC・スマートフォン間で手軽に通知やファイルを送信できるサービスである。
気になる方は公式ホームページへ→ https://www.pushbullet.com/
まずは退勤打刻の漏れを防ぐことを目指し、以下の手順で仕組みを構築した。
やったこと
- Pushbulletのアカウントを作成し、アクセストークンを生成
- Pushbulletのスマホアプリを私用のスマホにインストール
- PushbulletのAPIを叩くだけの
.bat
ファイルを作成 - タスクスケジューラで新しいタスクを作成
トリガー:ユーザーセッションからの切断時
操作:上記.bat
ファイルを実行
.bat
ファイルの中身
@echo off
curl -X POST "https://api.pushbullet.com/v2/pushes" ^
-H "access-token: Pushbullet上で生成したアクセストークン" ^
-H "content-type: application/json" ^
--data-raw "{\"type\":\"link\",\"title\":\"おつかれさん\",\"body\":\"勤怠打刻を確認してね\",\"url\":\"勤怠管理サイトのURL\"}"
初期実装後、PCをシャットダウンして動作確認を行ったが、プッシュ通知は届かなかった。調査の結果、タスクスケジューラの「ユーザーがログオンしているときのみ実行する」という設定が原因であることが判明した。
「ユーザーがログオンしているかに関係なく実行する」という設定への変更を試みたが、一般ユーザーの権限では変更できなかった。
意地でも自分の権限で出来る範囲で納めたかったので、再度方針を見直し、手動操作を前提とした構成に変更した。
やったこと(修正版)
- Pushbulletのアカウントを作成し、アクセストークンを生成(変更なし)
- Pushbulletのスマホアプリを私用のスマホにインストール(変更なし)
- プッシュ通知送信とPCシャットダウンを同時に実行する
.bat
ファイルを作成 - 作成した
.bat
ファイルをデスクトップ等に配置してすぐ実行できるようにした
修正版.bat
ファイル
@echo off
curl -X POST "https://api.pushbullet.com/v2/pushes" ^
-H "access-token: Pushbullet上で生成したアクセストークン" ^
-H "content-type: application/json" ^
--data-raw "{\"type\":\"link\",\"title\":\"おつかれさん\",\"body\":\"勤怠打刻を確認してね\",\"url\":\"勤怠管理サイトのURL\"}"
shutdown /s /f /t 5
退勤時にこのファイルを実行すれば、通知の送信とPCのシャットダウンを一括で行える。ログオフ前に通知が発行されるため、権限不足による実行失敗の心配もない。
今回作成したシステムには明確な問題が存在する。
それは、「.bat
ファイルの実行を忘れず行えるなら、そもそも打刻を忘れることがない」ということである。
とはいえ、何も対策しないよりは遥かにマシでなので、今後もしより良い仕組みを思いついたら改善したい。
ちなみに、出勤打刻の漏れについては「ロック画面の画像を変更する」という力技である程度防止できることが判明したので、実装する気が起きなかった。
Views: 2