LoginSignup
11
11

More than 3 years have passed since last update.

Power Apps で勤務シフト作成アプリを作る その1 概要と事前準備編

Last updated at Posted at 2020-04-15

本記事は5回シリーズ(の予定)です。
その1はこちら:本記事
その2はこちら:https://qiita.com/KodamaJn/items/a16e7bb021780e51850d
その3はこちら:https://qiita.com/KodamaJn/items/00af61369887d4b8dff6
その4はこちら:https://qiita.com/KodamaJn/items/2765f395d807de13f785
その5はこちら:執筆中…

はじめに

 先日、他部署から部内の勤務シフト作成作業の効率化について相談がありました。

 勤務シフトを作成するツールは世の中にいくつかあるのですが(しかもシフトの自動生成までしてくれるものもある!)、勤務シフトって部署によって要件のばらつきが激しいんですよね。
 単に"この時間帯は最低何人必要"というものから、個々の保持スキルの差、相性、年間の勤務バランス、希望休/希望時間帯など、要望レベルがそれぞれ違っていて、需要にぴったりくるツールって、なかなか探すのが大変です。正直、探すより作ったほうが早いと考えてしまう。

 という背景もあり、内製で手助けするのは無理かもな~と色々と話を伺っていると、実際にはシフト作成自体より、シフトを作成する前に行っている各部員の勤務希望の収集や、シフト確定の通知が紙や FAX で超絶面倒臭そうだったんですね。
 Power Apps でシフト自動作成まで実装するのは大変そうですが、希望収集や自動通知ならむしろ Power Platform の得意分野じゃないか!

 ということで、勤務希望収集からシフト確定通知まで行えるアプリを試しに作ってみました。

完成イメージ

 希望申請アプリで各部員から申請された勤務希望を確認しながらシフトを組み、完成したら公開することで各人の予定表に追加される仕組みです。




 最終的には、人や勤務パターンの増減も行え、人が多すぎる場合は行間の調整も可能な仕組みを構築してみます。

データベース設計

 弊社は E1 ライセンスを利用している都合上、データベースは SharePoint のリストを利用します。

 勤務シフトは「いつ、だれが、なにをやる」なので、日付、ユーザー、シフトパターンの情報が必要です。
 シフトに組み込むユーザーや勤務パターンは変動しますので、データベースはこんな感じで3つのリストを作成することにしました。
image.png
 ユーザーリストはそもそも分ける必要がなさそうに見えますが(笑)、シフト表にどのユーザーを表示するかの定義が必要なので、作成しました。
 パターンリストにある「最低勤務人数」はシフト作成時に各パターンの人数が不足していないかをチェックするために利用します。「RGBA値」は各パターンを色分けして見やすくするために利用します。RGBA値の保存方法については、以下の記事をご参照ください。
 Power Apps で色の設定情報を読み書きする簡単な方法

 メインリストには、「とある日付のとある勤務者のシフト」が1レコードになるように格納します。希望の勤務パターン(希望があれば)は、実際の勤務パターンを列を分けて1レコード内に格納します。



 上記のイメージをもとに、以下のように SharePoint リストを作成します。リレーションシップの設定は行いません。また、タイトル列は使いませんので、リストの設定からタイトル列の必須入力を"いいえ"にしておきましょう。
 本来、関連する列の列名は同じである方が望ましいと思うのですが、今回は作成過程でどのリストの列を参照しているかを分かりやすくするため、列名の先頭1文字にリスト名を表すアルファベットを付けています。

勤務シフト_ユーザー

列名 用途
uWorkUser ユーザー 勤務者

勤務シフト_パターン

列名 用途
pWorkPattern 1 行テキスト 勤務パターン
pMinimunNumber 数値 最低勤務人数
pRed 数値 R値(色分け用)
pGreen 数値 G値(色分け用)
pBlue 数値 B値(色分け用)
pAlpha 数値 A値(色分け用)

勤務シフト_メイン

列名 用途
mWorkDate 日付 勤務日
mWorkDateValue 数値 勤務日数値 ※
mWorkUser ユーザー 勤務者
mWorkPattern 1 行テキスト 勤務パターン
mRequestWorkPattern 1 行テキスト 希望勤務パターン

※2020/06/19 時点で日付列のフィルタリングも委任可能となりましたので日付数値列を用意する必要はありません。
本記事執筆時点では SharePoint リストの日付列をフィルタリングが委任できなかったため回避方法として数値列を用意し利用しています。ご了承ください。

(以下参照)
PowerAppsで遭遇する5つの委任問題とちょっと強引な回避方法(SharePointリスト利用時)その1


 また、以後の作業のために、各リストに適当に何か入れておきます。
image.png
image.png
image.png

おわりに

 これで、データベース側の準備は完了です。
 続いて、Power Apps でアプリを作成してきます。

 その2はこちら:https://qiita.com/KodamaJn/items/a16e7bb021780e51850d

11
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11