Power Appsの使い方

Power AppsとPower Automateの使い方やできることがわかるブログを目指しています。

Power Apps アプリ起動時にパラメータを送る。受け取る。

アプリ起動用URLにパラメータを設定することで、アプリに値を送ることができます。

 

パラメータを渡す

パラメータは?ID=123のようなかたちで渡すことができます。

 

例:

[起動用URL]?ID=123

 

複数のパラメータを渡す

複数パラメータを渡す場合は、&でつなげます。?ID=123&Value=ABCのようになります。

 

[起動用URL]?ID=123&Value=ABC

 

パラメータを受け取る

受け取るには、Param()関数で取得します。

 

例:

Param("ID")

 

グローバル変数で保持する場合:

Set(_id, Param("ID"));

 

参考URL

Param()

https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/functions/function-param

Power Apps タイマーコントロールが挿入できないんだけど!?

タイマー?そんなの無くね?という方。

 

挿入 > 入力 のパネルはスクロールできます。

下にスクロールしてみてください。

 

十 
Power Apps 
フ ァ イ 丿 し ホ - ム 
ロ 新 し い 画 面 、 / 
D し 一 ヨ 10n 
ツ リ ー ビ ュ ー 
刄 検 索 
日 ] App 
、 ′ ロ Screenl 
ー の Timerl 
ピ ュ ー 
挿 入 
Z ラ ベ 丿 し 
ア ク シ ョ ン 
ボ タ ン 国 テ キ ス ト 、 ・ 
入 力 v ギ ャ ラ リ ー 
69a ロ 日 付 の 選 択 
團 デ ー タ テ ー プ ル 
フ ォ ー 
ム 、 ノ 
尹 
X 
国 
リ ス ト ホ ッ ク ス 
ロ 
チ ェ ッ ク ボ ッ ク ス 
◎ ラ ノ オ 
切 っ 替 え 
← ス つ イ タ ー 
・ タ イ マ 
Forms pro ア ン ケ ー ト ( プ レ . 
リ ッ チ テ キ ス ト エ デ イ タ ー

 

スライダーとか、タイマーとかが出てきます。

 

 

macユーザーだとスクロールバーが出なく、ハンズオンとかで「タイマー無い!?」という方がいらっしゃったので記事にしてみました。

Power Apps ギャラリーコントロール上の変更を都度Collectionへ反映させる

Collectionをデータソースとしているギャラリーにテキストコントロールなどを設置して、直接値を書き換える方法について。

 

やり方

ギャラリーでリスト上に表示したCollectionに対して都度更新したい場合、以下のようにコントロールOnChangeなどでPatch()処理を行います。

 

TextInput1.OnChange:

Patch(colItems,ThisItem,{Value1:Value(TextInput1.Text)})

 

OnChangeなどに仕込むことで、変更を半リアルタイムで反映させることができます。

動的に表示したい数値などがある場合に有効です。合計値とか。

 

 

必要がないのであればリアルタイムでの反映は処理速度に影響がでそうなので適切なタイミングで変更を反映するようにしてください。

 

サンプルで使用したCollection

ClearCollect(colItems,{Value1:0,Value2:0},{Value1:0,Value2:0},{Value1:0,Value2:0})

 

Power Apps セッションがタイムアウトしてしまう場合の対処法

Power Appsでサイネージを作ろうと思ったんですが、放置しているとセッションがタイムアウトしてアプリが止まってしまう。

 

どうしたらいいか?

定期的にブラウザを更新するとタイムアウトしないみたいです。

 

案1 Chrome拡張機能で定期的に更新する

ブラウザに自動更新の拡張機能を入れて、リフレッシュさせる。

これでセッションは切れないはず。

 

2 タイマー+Launch()する

一定時間ごとにLaunch()して新しいアプリを開いてしまう。開いてたやつはExit()しておく。

ただ、残念ながら別タブで開いてしまうためあまりよろしくない。

 

一長一短ありますが上記のどちらかで対応しましょう。

Power Automate x MSGraphでTeamsのチームにメンバーを追加する

必要なアクセス許可

今回必要なアクセス許可の種類は以下です。

GroupMember.ReadWrite.All

事前にアクセス許可を設定しておきましょう。

 

Teamsのチームに追加する

下記のサンプルのようにするとチームに追加することができます。

 

チームへ追加 サンプル

{

    "requests": [

      {

        "id"1,

        "url""/groups/{GroupId}/members/$ref",

        "method""POST",

        "headers": {

          "Content-Type""application/json"

        },

        "body": {

          "@@odata.id""https://graph.microsoft.com/v1.0/directoryObjects/{UserId}"

        }

      }

    ]

}

 

f:id:botherntu:20200112084121p:plain

 

チームへ追加 パラメータの解説

url内のidGroupIdを指定します。{}は不要です。

body内のidUserIdを指定します。{}は不要です。

 

ここまででチームへ追加することができます。が・・・

 

Docs参考にしてもできない?

Docsを参考にしてもうまくいきません。@付きパラメータがエラーを吐いてしまうためです。

@@にすると解決します。(サンプルでは解決済み)

 

実行するとOffice365Groupに追加される

上記を実行すると、Azure ADでグループに追加できたのを確認できます。

 

Teams反映には時間がかかる

ただ、すぐにはTeamsには反映されません。反映には最大2時間かかるようです。

ご注意ください。

 

参考URL

グループにメンバーを追加する リファレンス

https://docs.microsoft.com/ja-jp/graph/api/group-post-members?view=graph-rest-1.0&tabs=http

 

Office 365 グループおよび Microsoft Teams

https://docs.microsoft.com/ja-jp/microsoftteams/office-365-groups#group-membership

 

MS Flow doesn't allow adding @ sign in the body of HTTP Action

http://www.suhail.cloud/2018/03/ms-flow-doesnt-allow-adding-sign-in.html

Power Apps や Power Automate に関する仕事のご依頼は下記ページからお問い合わせください。
ZEE CitizenDevSupport