2016年1月30日土曜日

Google Apps scriptを使った勤怠管理

社内SEとしては必要なシステムをどうやったらコストを抑えて用意出来るかを常日頃考えております。

今回は簡単な勤怠管理システムをお金を掛けずにどうやったら出来るか考えた結果、
Googleさんのシステムを組み合わせて作ってみました。


社内ではGoogle for Workを使っております。
年払いでコストは一人500/月になります。


普通の会社だったら、加えて勤怠管理システムを契約されるのではないでしょうか?
サイボウズとかJOBCANとか色々出てますからね。
とは言え1ユーザ辺り数百円とか10ユーザ毎幾らとコストは掛かって来てしまいます。。。



ではGoogle for workで勤怠管理の方法を説明いたします。


  1. 勤怠フォームを用意!

    何はともあれ、社員の出勤・退勤のデータを集める所を用意します。

    利用するのはGoogleドライブのGoogleフォーム!

    ドライブを開いて新規からGoogleフォームを開きます。

    タイトルを”勤怠管理”とかに設定

    質問のタイトルを”出退勤”

    質問形式はラジオボタンでOK

    1つ目に出勤、2つ目に退勤と記載して完了。

    フォーム設定の”このフォームを表示する際に○○へのログインを求める”と”自動的に回答者のユーザ名を取得する”にチェックしましょう。

    前者は外部の方が利用出来ないように制限でき、後者は誰がフォームを送信したかが分かるようにできます。

  2. データ確認

    フォームを作ると自動的に回答を記録しているスプレッドシート(googleのExcel)が出来ます。


    先ほどのフォーム作成画面から”回答を表示”から開けます。もしくはドライブで勤怠で検索すれば出てくると思います。


    以下項目が表示されているかと思います。

    タイムスタンプ:yyyy/MM/dd hh:mm:ss形式でフォームが送信された時間
    ユーザ名:ユーザのメアド
    出退勤:ラジオボタンを選んだ方

  3. データ集計

    さてデータの収集が出来る状態ですのであとはデータを加工ですね。

    やろうとしている事は日次バッチで集計されたデータを計算いたします。


    回答スプレッドシートに新しくシートを追加しておきましょう。
    追加方法は左した+マークからシート追加になります。
    名前は適当に”集計”等にしておきます。

    次にスプレッドシートのツール > スクリプトエディタを開きましょう。

    コード.gs的なファイルが開くかと思います。
    これがGoogle Apps scriptになります。
    略称GASなので「GAS  セル 編集」等で検索すると色々な記事が出てきます。


    ここに色々とコードを書くんですが、今回はちょっと省略いたします。。。
    集計結果をどう表示させるとか色々コードは変わってくるかと思います。
    基本は出勤と退勤の差分時間を計算して表にしていけばOKではないでしょうか?
    ※改めて別記事で追加しようと思います。


    コードが出来たらリソースの現在のプロジェクトのトリガーで、新しくトリガーを追加しましょう。
    作成したfunctionを選択して、時間主導型、日タイマー、好きな時間を選択すると、日次でfunctionが実行されます。
    通知で自分のメアドに失敗メールくるように設定するのも忘れずに。

以上、こんな感じで勤怠管理をしてたりします。