PowerAppsの使い方

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

PowerAppsでデータソースを操作する数式(関数)まとめ

PowerAppsでのデータ操作についてです。

データベースのレコードを変更するなどの操作ですね。

 

基本的にデータ操作はフォームコントロールを使用します。

このフォームは1件ずつのデータ操作が可能です。

 

これで事足りる場合はこの記事は読む必要ありません。

ここでは、もう少し複雑なことがしたい場合の助けになる情報があります。

例えば、

・フォームを利用しないでレコードを更新したい!

・1アクションでデータを複数件登録したい!

・リレーションのはられたレコードも同時に削除したい!

等の場合です。

 

コネクタでつないだデータソースはPowerAppsの関数でも操作することが可能です。

もちろんどのソースでも使用する関数、引数などは同じです。

 

※補足

 データソースとは:エクセルファイル、SharePointリスト、AzureSQLServer、オンプレミスデータ、CommonDataServiceなどを指します。他にもあります。

 

 

・データ操作がピンとこない方へ

多くのプログラムはデータを操作することが目的です。

データを表示したり、登録したり、変更したり、削除したり。

データの操作は上記の4種類のみです。上記ができれば、レコードをいじり放題です。

 

逆にできないと、かなりできることが少ないと思います。

アプリを作る上でとてつもなく重要な行為になります。

 

・実際の操作

以下のような関数をつかってデータソースのレコードを操作します。

()の中身はプログラムに馴染みのない方向けの表記ブレの吸収用です。

()の中は同じことを指してると思って大丈夫です。

(かえってわかりにくかったらすみません・・・)

 

レコードを登録する系関数(Insert/Create/Add/新規作成/追加などと呼ばれる行為)

Collect – コレクションを作成するか、データ ソースにデータを追加します。

 →Collect(DataSource,{金額:100,商品名:"バナナ"})のように使える。

  PowerApps的には全項目名&値を入れる必要はない。データソース側でブロックかかったら失敗するけど。

 

レコードを取得する系関数(Get/Read/Find/読み取りなどと呼ばれる行為)

LookUp – 1 つ以上の条件に基づいてテーブル内の 1 つのレコードを検索します。

 →条件に一致する1レコードを取得したい場合に使います。

Filter – 1 つ以上の条件に基づいてフィルター処理されたテーブルを返します。

 →複数件取得したい場合に使います。

Search – テーブル内で、いずれかの列に文字列が含まれているレコードを検索します。

 →そのまま検索に使う感じの関数です。複数件取得します。

  タイトルや商品名などで検索、といった場合に使えると思います。

 

レコードを編集する系関数(Update/Change/更新などと呼ばれる行為)

Update – データ ソースのレコードを置き換えます。

 →全件Updateする関数です。初期値を設定するときとかに使える?

  委任できないので注意。

UpdateIf – 条件に基づいてデータ ソース内のレコードのセットを変更します。

 →委任できないので注意。

 

レコードを削除する系関数(Remove/Delete/消去などと呼ばれる行為)

Remove – データ ソースから特定のレコードを削除します。

 →Remove(DataSource,ThisItem) といった感じで使える。

  委任できないので注意。

RemoveIf – 条件に基づいてデータ ソースからレコードを削除します。

 →自由に削除条件を設定して削除できます。

  金額がいくつ以下なら削除、登録日が1週間以上前なら削除、といった感じ。

  委任できないので注意。

 

その他

SubmitForm – フォーム コントロール内の項目をデータ ソースに保存します。

 →フォームを作成して登録または更新するやり方。

  当然ですが、フォームを設置しないと使えません。

  多分委任の問題は出ないはず。(試してない)

Patch – データ ソース内のレコードを変更または作成するか、データ ソースの外部でレコードをマージします。

 →多分委任できる。(試してない)

  見た感じ難易度高そうな関数です。リファレンス見てもよくわからない。

 

・使えそうで使えない関数

Clear – コレクションからすべてのデータを削除します。
ClearCollect – コレクションからすべてのデータを削除し、レコードのセットを追加します。

 →どちらもデータソースに対しては使用できません。

  同様のことがしたい場合はRemoveIf関数を使用します。

 

他のやり方

実は他にもやり方があります。

このページで紹介したのはPowerAppsの数式(関数)で操作するやり方でしたが、Flowからデータを操作することも可能です。場合によってはFlowを使用したほうが楽、またはFlowでないと取得できない、ということもあります。

 

まずはPowerAppsの関数で操作することを念頭に、あまりに複雑、難しい場合ようならFlowでなら楽か?と検討するのがいいと思います。

 

ここに載せた数式(関数)を含めたすべての数式が乗っているMS公式のリファレンスも合わせてご参照ください。

 

docs.microsoft.com

-蛇足-

このページにすべての数式が網羅されています。やりたいことが明確な場合はこちらを探してみることをおすすめします。普通のプログラマも全部の関数を暗記しているわけではありません。わからないことは都度調べて開発しています。

 

わからないことは自分で調べる癖を少しずつ付けていくことをおすすめします。最初はきついと思いますが・・・そのうち感覚がつかめてくると楽になるはず。

 

※いやこの記事全然わからん!という方がいらっしゃいましたらコメントか、ツイッターでご連絡ください。頑張ってわかりやすく書きます!お気軽にどうぞ。

わかりにくい!知りたいことが書いていない!記事に誤りがある!この記事イケてないな!
などありましたらご指摘いただけると幸いです。

コメントまたはTwitterの方までお願いします。