3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PowerApps のアプリにバーコード読み取り機能を追加する

Posted at

PowerApps の処理を Flow で記述する の続きです。
前回、作成したアプリは一覧で座席を選んで詳細画面を表示し、編集画面に遷移して人の指定として名前やメールアドレスを入力する必要がありました。
今回、フリー アドレスの席に用意したQRコードをスマートフォンでスキャンして簡単に座った位置を登録する想定です。

これまでの構成

座席表のレイアウト表示は、Power BIを使用しました。
座席情報は、SharePoint Onlineリストを使用しました。
座席情報の登録は、PowerAppsのウィザードで作ったアプリを使用しました。
複雑な登録処理は、 Microsoft Flow で記述して PowerApps から呼び出しました。

今回の構成

PowerApps には、iOS や Android で使えるバーコード スキャナーが用意されています。
これを活用して座席位置を入力します。人の指定は、アプリを使用しているユーザーの情報を使って自動に行います。
登録処理は、前回 Microsoft Flow で作成したフローを使用します。

手順

  1. PowerAppsにバーコード スキャナーを追加

    1. PowerAppsでアプリの編集画面を表示
    2. 左側の画面ペインの[BrowseScreenFloow]をクリックして一覧画面を表示
    3. [挿入]-[メディア]-[バーコード スキャナー]の順にクリック
    4. 追加された[BarcodeScanner1]を適切な位置に移動

      スクリーンショット 2019-02-16 20.30.52.png

  2. スキャンしたら登録処理を呼び出す

    1. [BarcodeScanner1]をクリックして選択
    2. 数式バーで[OnScan]の数式でフローを呼び出す
    OnScan
    'PowerApp->複数の項目の取得'.Run(User().Email, BarcodeScanner1.Value);Refresh(Floor)  
    
  3. 座席バーコード以外のエラー処理を追加

    1. 数式バーで[OnScan]の数式を変更
    OnScan
    If (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 の画面上部の切り欠きに被って使い勝手がいまいち。
3
5
0

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
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?