The平成な勤怠管理システムの勤務入力をPower Automateで自動化してみた

令和な現代でも、平成の世から脈々と続く勤怠管理システムがジャパニーズ企業ではびこっています。

リモートワークの普及したものの、在宅勤務の運用と従来の勤怠管理システムがマッチせず、むしろ手間が増えている会社も多いです。

ザ平成な勤怠管理システムへの勤務入力をPower Automateで自動化を試みた話を紹介します。

この投稿は、アドベントカレンダー「身の回りの困りごとを楽しく解決！ by Works Human Intelligence Advent Calendar 2022」の21日目の記事として投稿しています。

https://qiita.com/advent-calendar/2022/works-hi-1

# 平成から続く勤怠管理システム

私が勤める会社では、平成の初期に開発されその後も更新を繰り返しながら使用している勤怠管理システムがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365005/dbdc8200-2914-a854-f0ed-f7ed363ff979.png)
ブラウザ(推奨はEdge)で勤務日や休みの日(有休など)と勤務時間を入力し、毎月月初に前月の勤務実績を提出するシステムです。

前述した通り、平成の初期に開発されたシステムは、少しずつ時代に合わせる形でアップデートされつつも、その頃の勤怠管理の要件も残っています。

最近ではクラウド勤怠管理システムなども普及していますが、こうした昔からの勤怠管理システムを利用している会社も多いと思います。

# リモートワーク普及で在宅勤務が中心に

近年は新型コロナウイルスによる影響で日本全体でリモートワークが普及しました。

私の勤務先にもその流れは波及し、勤務形態は在宅勤務中心になりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365005/545056e6-3511-8e97-c866-73c890b95f5a.png)
緊急事態宣言時はその月の殆どを在宅勤務で仕事する形でした。

今は出社制限が緩和されて出社する日もありますが、在宅勤務が勤務の中心になっています。
# 在宅勤務の連絡運用と勤怠入力の2度手間に

しかし、在宅勤務といった勤務形態の変化に勤怠管理が追いつかず、負担が増えている面があります。

在宅勤務をする際には所属部門の上長への連絡が必要で、在宅勤務の連絡・管理は、エクセルを利用しています。

エクセルには1日ごとのシートが用意されており、在宅勤務を開始するタイミングで、名前と勤務開始時間、予定している業務内容を入力します。

それを上長が確認し、誰が在宅勤務を行っているか把握します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365005/130cf28c-4af4-cb41-a864-2046359bb73b.png)
その後、在宅勤務が終了したら、勤務終了時間と当日の業務内容を記入します。

以上の形で在宅勤務の運用を行っていますが、エクセルでやっているとの通り、勤怠管理システムとはまったく連携されていません。

前述した通り、月初になると勤怠管理システムで出社＋在宅勤務の実績を提出する必要があります。

システム的な連携ができていないため、日々在宅勤務の入力するのに加え、勤怠管理システムへの入力もしなければいけない二度手間が発生しています。

# レガシーな勤怠管理システムの面倒なポイント

勤務先の勤怠管理システムは更新はされているものの平成初期から稼働しているレガシーなシステムです。

それゆえに不便に感じるポイントも多いです(特に在宅勤務で)。

* 社内ネットワークのみアクセス可のため、在宅勤務ではVPN必須
* VPN接続した上で、二要素認証でアクセスが必要(1度入力すると24時間入力不要に)
* Chromeでうっかりアクセスすると表示が崩れる
* 勤務入力した日は各自チェックを入れ、保存しないと入力した勤務が保存されない

いずれも実行するのが大変というものではありません。

**しかし、こうした不便なポイントが重なると入力が面倒に感じます。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365005/45595830-2cba-58a5-e802-6250c0ac712b.png)
勤怠入力は毎月月初に必ず発生するのでなおさらです。

# Power Automate(クラウドフロー+PA4d)で在宅勤務の勤務入力自動化

**憂鬱な気持ちにならざるを得ない勤務提出がある月初を、健やかな気持ちで迎えられないか？**

そう考えて勤怠管理システムへの入力の自動化を検討してみました。

利用したのはマイクロソフトの自動化サービスであるPower Automate(クラウドフロー)と、Power Automate for Desktop(PA4d)です。
![ms-power-platform.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365005/b2793c16-473b-7971-a741-9d28b0c8f284.png)
在宅勤務の管理をエクセルで行っていて、シェアポイント上でエクセルを配置していることから、この組み合わせに至りました。

