はじめに
ICTソリューション部の宮林です。今回は社内の営業担当者から『Excelでできている受発注管理の表をもっと使いやすくしたいんだけど…』という相談から、PowerAppsを用いてアプリを作成しました。ちょっとした工夫も凝らしながら作成しましたので、紹介させていただきます。
テーマ
・できるだけ最低限の機能で
・できるだけアクション数を少なく
・上記は工夫しつつ、要件は満たして
アプリ作成のポイント
・PowerAppsの自動作成の標準形式「新規作成画面」「一覧画面」「編集画面」を踏襲せず、一画面のみで全機能を完結
※Excelは、既知の通り、ファイルを開いてすぐにセルへ入力して編集・保存ができます。キャンバスアプリでは、標準形式でアプリを作成すると、必ず画面遷移を挟んでしまいます。それを嫌って、一画面完結、かつ、アプリ起動後にすぐに入力できる形にしました。
・元のExcel形式で見たい、という要望から、CSVデータ出力機能をPowerAutomateで補助して実装
・新規作成は通常、一から入力をしていかなくてはなりませんが、選択したデータを元にした「コピー新規作成」機能を実装
・ボタン名やアイコンは、最低限のボタン名や分かりやすいアイコンのみで構成し、直観的に操作できるように
アプリ画面
アプリ作成手順
①SharePointリストの作成
お約束ですが、今回ベースとなるデータベースをSPOとして作成します。上記画面通りになりますが、「受注番号」から始まり、必要な項目を作成しています。
②アプリ画面の作成
次に、アプリ画面を作成していきました。要件をもとに、なるべく見やすい配置を考慮しました。
・画面の左側1/3に、データ一覧を配置
・画面の右側2/3に、入力項目を順に配置(入力項目は単純に並べてもらってよい、という要件)
・画面上側に、アプリ名と各アイコン・ボタンを配置
③各レイアウトに機能等を実装
・画面左側の一覧は、選択すると、選択された部分の色が変わります。
・一覧については、「日付」「受注番号」順にソートしてあります。(要件)
・画面右側の明細は、選択されたデータに切り替わります。また、今回のポイントの一つである「すぐに入力」が可能となっています。
・画面上部のアイコンとボタンは、左から・・・
1.最新状態に更新
2.CSVファイルをSharePointの指定のフォルダに出力
3.新規作成モードに切り替え(後述)
4.選択したデータをコピーしての新規作成モードに切り替え(後述)
5.作成・修正したデータを保存
6.閉じる
※新規作成モード
「新規作成」ボタンを押下すると、新規作成モードになります。この時、左側の一覧は選択できないように制御しています。「新規作成」ボタンの左に現れたアイコンは「戻る」アイコンです。新規作成モードの場合、「コピー新規」機能は使用できないよう非表示になります。
※コピーして新規作成モード
「コピー新規」ボタンを押下すると、その時に選択されていた各項目の値をコピーして新規作成することができます。デフォルトでそういった機能(関数等)はないため、各項目の値を一度変数に保存して展開しなおすしかないのでは?と思いながらも、何かないかと、ネットサーフィンして調べてみました。某MVP様が同様の方法を紹介していたので、自分の考え方で合ってるじゃない!と、少しニヤリとしました(笑)
④CSV出力機能を実装
要件で、全データを一括出力して欲しいという事でしたので、そちらの機能をPowerAutomateにて実装しました。
PowerAppsとの連携を取り、SPOの取得を行います。
次に、JSONの解析で、項目と型などを定義します。
続いて、CSVテーブルの作成で各項目を入れ込みしていきます。
上記を元に、CSVファイルを作成して指定のSharePointライブラリに保存します。
最後に、応答のところで、戻り値がOKだった場合の制御をし、
メッセージを出すよう、PowerApps側で実装を入れました。
終わりに
今回は社内ツールの改善という事もありましたが、要件をもとに色々と工夫をした形でアプリを作成する機会を持てて、いい勉強になりました。最低限の機能なので、ここからフィルターアイコンでより詳細なフィルター条件を設定できるようにしたりするなど、より使いやすく拡張することもできます。
また、今までExcelで管理していたような資料をアプリ化するためのベースのアプリを作成できた事も良かったと思います。当アプリをベースにして、入力項目の変更や連携SPOとCSVの出力先の変更をするだけで、別の管理表をアプリ化することもできると思います。
【お知らせ】 Power Platform コンサルティングサービスのご提供を開始いたしました。
本サービスはPower Platform(主にPower Apps、Power Automate)をご利用のお客様において、開発時や運用時のお困りごとに対し、チャットやTV会議を用いてのQA対応やアドバイス、サンプルコードのご提供などの業務サポートを行い、お客様のDX化推進業務を強くサポートするサービスとなります。
導入事例
今回ご紹介したアプリや本ブログにご興味をお持ちになられましたら、技術支援や同様のカスタマイズ開発など、各種ご支援させていただきますので、お気軽に「お問い合わせフォーム」よりお問い合わせください。
今後も自社で開発したお役立ちアプリや技術支援を行ったアプリのご紹介など、定期的に更新を行ってまいります。