"PowerApps" にカテゴリー登録されている7 投稿

[PowerApps] 事例 - SharePointリストで管理する受講者履歴

弊社では定期的に Office 365 および SharePoint 関連の研修を行っていますが、受講する方が過去にどういったコースを受講していただいたかなどを確認するために、「受講履歴」を SharePoint リストで管理しています。

従来は入力画面を InfoPath でカスタマイズして管理していたのですが、ここにきて Modern UI + PowerApps でのカスタマイズに変更してみました。これがなかなかいい具合です。

まず、カスタマイズした画面が下記の通りです(実データなので、もちろん、一部情報は伏せています)。

Attendance history 1

コースを受講していただくごとに情報登録しているのですが、画面をPowerApps でアレンジし、メールアドレスをもとに、同じリストから過去の履歴を Filter 関数で取得してデータテーブルに表示するようにしています。これでいつ、どのコースを受講いただいたのかが一目瞭然です。

新規にアイテムを登録する(受講履歴の新規登録)ときは、電子メールアドレスを入力後、[参照]ボタンをクリックすると、別で管理している"顧客データベース" リストから会社名と名前を自動取得できるようにしています。また受講したコース情報も選択肢から選べるようにしており、この情報もやはり別で管理している "コース情報" リストから取得するようにしています。ちなみに、[参照]ボタンはアイテムの新規登録や編集時のみ表示するように設定。

Attendance history 2

顧客データベースに格納しているアイテム数(エントリー数)が多いので、PowerAppsの Filter 関数を使うときに "委任" に気を付けなくてはいけませんが、そこをクリアし見た目をあまり凝りすぎなければ30分もあればある程度の見栄えで出来上がるレベルです。

とはいえ、最初に手を付けるときにはあれこれ調べながら「実装をどうしようか」などあれこれ吟味しながら業務の合間に作業したたため、ここまで来るのにそれなりに数日掛かってはいます。が、実装したい機能が決まれば、あとはスムーズです。

しっかし、InfoPath のころに比べると、データソースからのデータ取得や入力など速い!  InfoPath Form Services だと何かにつけて、サーバーサイド実行となり、ポストバックが多発発生していましたからね。クライアントサイドで動くメリットをとても感じますね。

 現在、PowerApps & Flow の入門者向け研修をオリジナル開発して実施していますが、色々と実際の業務で使ってみた事例をためて応用編となるワークショップをやりたいなぁなどと考えている今日この頃。。。まずはいろいろとアプリを作り貯めないと。。またお見せできるものを作ったら公開します。※最近追加されたリッチテキストエディターコントロールが、もうちょっとスムーズに動いてくれると、ネタがまだあるんだけどなぁ。

 


[PowerApps] モデル駆動型のアプリ開発の環境について

この春から PowerApps は「キャンバス型」アプリと「モデル駆動型(Model-Driven)」アプリの2種類が作成できるようになっています。キャンバス型というのが従来型であり、SharePoint リストフォームのカスタマイズなどはキャンバス型が基本です。

モデル駆動型アプリ開発についての詳細は下記を参照ください。

PowerApps でのモデル駆動型アプリの構築の概要 - PowerApps

PowerApps アプリで使うエンティティを作成して構成する手順について説明します。

モデル駆動型はCommon Data Service (CDS) を利用して柔軟なアプリ開発ができるのですが、運用環境で利用しようとするとOffice 365 付属プランだけでは利用できず、PowerApps Plan1/2 などのライセンスの追加購入が必要です。ちなみに、コミュニティプランにサインアップすれば、CDS もお試し利用できます。「PowerApps って何?」という方は海のものとも山のものともつかないところだと思いますので、まずはキャンバス型アプリ開発の基本を押さえたうえでモデル駆動型の学習に取り組むとよいでしょう。

さて、モデル駆動型で開発を始めようすると、説明手順には web.powerapps.com 上の左下からどちらのアプリを作るか選択するように書いてあります。しかし、このメニューが表示されないことがある。

2018-06-06_18-42-43

そもそも、PowerApps のコミュニティプランにサインアップして作成した環境もなぜか2つある。。。

2018-06-06_18-43-18

で、何が違うかといえば、モデル駆動型アプリが開発できるようになって以降に作成された「環境」を使っているかどうかがポイントですね。新たに環境を作成すると問題なく選択できます。が、既存の環境だと選択できないためその環境で CDS が利用できてもモデル駆動型が作成できないということですね。

ということで、モデル駆動型にチャレンジする場合はまずは追加料金の掛からない コミュニティプランを使うのが得策でしょう。Plan 2 のトライアルを使うという方法もありますが、その場合新規に作成する環境は組織の共有環境となるので、環境にアクセスできるユーザーの制御など細かいところまで確認しておく必要があります。

 

 

 

 


[PowerApps] 開発環境についての情報アップデート

 PowerApps の大幅アップデートが 2018年3月下旬にアナウンスされましたが、開発環境についても大幅な変更があるのでかいつまんでまとめておきます。