Power Automateで在宅勤務表のエクセルから自分の勤務だけを抽出してCSVファイルに出力し、自分のOneDriveに保存するフローを毎月1日の深夜に実行します。
![Snipaste_2022-12-21_08-29-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365005/09b659ac-b676-e8cc-a331-eee1523f6308.png)
OneDrive上のファイルはWindowsパソコンの同期機能を利用することで端末からアクセスできるようになり、PA4dでCSVファイルにアクセスが可能です。

CSVファイルには在宅勤務の稼働実績しかないため、出勤日の稼働実績も追記して勤務データの準備が完了です。

PA4dのデスクトップフローでは、Edgeブラウザを起動して勤怠管理システムにアクセスします。

ただ、勤怠管理システムには前述した **二要素認証** というRPA泣かせな壁があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365005/449f4e41-0a8d-e900-1ee3-2417df33c73e.png)
SMSやGoogle Authenticatorによる認証は、PA4dでは突破が困難です。

しかし、うちの勤怠管理システムの二要素認証には、**「一度認証すると24時間入力不要」**
という要件が設けられています。

そのため、事前に手動で二要素認証を実施しておけば、次は二要素認証なく、アクセス可能です。

**「事前に二要素認証を自分で行う」** という下処理をしておけば、PA4dで勤怠管理システムに入力が可能になります。

あとはCSVファイルの内容をひたすら1ヶ月分入力するループを繰り返し入力します。
![Snipaste_2022-12-21_08-24-17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365005/7720c9d8-9c83-f355-bb54-3d6b0b480ca7.png)
いちいち入力が面倒だったチェックボックスも、RPAであれば、キーボード操作を繰り返し実行してすべての日にチェックが可能です。

その結果、以下のような流れで勤怠管理システムの勤務入力の自動化を実現しました。

1. (Power Automate)在宅勤務管理エクセル表から自分の勤務データをCSV出力
1. (手動作業)勤務日のCSVファイルで出社日の稼働実績の入力
1. (手動作業)VPNで社内ネットワークに接続し、勤怠管理システムの二段階認証
1. (PA4d)OneDriveのCSVファイルを読み込み、在宅勤務の日と時間を取得
1. (PA4d)勤怠管理システムにブラウザでアクセスし、ログイン
1. (PA4d)CSVから取得した情報をもとに在宅勤務の勤務データを入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365005/52a62372-ecfb-fbe5-894d-1ebc6eba32d0.png)

**今回のRPAでは勤務実績の提出まではゴールにしていません。**

提出まで自動化すると、PA4dによる入力に誤りがあった場合にそのまま提出される恐れがあるからです。

自分の目で見れば、入力のズレにはすぐ気づけるので、入力内容をチェックして、手動で提出を行う形にしました。

# コーヒータイム中にRPAで勤務を自動入力

Power Automateを活用した勤務入力の自動化は、月初の朝に大きな変化をもたらしました。

勤務を開始したあと、CSVファイルに出勤データを追記し、勤怠管理システムに手動での二段階認証を行った後、PA4dのフローを実行します。

それからはコーヒーを入れながら、PA4dの実行が完了するのを待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365005/81beb826-58c5-3641-f67c-bbbd23d958c1.png)
1杯目のコーヒーの半分を味わったところぐらいで、フローが完了し、勤務入力が完了しています。

あとは、PA4dで自動入力した勤務データをチェックして提出すれば、前月の勤務実績の提出は完了です。

おかげで、勤務入力で仕事のモチベーションを削られずに、高いモチベーションで月初から仕事に取り組むことができるようになりました。

# 勤怠管理システム変更で自動化の戦いは続く

RPAで勤怠管理の自動化ができて心の安寧は得られたものの、平穏な日々は長くは続きませんでした・・・

なんと勤怠管理システムの入力項目が追加され、RPAプログラムが稼働しなくなりました。

さらに、エクセルによる在宅勤務の連絡・管理フローも見直され、チャットツールでの在宅勤務・出社を連絡する形に変更されました。

**これらの変更によって苦労して作ったRPAでの勤務入力フローは破綻してしまいました。** 

しかし、勤務入力の自動化の戦いはこれで終わりではありません。

むしろ在宅勤務と出社がチャットでの連絡になったことで、両方の勤務実績がチャットデータから得られるようになりました。

在宅勤務と出勤データのCSV出力＋勤怠管理システムの追加項目の入力対応で、より手数少ない勤務入力の自動化を目指したいと思います。

**俺たちの戦いはこれからだ!【完】
(ご愛読ありがとうございました。)**