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

[連携] オンライン復帰時に未送信データを一括アップロードする

ネットワークに接続された状態で、コレクションに保存されたデータを送信します。

オフラインデータの復帰

オフラインで保存した署名データを、アプリに読み込ませる必要があります。

  1. ツリービューのAppを選択し、詳細設定 > OnStartに下記を入力します。
LoadData(LocalSignatures, "OfflineSignatures", true)

Caution: "OfflineSignatures"は、保存(SaveData関数)で使用した名前と同じにする必要があります。

オフラインデータの保存(同期)

アプリへのデータ読み込みが完了後、SharePointリストに保存します。

  1. HeaderContainerにボタンを追加し、テキストを「同期」にします。
  2. 同期ボタンのWidthをParent.Width / 3 - 20、RadiusBottomLeft~TopRightを50にします。
  3. 詳細設定 > OnSelectに下記の式を入力します。
If(
    Connection.Connected && CountRows(LocalSignatures) > 0,
    ForAll(
        LocalSignatures,
        Patch(
            '署名サンプルリスト',
            Defaults('署名サンプルリスト'),
            {
                署名データ: 署名データ,
                作成日: 作成日
            }
        )
    );
    Clear(LocalSignatures);
    SaveData(LocalSignatures, "OfflineSignatures");
    Notify("すべてのデータを同期しました", NotificationType.Success)
)

CountRows関数を使い、コレクション内のレコード数をチェックします。
これにより、レコードがない場合(オフラインで署名していない場合)の同期エラーを避けます。

オフライン環境下での署名は、複数回の発生が予想されます。
そのため、ForAll関数を使い、複数あるコレクションに対し、Patch関数をそれぞれ実行します。

Clear関数を使い、コレクション(ローカル保存)を全て削除します。

動作確認

前のステップで保存した署名データを同期します。

オフラインで作成した署名データの同期

SharePointリストにデータが反映されたことを確認します。

オフラインデータの反映

広告