三島正裕のOffice 365徹底活用コラムPower Apps編 「Power Appsでプリンタートナーの在庫管理をする」
目次
はじめに
こんにちは!クラウドビジネス担当の三島です。Office365徹底活用コラムPower Apps編ということで、今回はプリンタートナーの在庫管理アプリを作成してみたいと思います。
世の中ペーパーレス化が進んでいるとはいえ、印刷をする場面というのはまだまだたくさんありますよね。会議資料や図面の印刷、パンフレットやチラシなど、オフィスで働いている方であれば印刷をしないという日は無いという方もおられるかもしれませんね。さて、プリンターでよくあるトラブルと言えば、トナー切れだと思うのですが、在庫を切らさずに運用するのは手間ですよね。定期的に決まった量を補充するだけであれば楽なのですが、実際にはイベントなどで大量に印刷をかけたりして、急激に在庫が減るときもあるので油断は出来ません。なので、在庫が切れそうな少し前にだけ管理者にアラートが飛んでくる仕組みがあると便利だと思いませんか。
トナーの在庫管理で、交換した本数や補充した本数を何かしらの記録簿のようなもので管理されているところは多いと思います。今回はこれをアプリ化して、在庫数が指定数を下回ったときに管理者宛てにメールが送信される仕組みをPower Appsで作ってみたいと思います。
トナーの在庫情報を保存する場所を作成する。
トナーの在庫情報を保存するには何かしらデータベースのような仕組みが必要です。今回のアプリではこれをSharePointのリストで作成します。Office 365 のBusiness EssentialsやBusiness Premium、Enterprise(E1~E3)のライセンスがあればSharePointは利用出来ます。
最初にOffice 365 のホームを開きSharePointを起動します。続いてサイトを作成して「+新規」ボタンよりリストを選択します。
リスト名は「プリンタートナー在庫管理」とします。
リストに列を追加する
プリンタートナー在庫管理リストに必要な管理項目を列として追加します。列を追加するには、リストの設定画面より列の作成を選択します。列の作成画面では列名と列の種類を選択します。列名と種類については下図を参考にして下さい。下図には表示名と列名があるのがわかると思います。列を作成するときに列名を入力すると列名として設定されます。その後、作成した列名を修正すると、それは表示名として保存されます。
列名は基本半角英数字で登録します。その理由はこれを全角文字で登録してしまうと、Power Appsで表示をさせた際に列名が文字化けしてしまうことがあるからです。一方、表示名は全角文字でもそのまま表示されますので、わかりやすい文字で登録しても問題ありません。しかし、列名でしか設定出来ない関数がPower Apps側には所々ありますので、設定には注意をして下さい。
先頭行にある管理番号の元々の表示名はタイトルです。当アプリでは、これをリネームして管理番号としています。
リストを作成すると下図のようになります。リストが作成出来たら、ある程度のサンプルを入力しておくとPower Apps側でアプリを作成する際に楽になります。トナー列には数字をセットします。数字にはトナーの種類の意味を持たせており、それぞれ、「0:ブラック、1:シアン、2:マゼンタ、3:イエロー」としています。履歴に設定する数字は0が最新、1を履歴としています。アプリの一覧画面を開いたときに最新のデータのみが表示されるようにするためのフラグです。
Power Appsでアプリを作成する
Office 365 のホームに戻り、Power Appsを起動します。Power Appsのホームでは「キャンパスアプリを一から作成」を選択します。アプリ名を入力しますが、これは任意のアプリ名で問題ありません。当アプリではプリンタートナー在庫管理としています。形式は「電話」として下さい。作成ボタンを押してしばらく待つとアプリの編集画面が開きます。
アプリが作成されましたら、挿入メニューよりギャラリーを選択します。ギャラリーの種類は縦方向(空)を選択します。データソースはSharePointを指定し、先程リストを作成したサイトのURLを入力してテーブルを表示させます。リストは「プリンタートナー在庫管理」のみを選択します。
作成したばかりのギャラリーはサンプルが表示される設定になっています。ギャラリーを選択した状態で、画面左上にあるプロパティItemsの数式バーを編集します。CustomGallerySampleがセットされていますので、下図のように変更します。ベースはSharePointリストの「プリンタートナー在庫管理」です。これをFilter関数で履歴=0と設定されている最新のデータのみが表示されるように設定します。SortByColums関数を使うとデータが並び替えられて表示されます。当アプリでは管理番号をトナーで並び替えています。
続いて、ギャラリーの中にラベルを置いてリストの項目の内容を表示します。ギャラリーを作成すると青字で“「挿入」タブから項目を追加する」”と表示されていますのでクリックをしてください。続いてラベルを挿入するとギャラリーの中にラベルが作成されます。下図のように7つのラベルを追加してText関数の中身を変更して下さい。正しく設定出来ているとプリンタートナー在庫管理の内容がギャラリーに表示されます。トナーについてはトナー番号に基づいてSwitch関数でそれぞれのトナー名が表示されるように設定しています。トナーには、更にFill関数(塗りつぶしの色)、とColor関数(文字の色)も設定します。トナーの色に合った背景色をRGBA値で設定します。
トナー在庫の履歴追加画面を作成する
トナー在庫の履歴を追加するために空の画面(スクリーン)を追加します。新しい画面より空を選択します。Screen2が追加されましたらフォームより編集を選択します。その際にデータソースを選択するメニューが表示されますので、プリンタートナー在庫管理を選択します。
追加した編集フォームの内容を編集します。各項目のデフォルトの値を下図のように設定します。Gallery1.Selectedは一覧画面にあるGallery1から選択したデータの値を取得するための関数です。記入日に設定しているNow()関数を使用する現在日を取得します。購入数と使用数には初期値として0をセットします。在庫数は一覧画面で選択したトナーの在庫を初期表示し、購入数と使用数が入力されたら計算した結果を表示するようにしています。DataCardValue5とDataCardValue6はそれぞれ購入数と使用数の入力フォームを指しています。
キャンセルボタンと更新ボタンを設定する
編集フォームの下にキャンセルボタンと更新ボタンを設定します。キャンセルボタンのプロパティOnSelectにはボタンを押したときに動作する関数を設定します。ここでは、一覧画面(Screen1)に戻るための関数Navigateを設定しています。更新ボタンに設定するSubmitForm関数は入力フォームに入力された内容をリストに追加します。(設定によっては更新も可能ですが今回は割愛させて頂きます。)Patch関数では一覧画面で選択したデータの履歴に1をセットしています。こうすることで、一覧画面で選択されたデータが履歴となり、入力されたデータが最新情報として一覧に表示されます。データの登録、更新後は一覧画面に戻るようNavigate関数を設定しています。
ギャラリーに更新ボタンを設定する
一覧画面のギャラリーに更新ボタンを設定します。更新ボタンは挿入メニューからボタンを選択します。更新ボタンにはNavigate関数を設定してScreen2に移動するようにします。NewForm関数は指定したフォームを新規入力モードにすることが出来ます。ここでは、Screen2に設置した編集フォームを新規入力モードにするよう設定しています。
アラートメールを設定する
トナーの在庫が2以下になったときにアラートメールが管理者に送られるよう設定します。メールを送信出来るようにするには、データソースにメールを追加します。続いて、更新ボタンにIf文を追加して在庫が2以下の場合という条件を設定します。ここでフォーム内の在庫数を一度フォーム外のラベルZaikoCntに表示させていることに注意をして下さい。ボタンの動作に直接参照することが出来ませんでしたので、一度ラベルに表示をしてから、その値を取得してIf文の条件式に入れているということをしています。
アラートメールを送信するにはメール関数を使います。メール.SendMailと入力し、続いてカッコ内に送信先メール、タイトル、本文を設定します。プリンターとトナーはGalley1で選択したデータの情報を取得してセットしています。トナーは番号で取得していますのでSwitch関数でトナー名を設定することを忘れないでください。
アプリのレイアウトを整える
最後にアプリのレイアウトを整えます。下図に私の作成したアプリの作成例を載せておきますので、宜しければ参考にして下さい。追加したコンテンツとしては背景に写真を入れたタイトルの追加。プリンターの検索フォーム、ギャラリーのタイトル列です。編集フォームにある管理番号や機種名は入力の必要がありませんのでDisplayModeをViewに設定して編集不可にしてあります。
動作確認をする
アプリが完成しましたら動作確認をします。一覧画面でトナーの在庫情報を変更するデータを選択して更新ボタンを押下します。編集画面でトナーの購入数、または使用数を入力して更新
ボタンを押します。在庫数が2以下のときにメールが送信されていればOKです。
おわりに
プリンタートナーの在庫管理アプリ作成は如何だったでしょうか。実は今回のコラムを書いたきっかけが、年末に大量に印刷物を刷る機会があり、トナーの在庫数がとても気になることがあったからなのですが、Power Appsを使えば思いついたその日に管理アプリを作成することが出来ます。このアプリが業務改善に繋がるかどうかは試してみないとわからないのですが、時間をかけてコーディングしなくても、専用のアプリを購入しなくても、思いついたアイデアを直ぐに現場で試せるのがPower Appsの強みだと思います。ぜひ皆様もトライをしてみて下さい。
「Microsoft Power Apps」につきましてはディーアイエスサービス&ソリューションまでお気軽にお問い合わせください。
本コラムは2019年12月時点での情報を基に作成したものです。
三島正裕が登壇!オンデマンドウェビナー
Excelでまとめている、その商談記録。わずか10分でスマホアプリにしてみます!
どんなレイアウトでも大丈夫。フリーアドレス座席予約アプリを10分で作成します。
Dataverse をさらっと知りたい皆様へ。画像付きドキュメント管理アプリを10分で作成します。
https://www.cloudtimes.jp/dynamics365/resource/low-code-tool-dataverse-for-teams