競合したサーバーとの同期を解決する
この記事では、サーバーとのモバイル同期の競合を解決する際に役立つ情報を提供します。
同期エラー テーブル
同期エラーが発生した場合、システムは自動的に Dataverse 内の同期エラーテーブルに新しいエントリを生成します。 このテーブルは以下の列で構成されています。
列名 | プロパティ | 例 |
---|---|---|
エラー時刻 | エラーが発生した時刻。 | 5/17/2024 7:16 AM |
エラー メッセージ | エラーの説明。 | Entity Account With Id = <RowId> Does Not Exist |
エラーの種類 | 競合やレコードが見つからないエラーなどのエラーのタイプ。 | レコードが見つからない |
レコード | 更新されたレコードの同期エラーが発生しました。 | Contoso |
担当者 | レコードを更新したユーザーです。 | John Doe |
Action | 同期するレコードに適用されるアクションです。 | 更新する |
アクション データ | アクションのペイロードを含む Json です。 | {"lastname":"Contoso2"} |
要求データ | クエリを含む Json です。 | {"lastname":"Contoso2","syncerror__regardingentityid":<syncerrorId>,"entitylogicalname":"account"} |
エラー コード | エラーのコードです。 | -2147015424 |
注意
ユーザーに割り当てられたロールが、同期エラー テーブルに対する読み取り権限を付与していることを確認します。 詳細情報: アクセスを管理するためのセキュリティ ロールを作成または編集する
同期エラーテーブルの使用方法に関する推奨事項
同期エラー テーブルは標準 Dataverse テーブルです。 同期エラーを管理するために、モデル駆動型アプリを作成することをお勧めします。
モデル駆動型アプリを実行すると、各ユーザーごとの同期エラーを確認できます。 同期エラー行を選択した場合は、コマンド バーから 変更を再試行 できます。
デバイス ステータス ページでの同期エラー
同期エラーは、デバイス ステータス ページにネイティブに表示されます。 デバイス ステータス ページは モデル駆動型アプリ ですぐに使用できますが、キャンバス アプリで設定する必要があります。 詳細については、オフライン テンプレートとオフライン ステータス アイコンの使用 を参照してください。
クラウド フローを使用して同期エラーに対処する
行が追加、変更、または削除されたときに Dataverse トリガーを使用して、Power Automateで自動クラウド フローを作成できます。 フローは自動的に 電子メールを送信 したり デバイスに通知を送信 したりできます。
注意
フロー内でユーザーのメールアドレスを取得するには、同期エラー行の Owner 列を使用して ID で行を取得する Dataverse アクションを追加します。
同期の競合
クライアントおよびサーバー間のデータに不一致がある場合は、競合エラーが発生しています。 既定では、ユーザーがオフライン モードで行った変更は、ユーザーがオンラインに戻ったときに自動的にサーバーに同期されます。
同期の競合を解決する方法
ユーザーがオフライン アプリのデータに変更を加えると、ネットワークが利用可能になるとすぐに、各列の更新が Dataverse にプッシュ バックされます。 各列の最後の更新は Dataverse に保存されるため、変更の競合によってこの同期が失敗することはありません。
サーバー側のプラグインと検証により、変更が無効になる場合があります。 これらの変更はローカルに戻され、同期エラー Dataverse テーブルにエラーが書き込まれます。
競合解決の設定
重要
競合解決設定はキャンバス アプリには適用されません。
オフライン中に行われた更新が頻繁に拒否される場合は、競合解決設定を既定の値に変更することを検討してください。
- Power Platform 管理センターにサインインします。
- ナビゲーション ペインで、環境 を選択します。
- 環境を選択します。
- コマンド バーで、設定 を選択します。
- 製品 > 機能 の順に選択します。
- モデル駆動型アプリの詳細なモバイル オフライン設定 セクションで、モバイル オフライン同期の競合検出を有効にする オプションをオフにします。
注意
このオプションをオンにすると (推奨されません)、サーバー上の更新によってクライアントの更新が適用されなくなる可能性があります。 競合エラーは手動で解決する必要があります。