情報ソースは下記の PowerApps Blog です。 

PowerApps Studio for the Web is Generally Available for Production Use

We are pleased to announce that starting today PowerApps Studio for web is generally available for production use. The web studio is the premiere authoring experience for creating PowerApps and is the recommend way to build your apps.

 

PowerApps Studio for the Web が正式リリース

これまでPowerApps の開発ツールは次の2つありました。2018年4月18日現在も現状は同じです。

  • PowerApps Studio for Windows
  • PowerApps Studio for the Web (Web Studioと呼ぶこともある)

要するに Wind0ws デスクトップ版と Web版があったわけですが Web版は久しくプレビューとなっていました。これが2018年3月21日付けで 正式リリースとなったわけです。

今後の主流は Web Studio

現在、Web Studio の方が、 Windows デスクトップ版と比較すると機能と性能の両面を凌駕しました。そして、Windows 版の PowerApps が持っているアプリの編集機能は今後削除されます。つまり、単純にアプリの実行環境としてだけ利用することになります。

では、この機能がいつまで使えるのか?

2018年6月1日に PowerApps for Windows からは編集機能が削除される予定であるとのこと。

 ということで、Web版が今後の主流になります。Web版といっても特に何かインストールする必要はありません。Webブラウザーさえ利用できれば、アクセスできます。ですから、職場でも家でも、Mac または Windows PCがあれば利用できるということです。

 


[PowerApps] QnA Maker を使ったSharePoint の質疑応答ボット

 QnA Maker は Microsoft Azure のサービスの一つであり、手軽に AIを使ったボット作成ができます。

QnA Maker

Integrate Microsoft Cognitive Services to enable your bot to see, hear, interpret and interact in more human ways. QnA Maker integrates with other APIs and solutions seamlessly and at scale to be a know-it-all part of a bigger bot or great standalone.

PowerApps ではこの QnA Maker をノンコーディングで組み込むことができます。さらに、PowerApps で作成したアプリを SharePoint 上に埋め込んで利用することも可能。

ということで、蓄積している SharePoint に関する QA 情報を QnA Maker で学習させて、質疑応答させることなんて言うのも簡単です。

下記の動画が動作イメージです。ちなみに、元ネタは次の通りですが、現在は QnA Maker 用のコネクターが追加されているのでもう少しシンプルに作成できます。

https://powerapps.microsoft.com/en-us/blog/powerappsbot/

 弊社では、昨年から国内でいち早く PowerApps や Flow に関するオリジナル研修コースを開始していますが、どちらもどんどん進化していて、おもしろいですヨ。

PowerApps は何も SharePoint に特化したツールではなく、いろいな使い道への可能性を秘めています。

昨年は PowerApps  & Flow の入門編を作成したので、今年は応用編として学習コンテンツを用意していく予定です。お楽しみに!

 


[PowerApps] SharePoint リストデータをグループ化する (1)

PowerApps も3月末に大幅アップデートがあり、いよいよ使ってみようと思う方も多いと思います。弊社でも私が独自に作成したオリジナルコースで PowerApps や Flow を学べるようになっていますが、GroupBy関数について取り上げていなかったので、ブログで補足しておこうと思います。すでに受講いただいた方にとってはフォローアップ情報です。

SharePoint リストデータをグループ化して PowerApps 上に表示するには GroupBy関数を使うと便利です。

例えば次のようなリストがあるとします。

2018-04-03_12-43-31

まずこのSharePoint リストデータを 次のように PowerAppsに取り込みます。

次にボタンを配置し、クリックしたら コレクション が作成されるようにします。このためには、ボタンの OnSelect プロパティに次の式を書いておきます。ちなみに、ボタンの表示名は "データの取得" としています。

2018-04-03_12-38-30

この関数の意味を簡単に解説しましょう。

ClearCollect関数を使って "ProductList" というデータソースを作成します。このデータソースの内容は GroupBy関数を使って "CategoryName" 列でグループ化した SharePoint リスト(Products) です。その他の列は "Details" (名前は任意)という列に入れ子にします。

確認できたら、データテーブルコントロールにこのデータソースを追加してみましょう。商品区分だけが表示されるようにします。

 

では続いて商品区分の内訳を表示できるようもう一つデータテーブルを挿入しましょう。データテーブルの Items プロパティには次の式を書きます。

<先に追加したデータテーブル名>.Selected.Details

これにより、先に追加したデータテーブルの項目を選択するとその詳細がデータビューに表示されるようになります。

 出来上がったアプリの見栄えを整えれば次のように動作します。

まずは基本を紹介しました。PowerApps は Notes データベースの移行にも一部対応できるはずです。今回のように区分別で詳細を見たいというようなアプリも利用できるところがあるでしょう。

データテーブルは編集機能を持っていないため、今回作成したのはあくまでデータを簡易表示するためのビューアーです。ただし、実用アプリも、こうした機能群を組み合わせて応用していくことになります。ちなみに、取得するデータ量が多くなると委任可能な関数等を駆使する必要があります。またその辺は次回以降でご紹介します。