ファンリピート社のブログFR note

Power Platform(Power Apps)でシフト管理アプリを作成してみた!

こんにちは!ファンリピートの加藤です。

今回はMicrosoftアカウント(企業や学校などの団体)を持っていれば誰でも簡単にアプリが作れると話題のPowerPlatformの特にPowerAppsを利用してみた感想やその内容について共有したいと思います。

普段はノーコードでいえばbubble、言語でいえばPythonを触ることが多いのですが、その私が体験したというのを前提にbubbleなどとの差にも触れていければと思います。

ぜひ参考にしてみてください!

目次
「システムを短納期かつ低予算で作成したい」
ローコード開発に興味がある

PowerPlatformとは

概要

Power PlatformはMicrosoftが提供するビジネスアプリケーションプラットフォームで、Power BI、Power Apps、Power Automate、Power Virtual Agentsの4つの主要なコンポーネントから構成されています。これらのツールを使用することで、ユーザーはコーディングスキルや経験がなくても自分たちのビジネスニーズに合わせたアプリケーションやワークフローを作成できます。

ライセンス

基本的にはMicrosoft 365アカウントでPower BI、Power Apps、Power Automate、Power Virtual Agentsは対象のライセンスを保持していれば利用できます。試用版で無料で利用することも可能ですが、無料プランには扱える機能やデータに限りがあるので、一定以上を扱いたい場合は有料プランに変更する必要があります。

各プラットフォームごとに料金や課金方法が細かく異なるので以下のリンクからライセンスガイドを参照していただければと思います。各プラットフォームを扱うためのDataverseを利用する際にも同様です。

https://learn.microsoft.com/ja-jp/power-platform/admin/powerapps-flow-licensing-faq

メリット

ローコード/ノーコード

 Power Platformはローコード/ノーコード開発が可能なので、開発経験や知識のないユーザーでもビジネスアプリケーションを作成できます。これは、IT部門の負担を軽減し、ビジネスユーザーが自分たちのニーズに合わせたアプリケーションなどを迅速に作成できるようにします。

統合

 Power PlatformはMicrosoft 365、Dynamics 365、AzureなどのMicrosoftの他の製品とシームレスに統合されています。これにより、ユーザーは既存のデータとプロセスを活用してアプリケーションを作成できます。

デメリット

高度な機能の制限

Power Platformは基本的なアプリケーション作成には非常に適していますが、より高度な機能や複雑なロジックを実装するには限界があります。そのため、細かい実装が必要になるようなものは避けるか工夫する必要性が出てきます。

コスト

Power Platformは基本的には無料で使用できますが、一部の高度な機能や大量のデータストレージを利用するには追加のコストが発生します。これは、特に大規模な組織や複雑なアプリケーションを作成する場合に考慮する必要があります。また、企業や学校などの団体のアカウントからでしか利用できないので、自分の所属されている団体でMicrosoftを利用しているのかなどの確認が必要な場合があります。

PowerAppsとは

概要

Power AppsはPower Platformの一部で、エンドユーザーが自分でビジネスアプリケーションを作成できるツールです。直感的なドラッグ&ドロップのインターフェースと、Excelのような式言語を使用してアプリケーションを作成します。これにより、開発者でなくても独自のビジネスアプリケーションを作成することが可能になります。しかし、各機能の実装には関数やコードへの理解が必要なため勉強や慣れが必要になります。

ライセンス

ライセンスの体系にはいくつかあり、ユーザー単位、アプリ単位、またはデータ使用量に応じた従量課金性など様々なプランが存在します。自分の団体に必要なものを吟味した上でご購入されることをおすすめします。

こちらも以下のリンクからライセンスガイドを参照していただければと思います。料金体系は都度変更があるので最新版をご参照ください。

https://learn.microsoft.com/ja-jp/power-platform/admin/powerapps-flow-licensing-faq

実際にアプリを作成してみた

私は今回、シフト管理アプリとシフト申請アプリを作成しました。Microsoft TeamsにShiftsというアプリケーションが存在するので不要かもしれませんが、Power Appsの理解向上のためやより独自の機能追加が可能になるのではと考えたための実装です。

機能自体はシフトの作成・編集、希望シフトと確定シフトの確認ができればよいとしました。

以下の記事を参考に作成した(そのままの部分が多い)ので、作り方に関してはそちらを一読されると良いかもしれません。ここでは大まかに解説していきます。

https://qiita.com/KodamaJn/items/afc40f565aca772ab67f

シフト管理アプリ

全体のテーブル内容

データ構造は以上の通りとします(現在は日付データでもフィルタリングを委任できるのでmWorkDateValueは不要)。データはMicrosoft Dataverseで作成しました。また、UIは以下のようにしました。

シフト管理アプリのUI例

赤枠に囲まれた部分について解説すると以下の通りです。

  • 各列の数字は対応の月の日付を表示しています。
  • 各行は従業員名を表示しています。
  • Dropdownでは管理者が確定のシフトパターンを選択できます。Dropdown直下のスペースには従業員からの希望シフトパターンが表示されます。
  • 左上のアイコンから前の月、次の月のシフトと表を変更できます。
  • 右上の保存アイコンから対象月の選択したシフトパターンを一括で保存できます。(正確にはDataverseのShifts_Mainに保存する)

