業務改善と標準化を同時に実現:MS 365業務システム開発

【PoweApps】コレクションとCollect関数の基本と使い方(ClearCollect、Clear、LookUp関数)

    
【PoweApps】コレクションとCollect関数の基本と使い方(ClearCollect、Clear、LookUp関数)
\ この記事を共有 /
【PoweApps】コレクションとCollect関数の基本と使い方(Cl...

この記事ではPoweApps(MSパワーアップス)のアプリ内のメモリに一時的にデータを保存できるコレクションの基本と使用例、そしてそれに必要なCollect関数の使い方について実演で説明しています。

(動画時間:5:54)

初級編:「マイクロソフトPowerApps【コントロールと関数 完全ガイド】」
Udemyオンラインコースを作りました!

⇒半額になる「ディスカウントリンクページ」へ

コレクションとは?コレクションの使用例

こんにちは、リーンシグマ、ブラックベルトのマイク根上です。
業務改善コンサルをしています。

PowerAppsでは外部のデータベースにつながり
データの取得や変更が簡単に出来ますが、
それを高頻度でやるとちょっと動作が遅く感じてしまいます。

ですので、その代わりにアプリ内のメモリに一時的にデータベースを作り、
データの追加や変更をして最後に完成したデータを
外部のデータベースに保存する方法にするとユーザーの操作感が格段に上がります。

その場所をコレクションと呼びます。
他のコンピュータ言語で言う配列の様な働きをします。

コレクションの活用例

しかし複数のユーザーがいる時は注意が必要です。
一人のユーザーがその様にコレクションを使っている間に、
他のユーザーがソースデータを書き変えるとデータの整合性がとれません。
その可能性を踏まえてアプリ設計をする必要が有ります。

他の使い方ではアプリ起動直後に外部データをコレクションに全て保存して
それを参照する様にするとオフラインのアプリを作る事も可能です。

また複数のコレクションを使う事でデータの加工や集計をする事も出来ます。

コレクションの活用例2

コレクションの作り方:Collect関数

それではコレクションを実際に使ってみましょう。
コレクションにデータを入れるところからやります。

新規のコレクションの作成やデータの追加をするにはCollect関数を使います。

ボタンを一つ挿入し、OnSelect属性に「Collect(」と入れると
必要な構文の説明が上に出てきます。
最初にCollectionと書いてありますね。
これから作るコレクションの名前を入れるのです。

何でも良いのですが、ここでは「MyCol」とします。

Collect関数の構文

カンマを入れて次が「Item」です。
後で説明しますが、このように「{あいさつ:”こんにちは”}」と入れます。

プレビューにしてそのボタンをクリックすると
さっきのCollect関数が起動します。
クリックしましたが何が変ったのでしょうか?

コレクションの確認の仕方:「ビュー」⇒「コレクション」

コレクションの状態を見る方法があります。
メニューから「ビュー」「コレクション」でコレクションの一覧が見えます。
そして僕の作ったMyColのコレクションの中に
「あいさつ」という列に「こんにちは」が入っているのが分かります。

コレクションの出力例

さっきの数式「{あいさつ:”こんにちは”}」の意味は何でしょうか?
PowerAppsではこの波カッコの書き方はよく使います。
結果から分かりますが、「あいさつ」という列に
「こんにちは」の文字データが代入されたのです。

左側に列名を、代入の記号は他のコンピュータ言語ではよく「=(イコール)」が使われますが、
PowerAppsでは「:(コロン)」です。

そして右側に入れたいデータを書きます。
今回は文字なのでダブルクォーテーションが要ります。
数値だったらダブルクォーテーションは要りません。

もう一つやってみると、「あいさつ」の列に「おはよう」を入れましょう。
「Collect(MyCol,{あいさつ:”おはよう”}」

またプレビューにしてボタンを押して
(Altキーを押しながらボタンを押してもいいです。)、
コレクションの状態を見ると、「おはよう」が追加されています。

次にカンマを入れてから「誰に」という列を加えて、「友達」としました。
「Collect(MyCol,{あいさつ:”おはよう”,誰に:”友達”})」

結果を見ると新しく「誰に」列が出来て、
その列に「友達」というデータが追加されました。

コレクションの出力例2

皆さんもこの様にご自分で実際にやってみる事が習得する早道です。

LookUp、ClearCollectとClear関数

次にコレクションの情報を使って見ましょう。
例えばラベルを一つ挿入して、Text属性に
「LookUp(MyCol,誰に=”友達”,あいさつ)」
と入れると「おはよう」が出てきました。

この数式の意味はMyColコレクションの「誰に」列の中で
「友達」というデータを探して
そのレコードの「あいさつ」列のデータを表示しなさい
という意味です。

LookUp関数の意味

Collect関数はどんどんデータを追加していきます。
しかし、たまにコレクションを空にしてから
レコードを追加したい時もあります。
その時はClearCollect関数を使います。

さっきの数式にClearをつけてやってみると、
「ClearCollect(MyCol,{あいさつ:”おはよう”,誰に:”友達”})」
コレクションが初期化されてレコードが追加されました。
これがClearCollect関数の働きです。

Collectを取ってClear関数にするとその中にMyColだけ入れて「Clear(MyCol)」、
これでそのコレクションを空に出来ます。

テーブルを丸ごとコレクションに入れる

次に外部の一つのテーブルを丸ごとコレクションに入れましょう。
Collect関数でMyCol2というコレクションを作ります。
あらかじめ「Tbl_ProductMaster」という外部データソースを用意しておきました。

ボタンのOnSelect属性に「Collect(MyCOl2,Tbl_ProductMaster)」と入れて、
プレビューにしてそのボタンを押し、
コレクションの状態を見ると、丸ごとデータが入ったのが分かります。

最後に編集したコレクションのデータを
外部のデータソースに戻したいですね。さっきの逆で
「Collect(Tbl_ProductMaster,MyCOl2)」
としても残念ながらこれにはCollect関数は使えません。
これについては別の動画でご説明します。

今日はPowerAppsのコレクションとCollect関数について話しました。

<<マイクロソフト公式ページ:Collect関数>>
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/functions/function-clear-collect-clearcollect

<<マイクロソフト公式ページ:コレクションの作成と更新>>
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/create-update-collection

初級編:「マイクロソフトPowerApps【コントロールと関数 完全ガイド】」
Udemyオンラインコースを作りました!

⇒半額になる「ディスカウントリンクページ」へ

「こちらの記事も読まれてます。」