【現場DX】署名&オフライン対応報告アプリ
Step 3 / 4
[連携] オンライン復帰時に未送信データを一括アップロードする
ネットワークに接続された状態で、コレクションに保存されたデータを送信します。
オフラインデータの復帰
オフラインで保存した署名データを、アプリに読み込ませる必要があります。
- ツリービューのAppを選択し、詳細設定 > OnStartに下記を入力します。
LoadData(LocalSignatures, "OfflineSignatures", true)
Caution: "OfflineSignatures"は、保存(
SaveData関数)で使用した名前と同じにする必要があります。
オフラインデータの保存(同期)
アプリへのデータ読み込みが完了後、SharePointリストに保存します。
- HeaderContainerにボタンを追加し、テキストを「同期」にします。
- 同期ボタンのWidthを
Parent.Width / 3 - 20、RadiusBottomLeft~TopRightを50にします。 - 詳細設定 > OnSelectに下記の式を入力します。
If(
Connection.Connected && CountRows(LocalSignatures) > 0,
ForAll(
LocalSignatures,
Patch(
'署名サンプルリスト',
Defaults('署名サンプルリスト'),
{
署名データ: 署名データ,
作成日: 作成日
}
)
);
Clear(LocalSignatures);
SaveData(LocalSignatures, "OfflineSignatures");
Notify("すべてのデータを同期しました", NotificationType.Success)
)
CountRows関数を使い、コレクション内のレコード数をチェックします。
これにより、レコードがない場合(オフラインで署名していない場合)の同期エラーを避けます。
オフライン環境下での署名は、複数回の発生が予想されます。
そのため、ForAll関数を使い、複数あるコレクションに対し、Patch関数をそれぞれ実行します。
Clear関数を使い、コレクション(ローカル保存)を全て削除します。
動作確認
前のステップで保存した署名データを同期します。

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

広告