アプリ立ち上げ時からの動作手順を解説していきます。

  1. アプリ立ち上げ時、月別のカレンダーを生成(ここでカレンダー情報をDayTable(コレクション)に保存)。
  2. Shifts_Main、Shifts_User、Shifts_PatternのDataverseのデータをそれぞれ一覧に反映させる。
  3. Dropdownの値が変更されるたびに変更内容をShiftData(コレクション)に保存し、一覧に反映させる。
  4. 対象月を変更するたびにDataverseのデータをShiftData(コレクション)に保存しなおす。(Dropdownの変化させた値はDataverseに保存されない)
  5. 保存アイコンを押下すると随時値を格納しなおしているShiftData(コレクション)の値をDataverseに保存する。

以上の動作を繰り返し行います。

アプリを作成する際は必要なデータとその型、動作をする際の順番や機能の整理を行うと行き当たりばったりにならず、エラーが出た際に何が間違っているのかやその機能に必要な要素は何なのかが明瞭になります。

これまではMicrosoftならではの機能はありませんでしたが、保存アイコンの右隣にあるカレンダーアイコンを押下するとOutlookに生成したカレンダーを反映する機能をつけています。他のツールでも同様な操作は可能かもしれませんが、簡単に関数として用意されているので、これはMicrosoftならではでありPower Appsだからできることといっていいでしょう。こうしたところから統合できる良さを感じました。

シフト申請アプリ

こちらのアプリはホーム画面の「データで開始する」からShifts_Mainのデータを読み込ませて各エレメントを微調整したものになります。

ここでのデータはシフト管理アプリで使用したものと同様のもの(Shifts_Main、Shifts_User、Shift_Pattern)を利用するので、こちらで編集した内容がシフト管理アプリでも反映される流れになっています。

「データで開始する」をするとそれに対応する一覧画面、詳細画面、編集画面までが自動で生成され、必要な項目のみ残してしまえば完了してしまうところが驚きですね!ここでも従業員名をユーザー型(ここではテキスト型)で持たせていれば、本人の情報のみ表示させたりとユーザーに制限をかけることができます。こうした機能も団体全体でMicrosoft Teamsなどを普段から利用していれば一括で管理できてしまうのが非常に楽だと思います。

PowerAppsの使用感

Power AppsはMicrosoftの他の製品と統合が可能なため、既存のMicrosoft 365ユーザーにとっては特に便利でしょう。また、既に作成したデータを指定するだけでアプリを自動で生成してくれる機能は素晴らしく、テンプレートも豊富なため、UIの設計を一からする必要がないのが大きな利点だと感じました。

独自の関数や書き方もありますが、それは他のコンピュータ言語と理解する上での難易度の差異はあまりないので公式のドキュメントを参照したりすることで解決可能です。

特にコレクションを扱えることが非常に重要だと感じました。これは一般的なコンピュータ言語の配列にあたるものですが、複数のコレクションを操作することでできることの幅が大きくなると思います。

これはPower Appsだけに他ならないですが、実装の注意点として私は保存処理でShiftData(コレクション)のデータをShifts_Main(メイン)のデータへ更新する機能の実装時、テーブル名とユニークなIDの列名どちらもShifts_Mainで、テーブル名を指定しているつもりなのに何度もエラーが出てしまうといったことが起きてしまいました。各データの扱いや命名については細心の注意を払っていただければと思います。

まとめ

全体として、Power Appsはビジネスアプリケーションの作成を大幅に簡素化し、より多くの人々が自分たちのビジネスニーズに合わせたアプリケーションを作成できるようにする強力なツールです。今回のシフト管理アプリケーションの作成経験を通じて、Power Appsの可能性について体験することができました。

今回のアプリケーションは私レベルの理解力でもほぼ一日で実装できてしまうので(実際はエラーに苦戦していましたが…)、他のツールやプログラミング言語の経験がある方ならある程度のアプリは簡単に作れてしまうのではないでしょうか。

ご自身の職場周りで「不便なこと」や「あれがあれば便利なのに」といったことがあり、Microsoftの環境がある場合はぜひPower Platformを試されることをおすすめします!

メンバーを募集中!

当社ではお客様に向き合い、お客様の事業成功にコミットをできる仲間を募集しています。

正社員、インターンから副業まで、幅広く採用活動を進めております。プロジェクトマネージャーやシステムエンジニアとして当社のシステム開発業務に携わってみませんか?

当社と共に、業界トップを目指して挑戦したい方は未経験者から経験者まで広く募集しているので、ぜひエントリーをお待ちしています。

「システムを短納期かつ低予算で作成したい」
ローコード開発に興味がある
「煩雑なExcel管理から脱したい」
慣れ親しんだシステムを使って効率化したい
「大規模なシステム開発を行うためにPoCを行いたい」
「社内のDXを進めていきたい」
  • URLをコピーしました!

この記事を書いた人

株式会社ファンリピートのアバター

株式会社ファンリピート

FRnoteは株式会社ファンリピートのメンバーによって運営されている社内ブログです。ノーコード・ローコードの技術ブログを始めとして、最新のIT技術、業務で役立つノウハウなど様々なトピックをまとめています。


目次
閉じる