Formsで予約システムを作ってみよう 1

社内研修や健康診断などイベントを行おうとすると、
候補日時を4つほど設定して、スタッフ全員宛てメールでイベント内容・候補日時を展開。
展開したメールの返信で、希望日時を収集。先着順に日時が決定。数秒の差で予約できなかった方には、お断りと空いている日時を連絡。。。。。とスタッフが多いと予約を受け付けるだけで大変ですよね。
候補日時は4つほどで、各候補、定員30人ずつといった予約であればFormsとPowerPlatformで効率化できるかもしれません。

目次

想定する状況

ざっくりとですが下記のような状況を想定します。

総務部主催でコンプライアンス研修を実施することになりました。
対象者は社員全員(200人)。会場は、【会議室A】。
会場の定員が30人となるので、日程を下記のように設定しました。

第1回 8月10日 10:00~11:00
第2回 8月10日 13:00~14:00
第3回 8月12日 10:00~11:00
第4回 8月12日 13:00~14:00

予約確定は、先着順とします。

Formsの設定

フォームの名前、説明を記入してください。

次に選択肢を設定します。(選択肢はいくつでも設定して大丈夫です。)

回答可能ユーザーの設定

右上「回答を収集」をクリックすると、回答可能ユーザーの設定ができるポップアップが出ます。

「自分の所属組織内のユーザーのみが回答可能」と「名前を記録」を必ず選択。

違った選択をすると、PowerAutomateが動かない等の不具合が出るのでお気をつけください。

Formsは以上になります。

SharePointリストの作成

リストにはお申し込みが確定した方の「名前」と「日程」を書き込んでいきます。

リストの項目は「日程」を作成するだけで大丈夫です。初めから存在する「タイトル」には、名前が入って行きます。

PowerAutomateでフローを作成

↓今回設計するフロー

[自動化したクラウドフロー]でFormsの「新しい応答が送信されるとき」でフローを作成してください。

「新しい応答が送信されるとき」のフォームIDに先ほどFormsで作成した「コンプライアンス研修」を選択。

次にアクション「応答の詳細を取得する」を追加。
フォームIDは「コンプライアンス研修」を選択し、応答IDには動的なコンテンツから「応答ID」を追加。

次にアクション「ユーザー プロフィールの取得(V2)」を追加。
ユーザー(UPN)には動的コンテンツから「Responder’s Email」を追加。

次にアクション「複数の項目の取得」を追加。名前は「複数の項目の取得(講習日程)」に変更します。
サイトのアドレスには作成したサイトを選択。リスト名には「コンプライアンス研修」を追加。

詳細オプションを表示するとクリックするとフィルタークエリが表示されるので、下記画像のように入力。

「複数の項目の取得」をまた追加して、フィルタークエリーを添付画像のように入力。
名前は「複数の項目の取得(タイトル)」に変更します。

次にアクション「条件」を追加。名前は「条件(2回目の申込者ではないか確認)」に変更します。
左側の枠に下のコードを入力してください。

length(outputs(‘複数の項目の取得(タイトル)’)?[‘body/value’])

真ん中の枠には「次の値より大きい」を設定します。右側の枠には「0」を入力。

同じ人が2度目の予約した場合、「はいの場合」が実行されます。
アクションは「メールの送信(V2)」にしメールの内容は添付画像のように設定します。

初めて予約する人だった場合「いいえの場合」が実行されます。
アクションはさらに条件を追加します。名前は「条件(定員確認)」に変更します。
左側の枠には、下のコードを入力。

length(outputs(‘複数の項目の取得(講習日程)’)?[‘body/value’])

真ん中の枠には「次の値より大きい」を設定します。
右側の枠には定員人数を入力します。今回は、テストのために「2」を入力します。

予約いただいた日程が満員だったら「はいの場合」が実行されます。
アクションは「メールの送信(V2)」にしメールの内容は、満員であることをお知らせと再度予約していただくよう誘導する文にします。

プラスして、管理者にも満員になったことを通知するメールを送信します。

定員も空きがあった場合は「いいえの場合」が実行されます。
アクションは「項目の作成」を設定。
予約が完了した人の名前とお申込いただいた日程をリストに書き込んでいきます。

タイトルは動的コンテンツから「表示名」を、日程には「講習日程」を設定していきます。

最後に、お申込いただいた方に「お申込完了」メールを送るアクションを設定しPowerAutomateは以上です!!
(長かったです。。)

PowerAppsで予約状況を確認するアプリを作成

PowerAutomateによってSharePointのリストに予約が完了した人の名前が書き込まれていくので、
PowerAppsでは日程ごとの人数を表示していきます。

日程ごとのお申込人数の表示は下記コードで表示できます。

If(CountRows(Filter(コンプライアンス研修,日程=”第1回 8月10日 10:00~11:00″))=0,0,CountRows(Filter(コンプライアンス研修,日程=”第1回 8月10日 10:00~11:00″)))

まとめ

Formsで作る予約システムの開発は以上になります。次回は、動作の確認をしていきます。

よかったらシェアしてね!
  • URLをコピーしました!

管理人

2000年生まれの23才/男/高卒
派遣で車のパーツを製造する企業のDX推進課に勤めています。
極めたい事は魚釣り。フリーランスになりたいのでどなたかおPowerAppsのお仕事ください。保有資格:LPICレベル1/Azure Fundamentals/Azure Solutions Architect Expert(LPICとAzureは業務で使用したことないです。。。)
使える言語:HTML/CSS/JavaScript(jQuery)
こちらに連絡ください。。→info@power-magic.jp

コメント

コメント一覧 (72件)

1 2

コメントする

目次