ジョブカンの工数入力を自動で行うスクリプト

会社員たるもの何人たりとも勤怠管理から逃れることができません.. 私が所属している会社では勤怠管理システムとしてジョブカンというものを利用していますが

毎日の工数入力がめんどくさい、苦痛

それ以外の何物でもありません。

f:id:sanshonoki:20210304220703p:plain (ジョブカンのホームページをキャプチャ。CMを見たことがある人も多いのでは?)

そこで、その苦痛を少しでも軽減するための入力サポートツールを作りました。 久しぶりに作りたいと思って作ったソフトウェアです。

github.com

仕組み

やっていることは 工数CSVファイルから読み出し、Selenium を使ってブラウザを操作して自動登録する というだけです。

ただ、これを実際に使ってみると非常にストレスが減り、また工数入力が自動で行われるのを見る様は楽しくさえもあります。(ちょっと言い過ぎかもしれないけど。。ただ、第三者に入力してもらっている感が心地良い。)

使い方

githubのReadmeに書いてますが ChromeDriver をダウンロードして、ジョブカンのログインに必要な情報を環境変数にセットして 工数CSVファイルに記入してスクリプトを走らせるだけです。

# Example (2021_03.csv)
date,プロジェクト1_タスクA,プロジェクト2_タスクB,プロジェクト2_タスクC
2021/03/01,1:00,6:00,1:00
2021/03/02,1:00,,7:00
2021/03/03,-1,1:00,1:00

のようなCSVファイルを用意し、

$ ./jobcan_auto_input.sh 2021_03.csv

だけ

工夫した点

いくつか工夫した点があってそれは以下になります。

  1. プロジェクトとプロジェクトに紐づくタスクは自動で取得してCSVの雛形を作ってくれる

      $ python generate_projects_and_tasks.py
    

    とすると、 f:id:sanshonoki:20210305224430p:plain
    この画面に自動遷移し、ドロップダウンリストの内容をチェックしてプロジェクトとタスクの一覧を取得します

  2. 毎月の工数入力を記録しておくCSVファイルは年と月を入力すると自動的に作成する

      $ python generate_monthly_csv.py 2021 3
    

    とすると、2021_03.csv を作成します

  3. 端数時間を自動的に計算して予め割り当てたタスクに割り振ってくれる

     2021/03/03,-1,1:00,1:00
    

    このように工数 -1 としておくと、例えば総労働時間が8:00の場合、余りの6:00を-1に割り当てて自動登録します

  4. 前月の入力をしたあとでも毎回、自動で前の月に戻ってくれる

4番目に関しては現状のジョブカンのシステム挙動では過去の月の入力を行うと毎回、最新の月に戻ってしまう謎仕様であり、その苦痛たるや筆舌に尽くしがたくその仕様を阻止するためのChrome拡張(GitHub - mob-sakai/JobcanExtensionForChrome)も存在しているぐらいです。

全国6万社のジョブカンユーザー(注:ホームページにそう書いてある)の皆さんの苦痛を少しでも軽減できたらと思います。

(使用される場合は、自己責任でお使いください)