Power Apps iconPower AppsことはじめPower Apps icon
【現場DX】署名&オフライン対応報告アプリ
Step 2 / 4

[機能] SaveData/LoadDataで一時的にデータを端末に保存する

オフライン時でもデータを失わないように、ローカルストレージに一時保存します。

Power Appsはオフライン環境下でも使用可能です。
オフラインで署名後、ペン入力のデータはローカル端末に保存します。
オンラインになった時、ローカル保存していたデータを一斉にデータベースへ保存することが可能です。

コレクションの仕組みと下記の関数によって実現します。

  • SaveData関数: コレクションを保存
  • LoadData関数: 保存されたデータをコレクションに読み込み

Caution: これらの関数はモバイル版やデスクトップ版のアプリのみで動作するため、テスト検証する際はブラウザからでは動作しません。

オフライン対応の準備

署名した日と保存する日を明確に区別する必要があるため、SharePointリストに「作成日」列を追加します。

  1. 列の追加 > 日付と時刻を選択し、名前を「作成日」にします。
  2. Power Apps側でデータ > 最新の状態に更新を行います。

Caution: SharePointリストには標準で「登録日時」や「更新日時」の列を持っていますが、これらはSharePointリストへの書き込みの時間(保存した時の日にち)が反映されるため、このステップでは採用されません。

オフラインの判定

現在のアプリがオンライン/オフラインを表示します。 Connection関数を使用し、ネットワーク接続の状態を表示します。

  1. HeaderContainerにテキストラベルを追加し、詳細設定 > Textに下記を入力します。
If(
    Connection.Connected,
    "🟢 オンライン",
    "🔴 オフライン"
)

保存処理の修正

1.保存ボタンのOnSelectを下記に変更します。

// コレクションにデータを追加
Collect(
    LocalSignatures, 
    {
        署名データ: PenInput1.Image,
        作成日: Now()
    }
);

// 端末のローカルストレージにコレクションを保存
SaveData(LocalSignatures, "OfflineSignatures");

Reset(PenInput1);
Notify("保存しました", NotificationType.Success)
  1. 左メニュー > データにLocalSignaturesが追加されたことを確認します。

動作確認

前述の通り、PCブラウザでは検証できないため、アプリを公開してリリースし、実機から行います。
実機をオフラインにし、アプリを実行します。

オフラインで実行

保存を実行しても、SharePointリストには保存されません。

オフラインで実行

Caution: SharePointリストに保存するのではなく、LocalSignatures(コレクション)に保存していることに注意。

広告