三島正裕のOffice365コラム第14回「PowerAppsとFlowで社員の労働時間を把握する。テレワーク環境を考えてみよう」

Print Friendly, PDF & Email

こんにちは!クラウドビジネス担当の三島です。今回のOffice365コラムでは、社員の労働時間を把握するアプリを作成してみたいと思います。働き方改革の中でもテレワークという言葉が最近注目されていますよね。いつでもどこでも働ける環境を構築することで、時間や場所にとらわれない柔軟な働き方を目指すというものです。育児や介護、ケガなどで規定の業務時間内の労働が困難な方に勤務地以外の労働環境を提供したり、移動中や待ち時間などの隙間時間を有効活用してもらうことで、作業効率を上げ、労働時間の削減を行ったりといった取り組みが多くの企業で行われています。

こうした活動を促進しているのは、近年急速に発展してきたICT(情報通信技術)の影響が大きく、モバイル端末やモバイルアプリが充実してきたことで、社外でも社内システムを使った労働がしやすくなったことが大きな要因としてあげられます。

しかし、こうした社外の労働環境にも大きな課題がありますよね。それは社員が働いている姿が管理者側から見えにくいということです。社員が今、どこでどのような作業を行っているのか、そもそも本当に仕事をしているのかなど、管理者の立場からすると不安になる要素が非常に多いのはテレワークを推進していくにあたっての課題の一つです。

この問題を解決するには、コミュニケーションをより円滑にしたり、アプリの操作ログを適切に残したりといった方法がありますが、労働者側から適切なタイミングで作業報告をしてもらうというのも1つの方法です。ただ、これをメールやチャットで行うと、管理が煩雑になってしまいますので、アプリを使って管理をしてみたいと思います。

1.労働時間報告アプリをつくる

今回作成するアプリはこのような仕組みです。アプリを起動して、これから行う作業名を入力。開始ボタンを押すと開始時間が登録され作業開始です。作業を終了したり、中断したりしたい場合は終了ボタンを押します。再開する場合は、最初と同じように作業名を入力して開始ボタンを押します。1日の業務の終わりに報告ボタンを押して、管理者宛に作業時間の報告を行います。

2.Common Data Serviceでエンティティを作成する

今回の労働時間データはCommon Data Service(以下CDS)に保存します。作成するエンティティについては、下図を参考にして下さい。

エンティティの作成方法については、こちらのコラムを参考にして下さい。

https://www.si-jirei.jp/2019/01/23/powerapps%E3%82%B3%E3%83%A9%E3%83%A0/

3.PowerAppsアプリを作成する

PowerAppsでアプリを作成します。今回もキャンパスアプリで作成します。レイアウトは携帯電話レイアウトを選択して下さい。PowerAppsのメニューよりビューを選択して、データソースを選びます。データソースはCommon Data Serviceを指定します。先程作成した労働時間報告のエンティティが表示されますので、選択して接続します。

続いて、Office365ユーザーを接続します。接続方法は労働時間報告のエンティティと同じです。データソースからOffice365ユーザーを検索して作成ボタンを押します。

4.初期設定をする

画面を開いた時に初期設定が行われるよう設定します。Screen1のパラメータOnVisibleに関数をセットすると画面を開いたときにその関数が実行されます。パラメータの内容は下図のとおり設定します。

1番目のSetでOffice365ユーザーから自身の名前を取得し、変数UserNameに格納します。2番目のSetで現在日付を取得して、Todayという変数に格納します。3番目のSetで削除ウィンドウの表示をコントロールするためのフラグWindow_Delを作成しています。削除ウィンドウについてはこの後説明しますが、変数の値が0の時は非表示に、1の時には表示をするように設定をします。

5.入力フォームを作成する

入力フォームを作成します。フォームの各パーツとそのプロパティは下図を参考にして下さい。Lable1とLable2には初期設定で取得した値がそれぞれセットされます。当日日付や自分のユーザー名が表示されない場合は、初期設定を見直してみて下さい。Lable11には、これから登録をする労働時間報告の最新のレコードのNoがセットされます。自分のユーザー名と当日日付でフィルタリングしたデータを登録日付で降順に並び替え、最初のレコードを取得することで、最新のレコードを取得しています。

なお、Lable11は表に出す必要はありませんので非表示としています。

