PowerApps で蔵書管理(の最初の一歩)をやってみた

Advent Calendar の最終日の記事です。

最終日らしくなく、普通に自分の勉強したことのまとめです。

先日PowerAppsでQRコードも読める新しいバーコードリーダー機能がリリースされました。
参考:PowerAppsのバーコードスキャナーが一新! 通常のバーコード以外にQRコードも読み取り可能に

すでに使えます。(旧来のバーコードスキャナ機能を使っていた場合は既に置き換えられているので機能の再設定が必要です)

機能としてはQRコードが使えることに注目されていますが、
私がとても素晴らしいと思うのは
配置するとキャンバスにボタンがひとつ追加され、
実行時にそのボタンをタップすると

  1. スキャン画面が表示される
  2. ピッ! と音が鳴ってスキャンデータが読まれる
  3. 元の画面に戻って BarcodeScanner1.Value に値がセットされてる

この3ステップがひとつのバーコードスキャナ機能で実現されていることなんです!
スキャナの画面遷移などの面倒な動作を実装する必要が無くなります。

ということでこれを使って書籍情報検索のアプリをPowerAppsで作ってみました。

ところで、みなさん 自社内の書籍管理ってどうしてるんでしょうか?
検索してもあまり見当たらないんですよね^^;
管理している場合、良かったら twitterで教えて下さい

 

書籍管理としてすぐに思いつく必要な機能は3つぐらい

  • 購入した書籍を本棚(もしくは個人の机の上)の場所と一緒に登録する
  • 貸出、返却管理
  • 本をすでに購入しているか検索

とりあえずスキャンして登録しないことには始まらない
なので書籍登録の機能を最初にやろうと思います。

本棚登録アプリ

やりたいことは2つ

  • ISBNコードをスキャンして、書籍情報をWebサービス経由で取得する
  • 取得した内容をSPOカスタムリストに保存する

ISBNコードはすぐに取得できる。
挿入メニューから「バーコードスキャナー」を追加します。(ボタンがひとつ追加されます)
一緒にテキストボックスを追加して、テキストに BarcodeScanner1.Value を追加する。

これだけでスキャナ機能は完成。

書籍情報取得は外部サービスを利用

ISBNコードから、外部サービス(この場合はGoogle Books APIs)を使って、タイトルや諸社名、表示画像などを取得します。
参考:Google Books API – Using the API

このように外部APIを使うための機能として「カスタムコネクタ」というものが用意されています。
参考:カスタム コネクタの概要

参考:カスタム コネクタを一から作成する

参考:PowerApps アプリからカスタム コネクタを使用する

なお、このカスタムコネクタを作る機能は、Office 365 標準機能(追加費用なし)で利用できる「PowerApps for Office 365」では2019年2月以降は作成できなくなる。
利用にはPlan1以上の有料契約が必要になります。

これを作るのは初心者にとっては分かりにくいですが、ありがたいことにやり方を公開してくれている人たちがいらっしゃいます

参考:PowerAppsでJSONデータにある取りたい値を取得する方法

カスタムコネクタの作成についてはそのものズバリのyoutube動画があります。
英語でお話していますが、超わかりやすく説明してくれているので、これを見るだけでできます。

さて、準備は整いました。あとはテキストボックスを配置して取得したいデータをコレクションからlookup関数を使って取得するだけです
(このLookup関数でJsonデータ取得するの超ニガテです…orz)

ラベルにカスタムコネクタで取得した値をセットする

こんな感じで表示したい情報を配置します。

「書籍情報検索」としたボタンには ClearCollect関数を使ってコレクション(BookShelf として設定)に値をセットしています

ClearCollect(BookShelf,GoogleBooksAPI.GetBook(“ISBN:” & TextInput1.Text))

セットする値はそれぞれこんな感じに設定しました。

書籍タイトル

LookUp(LookUp(BookShelf,true,items).volumeInfo,true,volumeInfo).title

著者

LookUp(LookUp(LookUp(BookShelf,true,items).volumeInfo,true,volumeInfo).authors,true,Value)

出版日

Text(LookUp(LookUp(BookShelf,true,items).volumeInfo,true,volumeInfo).publishedDate,ShortDate)

表紙画像URL

LookUp(LookUp(BookShelf,true,items).volumeInfo,true,volumeInfo).imageLinks.thumbnail

 

見た目をごにょごにょした

アプリケーションの見た目ってすごく大事ですよね

アプリケーションの見た目はすごく大事です。
1日の1/3を過ごす仕事で使うアプリケーションなんだから、見た目にこだわらないと使う気になりません。

という訳で、PowerApps で ISBNコードをスキャンして、書籍情報を表示するまでの紹介でした。

まだスキャンしてSPOへの登録ぐらいしかできていませんが、将来的には蔵書検索、貸出返却のそれぞれのアプリを作って社内リリースしたいなと思っています。

それではみなさま良いお年を!

 

あ、そうそう。Facebookやオフラインの勉強会を中心に活動しているコミュニティ

Japan Office 365 Users Groups なのですが、Microsoft のブランディングに則って、近いうちにコミュニティ名を Japan Microsoft 365 Users Groups に変更しようと思ってます。

 

1 Comment for “PowerApps で蔵書管理(の最初の一歩)をやってみた”