三島正裕のMicrosoft 365徹底活用コラムPower Apps編「Power Apps で顧客マスタを作成しよう!データの結合について考えてみる」

  • 2020/4/15

こんにちは!クラウドビジネス担当の三島です。Microsoft 365徹底活用コラムPower Apps編ということで、今回は顧客マスタの作り方について解説をしたいと思います。業務改善に役立つアプリを作ったのなら、出来る限り多くの方に使ってもらいたいですよね。利用者が多くなればなるほど入力されるデータ量も多くなり、貯められたデータは加工や分析をすることにより、更なる業務改善に役立てることが出来るようになります。ところが、入力されるデータ量が増えれば増えるほど悩ましい問題も発生します。それがデータの揺らぎです。

1.アプリのユーザーが増えるほど入力データの揺らぎは多くなる

例えば下図のように商品予約をするアプリをPower Appsで作ったとします。受付スタッフはお客様から頂いた予約内容をもとにアプリに入力作業を行います。入力フォームにはお客様名と商品名があるのですが、入力された結果を見てみましょう。まず、お客様名を見てみると最初に「株式会社〇〇商店」がありますよね。その下を見てみると「〇〇商店」というのもあります。その更に下を見てみると「○○」というのもあれば「株式会社〇〇」というのもあります。登録された会社名はそれぞれ異なるのですが、実はこれらは全て「同じ会社」なのです。

登録された会社名や商品名が異なっていても、業務に差し支えないのであれば大きな問題ではありませんが、データを集計して分析したいとなると「言葉の揺らぎ」は大問題です。言葉の揺らぎ問題は、顧客マスタや商品マスタを作成しておいて、入力時にはマスタから名称を登録してもらうようにすれば解決します。

2.データとマスタを分けて解決する

下図にデータとマスタを分けたものを用意しました。顧客マスタには顧客番号と顧客名、商品マスタには商品番号と商品名、単価を列に設けています。ユーザーが入力するデータには顧客名や商品名の代わりに顧客番号と商品番号を列に設けています。マスタとデータはそれぞれの番号で関係が結ばれており、登録時には名称ではなく番号だけが登録されるようにします。このようにすることで、入力をするユーザーが異なっても名称の揺らぎは発生しませんし、単価等の付随する情報の入力ミスもなくすことが出来ます。アプリの運用途中で名称が変わったとしても、修正する箇所はマスタの名称だけですので、分析時にデータ自体を加工する必要がありません。注意としては、商品単価のように入力した時点の情報が必要な項目については、データ側に入力時の値を保持しておく仕組みが必要です。

3.マスタからデータ入力をする仕組みを作る

さて、マスタからデータ入力をする仕組みをPower Apps で作成するにはどのようにしたら良いでしょうか。今回は、私が良く使う最も簡単な仕組みを、「顧客マスタ選択メニューの作り方」を通して紹介させて頂きたいと思います。

最初に、スクリーンを開いたときに実行されるOnVisibleというパラメータに2つの変数をセットします。一つ目が“KokyakuWindow”。今回はマスタの選択メニューを画面に表示しますが、この表示をコントロールするのがこの変数の役目です。0が非表示、1が表示となります。二つ目が”KokyakuNo”。選択メニューで選択した顧客番号を一時保存するのがこの変数の役割です。変数を作成するには下図を参考にSet関数を設定してみて下さいね。

続いて顧客マスタの選択メニューを表示するためのアイコンをフォームに置きます。アイコンを押した時のアクションを起こすパラメータOnSelectに変数“KokyakuWindow“に1をセットするようSet関数を設定します。

顧客マスタから顧客を選択するメニューを作成します。メニューは入力フォームの上に直接作成します。四角形のアイコンを挿入し、半透明の黒で塗りつぶします。この上にギャラリーを置いて顧客マスタを表示させます。ギャラリー内にラベルを置いて、ラベルを押した時のアクションを設定します。プロパティOnSelectに、選択した顧客番号(ThisItem.顧客番号)を変数”KokyakuNo”にセットするようにSet関数を設定します。ラベル押したと同時に選択メニューが閉じるよう、”KokyakuWindow”に0をセットするSet関数も併せて設定します。

顧客マスタ選択メニューは変数”KokyakuWindow”が1の時のみ表示するよう、選択メニューのコンテンツ全てのプロパティVisibleにIf文で条件を設定します。

「入力フォーム:顧客番号」には顧客名が表示されるよう、変数”KokyakuNo”とイコールとなるデータを顧客マスタから呼び出します。呼び出しにはLookUp関数を使用します。「カード:顧客番号」のプロパティUpdateには変数”KokyakuNo”をセットします。これでデータ登録時には顧客番号列に選択した顧客番号が保存されます。

下図が実行結果ですが、列“顧客番号”と“商品番号”に名称ではなく、それぞれの番号がセットされているのがわかります。

4.マスタとデータを結合してコレクションにする

ExcelやSharePointでデータソースを作成した場合、マスタとデータが分かれて保存されていると困ることがありますよね。それはマスタとデータをどうやってつなぎ合わせるかです。Excel上で直接加工することも出来るのですが、Power Appsの関数を組み合わせれば1アクションでつなぐことが出来ます。下図に方法を書かせて頂きました。

ここで行っていることは、元の予約データにAddColumnsで顧客名という新しい列を追加し、LookUpで予約データの顧客番号に紐づく顧客名を顧客マスタから引っ張ってきています。これをClearCollectで”結合した予約データ”という新しいコレクションに書き込んでいます。ここまで出来れば、CSV等で出力する仕組みを組み合わせることでデータ分析に利活用することが出来るはずです。

Power AppsからのCSVデータの出力方法は下記リンクを参考にして下さい。

Office365コラムPowerApps編「PowerAppsでCSVデータを出力する(https://www.si-jirei.jp/2019/11/05/office365%e3%82%b3%e3%83%a9%e3%83%a0powerapps-3/)

実行すると下図のようなコレクションが作成されます。実行結果をギャラリーで表示させていますが、予約データに顧客名が結合されているのがわかると思います。

5.おわりに

今まで非開発者だった方がPower Appsでアプリ開発をはじめたとき、データの結合は悩むポイントではないかなと思います。マスタからデータを選択する仕組みは、多くの場面で使用する機会があると思いますので、これからアプリ開発を始められる方の参考になれば嬉しく思います。

それでは次回もお楽しみに。

※PowerAppsについては以下をご覧ください。
https://www.si-jirei.jp/office365/powerapps/
※業務改善に関してのお問い合わせは以下よりお願いします。

お問い合わせ

以下のお問い合わせフォームからお申し付けいただくか、以下宛にご連絡ください。

ディーアイエスソリューション株式会社
Mail:dsol@si-jirei.jp  

送信

Print Friendly, PDF & Email

Related post

更新情報

更新情報

ログインステータス

Return Top