PowerApps アプリのバージョン情報を表示したい
ふと更新情報を表示したくなった。ので、調べてみた。
調査開始
そのへんの情報はふわっと管理系コネクタで取れるのは知ってた。
appIDがあれば管理コネクタで情報取れるな・・・と・・・
↓
appIDはアプリ内から参照できたりはしないみたい。自分で設定するしかないか。
試した結果
Ver1.01みたいなのは取れない模様。
更新日時とかの情報はこんな感じで取れる。
使用コネクタ:PowerAppsforAppMakers
数式:
// 公開バージョンを保存した日時(発行した時間ではない)※
PowerAppsforAppMakers.GetApp("00000000-0000-0000-0000-000000000000").properties.appVersion
// 最終更新日時
PowerAppsforAppMakers.GetApp("00000000-0000-0000-0000-000000000000").properties.lastModifiedTime
※例えばアプリを修正して丸1日放置してから"発行"をした場合、発行した日ではなく修正を完了した日になる。
感想
自分のappIDくらい参照させて欲しいよね。と思った。
PowerApps ギャラリーのThisItem と Selected について
ギャラリーのThisItemとSelected、PowerApps特有のプロパティで引っかかりどころだと思います。
一応docsのページもありますけど、うーん。
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/functions/operators#thisitem-operator
ThisItem自体はフォームでも用いますが、ここではわかりやすくするためにギャラリーのThisItemにフォーカスすることにします。
ThisItemについて
ギャラリーはItemsプロパティにテーブルを指定してデータ ソースの複数のレコードを表示できますが、このレコード=Itemになります。
1行目の”Item”
2行目の”Item”
3行目の”Item”
といった感じでデータが詰まっているわけです。それぞれ自分を指してThisItemと表しています。
1行目が”自分のItem”といったら1行目のデータを表しますし、
3行目が”自分のItem”といえば、3行目のデータを表すわけです。
selectedについて
Selectedプロパティはそのまま、「そのギャラリーコントロールで選択された項目」を指すものです。
これはイベントではなく、最後にクリックしたものがずっと参照されています。
これは1行目が見ても2行目が見ても変わらないですね。
最後に選んだのが3行目なら、1行目だろうが2行目だろうが3行目だろうが
“最後に選んだのは3行目だ!”となって、3行目のデータを参照してくれるわけです。
このように、ThisItemとSelectedは用途として明確に異なっています。
こんがらがっている場合は実際に見てみると一目瞭然です。
実例
データソース
表示テキスト
結果
2行目のレコードを選択しているので、SelectedはすべてItem2を参照していますね。
あとがき
アプリで実現したいことや、実現方法によってはThisItemでもSelectedでも見た目上うまくいく場合があるかもしれません。ですが、どちらかといえばどっちを使うのが正しいかというのは意識できると、後々仕様変更されて泣きを見たりせず幸せになれると思います。
PR
Power Apps や Power Automate に関する技術支援を提供しています。
Power Apps / Power Automate 技術支援サービス | ZEE CitizenDevSupport
https://powerapps.zee-citizendevsupport.com/
PowerApps データソースのカラムの型変更にフォームを対応させる
設計もそこそこにPowerAppsでアプリを作っていると途中でデータソースに変更を加えたくなったりします。
その場合でも、フォームコントロールを利用しているケースでは少々の手間で対応することが可能です。
データソースのカラムの型変更にフォームを対応させる
カラムの型変更に対応する手順
・変更されたデータカードを削除する
・データソースを最新の状態にする
・データカードに変更された項目を追加する
カラムの追加に対応する手順
・データソースを最新の状態にする
・データカードに追加したい項目を追加する。
という感じで、簡単に対応することができます。
データソースの最新状態を取得する
リボンメニューの[ビュー]>[データソース]から、当該のデータソースに対して
[最新の情報に更新]を選択すると、PowerAppsでカラムの追加・変更を検出できます。
上記手順で最新状態の取得がうまくいかない場合、PowerApps(ブラウザ)を再読込してみると最新状態になるはずです。
ちなみにCommon Data Serviceの場合
Common Data Serviceをデータソースとした場合には、カラムの型を変更することはできないようになっています。カラムの追加は可能です。
あとがき
データソースに変更が加わるとおそらくエラーを吐くようになると思いますが、ぱぱっと直せそうです。
フォーム自体を作り直ししなくていいのは楽でいいですね。データカード単位では作り直しが必要になりますので、ちょっと注意ですね。
PowerApps Flowから値を取得する
PowerAppsコネクタの[PowerAppsに応答します]アクションを用いることで、Flowから簡単に値を取得することができます。
Flowの作成
まずはFlowから作成していきます。
トリガーはPowerAppsのやつ。
アクションは[PowerAppsに応答します]を選びます。
出力追加から、テキストや数値、フラグなどを選んで指定することができます。
今回は下記のように設定してみました。
テキスト型/name:前田
フラグ型/enabled:true
数値型/id:1
これでFlow側は完成です。
PowerAppsからFlowを呼び出す
次にPowerAppsからFlowを呼び出して値を取得してみます。
適当にボタンを作りまして、OnSelectにFlow呼び出し関数を記入します。
ボタンを選択して、[アクション] > [Flows] > [先程作ったFlow] と選びます。
関数の()を閉じるのを忘れないように。
これでFlowを呼べるようになりました。が、このままでは取ってきた値を保持してくれません。変数に入れましょう。
取得した値を変数に保持する
UpdateContext()関数を用いて画面内でのみ保持してくれるローカル変数を作成、代入することができます。
OnSelect.UpdateContext({locResponse:PowerApps応答で値を取得するテスト.Run()})
取得した値を利用する
上記のように取得した値は、こんな感じで使用することができます。
locResponse.id
locResponse.name
locResponse.enabled
以上のような感じでFlowから値を取得して、PowerAppsで利用することができます。
まとめ
今回は簡素な、固定値で試しましたがFlowで有用な処理をしたあとの様々な値をPowerAppsへ返して利用することができますので、利用の範囲は広いと思います。
PR
Power Apps や Power Automate に関する技術支援を提供しています。
Power Apps / Power Automate 技術支援サービス | ZEE CitizenDevSupport
https://powerapps.zee-citizendevsupport.com/
PowerApps PowerAppsを管理するPowerAppsアプリを作成する
PowerAppsのコネクタの中にはPowerAppsを管理するのに使えるものが用意されています。
※こちらは
Office 365 Advent Calendar 2018 - Adventar
23日目の記事です。
PowerAppsのコネクタの中にはPowerAppsを管理するのに使えるものが用意されています。
管理用コネクタ
以下の3つのコネクタで環境の管理や、アプリ、コネクタの情報などを扱うことができます。
PowerApps for Admins
PowerApps for App Makers
解説ページがあります
英語ですが、これらのコネクタについてざっと解説してあるページがあります。
Announcing new Admin and Maker Connectors for PowerApps and Flow
上記のページではなんと管理系のすべてのコネクタを使ったサンプルアプリが配布されております!
これがめちゃ使える!
これを使うと、引数に何を入れればいいんだろう?とかがさっと使い方がわかるのでおすすめですよ!
ダウンロードはここからできます。
ご自身の環境にインストールして試してみてください。
上記のコネクタ類を使うと、PowerApps を管理するPowerAppsアプリなんかも作れます。
管理用アプリをつくってみた
上記のアプリを参考にしてこんな感じで作ってみました。
ざっと機能を説明すると、
・テナントの全環境が表示されます。
・環境を選択すると、環境内のアプリが表示されます。
・アプリを選択すると、アプリの詳細へ移動します。
・アプリ詳細画面ではアプリ名、所有者や作成日、更新日などが確認できます。
・アプリで使用しているコネクタが表示されます。
・ここからアプリを開くことができます。
・アプリ所有者へメールを送ることができます。
・アプリを削除できます。
・タイトル、本文を入力してアプリの作成者へメールを送ることができます。
このように管理用のアプリを自分で作成することができます。
このアプリは下記にアップしてありますので、実際にご自身の環境に入れて実装がどうなってるかなど、是非参考にしてみてください。