PowerApps の処理を Flow で記述する の続きです。
前回、作成したアプリは一覧で座席を選んで詳細画面を表示し、編集画面に遷移して人の指定として名前やメールアドレスを入力する必要がありました。
今回、フリー アドレスの席に用意したQRコードをスマートフォンでスキャンして簡単に座った位置を登録する想定です。
これまでの構成
座席表のレイアウト表示は、Power BIを使用しました。
座席情報は、SharePoint Onlineリストを使用しました。
座席情報の登録は、PowerAppsのウィザードで作ったアプリを使用しました。
複雑な登録処理は、 Microsoft Flow で記述して PowerApps から呼び出しました。
今回の構成
PowerApps には、iOS や Android で使えるバーコード スキャナーが用意されています。
これを活用して座席位置を入力します。人の指定は、アプリを使用しているユーザーの情報を使って自動に行います。
登録処理は、前回 Microsoft Flow で作成したフローを使用します。
手順
-
PowerAppsにバーコード スキャナーを追加
- PowerAppsでアプリの編集画面を表示
- 左側の画面ペインの[BrowseScreenFloow]をクリックして一覧画面を表示
- [挿入]-[メディア]-[バーコード スキャナー]の順にクリック
- 追加された[BarcodeScanner1]を適切な位置に移動
-
スキャンしたら登録処理を呼び出す
- [BarcodeScanner1]をクリックして選択
- 数式バーで[OnScan]の数式でフローを呼び出す
OnScan'PowerApp->複数の項目の取得'.Run(User().Email, BarcodeScanner1.Value);Refresh(Floor)
-
座席バーコード以外のエラー処理を追加
- 数式バーで[OnScan]の数式を変更
OnScanIf (IsMatch(BarcodeScanner1.Value, "DESK[1-2]-[A-B][1-4]"), 'PowerApp->複数の項目の取得'.Run(User().Email, BarcodeScanner1.Value);Refresh(Floor), Notify("NG: " & BarcodeScanner1.Value, NotificationType.Error))
今回わかったこと
- PowerApps
- バーコード スキャナーの読み取り処理は、OnScan
- バーコード スキャナーで読み取った値の Value (間違えて Text を見てしまい少しハマった。Text はボタンに表示される文字の指定)
- User()関数で、利用者のユーザー情報が取得できる
- If も関数。If(条件, 真式, 偽式)
- テキストのパターン マッチは、IsMatch()関数
- IsMatch()関数は正規表現が使える
- エラー メッセージに Notify()関数が手軽に使える。バナー メッセージがiPhone X の画面上部の切り欠きに被って使い勝手がいまいち。