Power Apps関数関数解説

【Power Apps】SaveData関数、LoadData関数とは、使い方

Power Apps

SaveData関数とは

ローカル デバイスなどのアプリ ホストから、コレクションを保存します。

公式より引用

LoadData関数とは

ローカルデバイスなどのアプリホストから、コレクションを読み込みます。

公式より引用

構文

SaveData( コレクション, 名前 )
LoadData( コレクション, 名前 [, 存在_しない_ファイル_を無視する ])

コレクション:読み込む・保存するコレクションを指定します。グローバル変数はNGです。
名前:""(ダブルクォーテーション)で囲んで保存するストレージの名前を指定します。
存在_しない_ファイル_を無視する:ファイルが存在しない場合にエラーを返すかどうかを指定します。既定ではファイルが存在しなかった場合にエラーを表示する設定になっているので、表示させたくない場合にはtrueと入力します。

使い方

ローカルにデータを保存・読み込みすることが出来るようにする関数です。オンラインとオフラインが混在するような環境で使用するアプリで特に役立ちます。

また、オンライン・オフラインを識別するためにはConnection.Connectedを利用します。オンラインの場合はtrue、オフラインの場合はfalseを返すので、これを用いてデータソースをクラウドとローカルに分岐させます。

LoadData関数とSaveData関数の使用例をいくつか書いてみます。

オンラインの場合にはクラウドのデータソースから、オフラインの場合はローカルからコレクションに読み込む(App.OnStart推奨)

If(
    Connection.Connected,
    ClearCollect(Col,データソース),   //クラウドのデータでコレクションを宣言
    LoadData(Col,"LocalData")   //ローカルのデータでコレクションを宣言
)

オンラインの場合にはクラウドのデータソースに、オフラインの場合はローカルに新規データを保存する(ボタンのOnSelectに設定するイメージ)

If(
    Connection.Connected,
    Collect(データソース,{列:"値"}),    //データソースに保存
    Collect(ColUnsaved,{列:"値"});   //コレクションに保存
    SaveData(ColUnsaved,"UnsavedData")     //ローカルにコレクションを保存
)

オンラインに接続している時にオフライン時に保存したデータがあれば、アップロードする(App.OnStart)

LoadData(ColUnsaved,"UnsavedData"); //ローカルから保存していないデータを取得
If(
    Connection.Connected && CountRows(ColUnsaved)<>0,   //オンラインかつローカルに保存しているデータがあれば
    ForAll(
        ColUnsaved,
        Collect(データソース,{ 列:ThisRecord.列 })   //クラウドにデータを保存
    )
)

その他の使用例

Web版では使えないので注意

Web版ではローカル領域が無いのでSaveData関数、LoadData関数、ClearData関数を使用することが出来ません。

しかし、プレビュー版の下記機能をオンにすることで利用出来るようになります。

コメント

タイトルとURLをコピーしました