DT Blog

Power PlatformとSharePointで座席予約アプリを作ってみた①~アプリの機能概要と仕組み~

こんにちは。クレスコ・デジタルテクノロジーズのN.Oです。
クレスコDTでは社内システムとして本年よりMS365を使用しています。

Power Platformが使用可能になりましたので、このPower PlatformとSharePoint(Microsoft Lists)を使用して、インフラエンジニアである私が座席予約アプリを作成してみました。
その結果、座席台帳のメンテナンスが不要になり、座席管理の自動化も行うことができました!

今回は、アプリの機能と仕組みの概要について説明したいと思います。


目次[非表示]

  1. 1.アプリの機能
  2. 2.アプリの仕組み(概要)
  3. 3.アプリの仕組み(座席一覧画面)
  4. 4.まとめ


アプリの機能

私が所属する部署ではプロジェクトルームの座席を使用する際に,「誰が」「どこの座席を」「いつからいつまで」「どんな案件で」使用するかExcelファイルに記入していました。

Excelで座席を管理することで,以下の問題が発生していました。

  • 座席を利用した後にExcelファイルを更新し忘れる社員がいる
  • 予約していた座席が利用可能になっても気づかない・忘れてしまっている

 
MS365を使用すれば座席管理台帳の自動更新と予約状況の自動通知ができると考え,アプリの開発を行いました。

以下がアプリのメイン画面になります。


赤色の枠の座席が利用中を表します。Excelファイルでの管理と比較してどの座席が使用中か一目でわかるようにしました。「状況」を選択すると利用状況・予約状況の確認を切り替えられます。空いている座席を選択し,「利用」をクリックすると利用手続き画面に移ります。
「利用終了」の日付と案件名を入力し,「利用する」をクリックすると利用手続きが完了します。


予約されていない座席を選択した場合は予約ができます。


予約した座席を利用する当日になったらメール通知が送信されます。



アプリの仕組み(概要)

以下がアプリの全体図になります

座席の利用や予約をする社員がすることはPower Appsで座席を選択し,利用期間を入力,利用終了したら利用終了ボタンを押すだけです。利用状況の監視や利用期間を過ぎた場合などのリストの処理や利用者へのメール通知はPower Automateが実施してくれます。社員が直接SharePoint Listsでデータ操作を行う必要がないためリストのメンテナンスが不要になります。



Power Apps側では不正な利用期間がSharePoint Listsに入力されないように制御を行います。

例えば,

  • 今日より前の日付
  • 既に登録済みの利用期間に重なるような予約期間

は「予約する」ボタンが「予約不可」に変化し登録が不可能になります。


Power Automateでは予約した座席が利用当日になった場合に座席の状態を「利用中」に変更します。同時に予約者に座席が利用可能になった内容のメールを送信します。なお,この時点で前の利用者が利用期間を過ぎて使用していた場合は予約を優先し,前の利用者に別途利用超過を知らせるメールがPower Automate経由で送信されます。



アプリの仕組み(座席一覧画面)

SharePoint Listには、以下のように項目とデータ形式を設定します。

例えば、プロジェクトルームの名前PJRoomと使用状況Statusは選択肢、使用者RoomUserはユーザー名、利用開始日StartDateと利用終了日EndDateは日付の形式を設定します。IDは自動採番され、後のPowerPlatformで使用します。今回は、リストの前12行に梅の部屋のデータを、後ろ12行に松の部屋のデータを格納しました。



座席一覧画面のリストは、垂直ギャラリーを使用しています。


垂直ギャラリーのItemsプロパティには、上記画像左のドロップボックスで「梅」が選択されたらSharePoint Listの先頭12行を、それ以外が選択されたらSharePoint Listの後ろ12行を表示するようにコードを書きます。コードは以下のようになります
 

If(PJRoomDropdown.Selected.Value = "梅",
    FirstN(プロジェクトルーム利用一覧,12),
    LastN(プロジェクトルーム利用一覧,12)
) 


垂直ギャラリーの1行目にパーツを配置すると、全行に適用されます。例えば、席番のテキストでは以下のコードで全行に席番が表示されます。

(ThisItem.SeatNumber).Value 


座席のボタンのOnSelectプロパティには、チェックボックスの機能を持たせます。コードは以下のようになります。(ID02UseFlagはアプリ起動時のOnStartプロパティでfalseに初期化されているものとします。)

If(ID02UseFlag=false,
        // 座席が選択されていない場合
	// フラグをtrueに、カートリストにIDを挿入する
Set(ID02UseFlag,true);Patch(カート,Defaults(カート),LookUp(プロジェクトルーム利用一覧,ID=2)),
// 座席が選択されていた場合
// カートリストからIDを削除し、フラグをfalseにする
        Remove(カート,LookUp(カート,ID=2));Set(ID02UseFlag,false)
        ) 


次回では、利用・予約登録画面でデータをSharePoint Listに書き込む方法を説明します。



まとめ

私自身MS365を使用したアプリ開発の経験がない中でもアプリを作成することができました。
社員から「社内アプリの使い勝手が良い」というフィードバックももらえてうれしかったです。
 
今後は社内でのフィードバックをもとにアプリの改善や新機能の実装,保守や新規アプリの開発をしていきたいです。また,部内でPower Platformを使える社員を増やしていく取り組みも行っていきます。
 
最後までお読みいただきありがとうございました。

N .O
N .O
部署名:アドバンストテクノロジー1部

おすすめ資料はこちら

ソフトウェアテクノロジー

最先端のデジタル技術の豊富な知見に基づき最も効果的なソリューションを提供します。
クレスコ・デジタルテクノロジーズは、大手電機メーカー様との提携に基づく製造業のノウハウを背景に、2015年4月よりPLM事業を開始。2015年6月には、PLMパッケージであるAras Innovatorを提供している米国Aras社とシステムインテグレーションパートナー契約を締結し、数多くのAras Innovator案件に対応しています。

CONTACT

社内システムのお悩みを私たちだけで解決へと導きます

ご不明な点はお気軽に
お問い合わせください

お役立ち資料は
こちらから

おすすめ資料

ソフトウェアテクノロジー

メルマガ登録

人気記事ランキング

タグ一覧