開始ボタンの設定は少々複雑です。最初のIf文ではエンティティ労働時間報告の最新データの終了日時が空白かどうかを条件とすることで、作業中か作業中でないかの判定をしています。作業中でない場合は入力フォーム「作業名」のテキストを取得し、現在日時とセットで登録をします。作業中の場合は現在日時を終了日時にセットします。データの更新が完了したタイミングで、作業当日に作成したデータを基にReportというコレクションを作成しています。これは作業日当日の労働時間を集計するために使用します。

開始ボタンのTextプロパティも併せてセットします。作業中でない場合は開始と表示し、作業中の場合は終了と表示されるよう設定しています。

6.ギャラリーを設定する

Screen1の入力フォームの下にギャラリーを設定します。ギャラリーはPowerAppsメニューの挿入よりギャラリーを選択してScreen1に配置します。ギャラリーの設定内容については下図を参考にして下さい。ギャラリーGallery1の中身にはエンティティ「労働時間」を表示しています。自身のユーザー名と作業当日の日付を条件式とし、作業日時で降順に並び替えています。

ゴミ箱のアイコンをクリックすると、選択されたレコードのデータを削除するためのウィンドウが開きます。前述したとおり、削除ウィンドウの表示は変数Window_Delの値でコントロールしています。削除ウィンドウに関するパーツは、Screen1の全てのパーツの上になるように配置します。

7.1日の労働時間を計算する

1日の終わりにその日の労働時間を計算して、管理者へ報告したいと思います。1日の労働時間を計算するには、入力フォームのボタンで作成したコレクションReportを使います。PowerAppsのコレクションを開くと下図のようになっているはずです。労働終了時間と労働開始時間が日付形式で保存されているのがわかります。この2つの項目の差を計算して、全てのレコードの労働時間を合算します。

労働終了時間と労働開始時間の差を計算するには関数DateDiffを使います。分単位で計算をして、60で割ることで時間を計算しています。

労働時間を簡単なグラフで表現することも出来ます。下図のように長方形のアイコンを配置し、労働時間の長さによって、幅のパラメータWidthを変えるよう設定しています。

8.報告ボタンの処理をFlowで作成する。

報告ボタンを作成するにはFlowを使用します。Button_2というボタンを配置し、選択をした状態でメニューのアクションよりFlowsを選択します。「+新しいフロー」の作成をクリックすると、Flowが起動します。最初のステップにPowerAppsがセットされていますので、「+新しいステップ」を押して、次のステップを選択します。メールの送信が表示されていればクリックします。PowerAppsの次のステップとして「メールの送信」がセットされます。宛先には報告者のメールアドレスをセット、件名にはメールのタイトルをセットします。本文にはテキストと動的なコンテンツを組み合わせた文章をセットします。動的なコンテンツは右に表示されているメニューから「PowerAppsで確認」を選択するとセットされます。今回はPowerApps側から報告者の名前と労働時間を受け取りたいと思いますので、動的なコンテンツは2つセットします。

PowerAppsに戻り、作成したFlowを追加します。データウィンドウに「PowerAppsボタン」が表示されていますので、クリックをするとFlowがButton_2に関連付けられます。Button_2をクリックしたときにFlowを呼び出すにはRunを使用します。カッコの中にはFlow側に渡す値をセットします。下図では、報告者の名前としてUserName、労働時間の報告としてLabel9のテキストをFlowに渡すよう設定しています。

9.アプリを実行する。

作業名を入力して開始ボタンを押すと業務記録が1件追加されます。終了ボタンを押すと終了日時が登録され、再び新規の作業が登録出来るようになります。報告ボタンを押すと、その日に入力した労働時間が計算され、報告者宛に労働時間報告が送信されます。

10.おわりに

PowerAppsとFlowを使った労働時間報告アプリは如何だったでしょうか。今回は労働時間を打刻し、管理者に報告をするというアプリを作成してみましたが、入力されたデータをPowerBIで可視化して、アプリの導入効果を確認してみるのも面白いかもしれませんね。色々と応用が出来そうなアプリだと思いますので、皆さんもぜひ試してみて下さい。

それでは次回もお楽しみに。

PowerAppsについては以下をご覧ください。
https://www.si-jirei.jp/office365/powerapps/

  • このエントリーをはてなブックマークに追加

Related post

更新情報

最新コラム

  1. 皆さん、こんにちは。マイクロソフトクラウド担当の安井です。 早いもので、前回のコラムでOff…
  2. ディーアイエスソリューション株式会社にて保守チームに在席している西久保と申します。 今回から…
  3. 1.はじめに みなさん、こんにちは! プライム・ストラテジーでマーケッターをしておりま…

ログインステータス

Return Top