Microsoft Teamsのプレゼンスから部下がサボってないか監視しよう!~ PowerAutomateで定期実行 ~

【目次】Teamsプレゼンス可視化ツール

0. プロローグ 1. 永続的なアクセストークンの取得 2. プレゼンスの取得 3. エクセルで可視化
4. PowerAutomate Desktopで定期実行 5. Pythonで実装 6. 完全自動化Pythonプログラム  

Power Autotame Desktopを使ってTeamsのプレゼンスを取得してエクセルに追記するところまで出来ましたので、あとはフローを定期実行して自動取得させれば完成です。

Power Automate Desktop(無料版)ではフローの定期実行は出来ない

ここで二つ目の壁にぶち当たります。

Power Automate Desktop無償版と有償版のちがい

Power Automate Desktop単体でフローを実行する場合は、手動での実行しか対応していません。実行時は常にPCにサインインを行い、Power Automate Desktop上で対象のフローを選んで実行ボタンをクリック、という作業が必要となります。

有人および無人のデスクトップ フローの実行

Power Automate を通してデスクトップ フローをトリガーするには、コンピュータ または コンピュータ を使用する必要があります。 コンピュータは、デスクトップ プロセスを自動化するために使用される物理デバイスまたは仮想デバイスです。 

( ゚Д゚)ハ?

マイクロソフトの説明はそもそも日本語がよく分かりませんが、要は無料版のPower Automate Desktopではフローの定期実行、自動実行ができません。Power Automate DesktopはパソコンにログインしてPower Automate Desktopを起動してフローの実行ボタンを押さないといけないわけです。

いやいやマイクロソフトさん、Power Automate DesktopはRPA製品ですよね。単純な繰り返し作業を自動化するためのツールですのよね。にも拘らず定期的な実行ができないって、そりゃないですよ。

因みに定期実行するためには有料版のPowerAutomate Desktopに加入し、クラウド版PowerAutomateと連携することで可能となります。

Power Automate Desktop(無料版)で定期的なフローの実行する方法

しかしここで諦めてはいけません。無料版でも定期実行する方法はあります。

単純な何分(何時間)間隔の定期実行

単純な定期実行はループ条件を使って無限ループを作り、定期実行したい間隔の時間をWaitを使って待つというやり方です。

上記の例は1分毎にメッセージが表示されるフローですが、「メッセージを表示」の部分に実行させたいフローを入れれば定期実行ができるようになります。このやり方の注意点はフロー実行中の時間はカウントされないので、長いフローの場合、どんどん実行時間がずれていくことです。

毎時何時何分に実行させたい場合

正確に何時何分毎に実行させたい場合は、上記の無限ループとクラウド版Power Automateのスケジュール実行と組み合わせます。

Wait時間は59秒とします。そしてループ条件の中に更に「ファイルが存在する場合」アクションを追加し、OneDrive上のファイルを指定します。

クラウド版Power Automateのスケジュール機能を使い、定期実行させたい間隔でファイルを作成するフローを登録します。この例では毎時0分、20分、40分にフローが定期実行されます。厳密にはWaitが59秒入っているので最大59秒ずれますが、これ以上Waitを短くすると負荷が上がるのでおすすめしません。

プレゼンス取得とエクセル追記の定期実行

さて話は戻ってTeamsプレゼンス取得とエクセル追記フローの定期実行です。

これまで作った各サブフローをループ条件の中に入れてやれば完成です。取得の間隔は20分としました。

出来上がったエクセルはこのような感じです。

社長、テレワークだからと言って別にサボってないですよ?

終わり。(つづく・・・