次の方法で共有


"一貫性のない検証データが原因で、検証がバックグラウンドで再起動されました" エラー

この記事は、同期保存イベントの制限によって、Microsoft Dynamics 365 Field Serviceフォームでエラー メッセージが発生する問題を解決するのに役立ちます。

現象

フォーム上の特定のフィールドが変更されると、Dynamics 365 Field Service はパターンをAsyncJobTracker使用して関連レコードを取得およびキャッシュします。 キャッシュされたレコードは、イベント中の検証に OnSave 使用されます。 同期保存イベントの制限により、システムは非同期呼び出しを待機しません。 Dynamics 365 Field Service フォームには、次のエラー メッセージが表示されます。

検証データが一貫性がないため、バックグラウンドで検証が再開されました。 しばらくしてからやり直してください。

原因

Dynamics 365 Field Service には、関連エンティティからデータを取得する必要がある検証があります。 ただし、制限のため、すべての非同期呼び出しが完了するまで保存をブロックすることはできません。

このパターンは AsyncJobTracker 、変更されたオフライン レコードが検証され、サーバーに同期できることを確認するために、オフライン モードでのみ有効になります。

キャッシュされたレコードが現在の参照フィールドと一致しない場合は、エラー メッセージが表示されます。

解決方法

複数のシナリオでこの問題が発生する可能性があります。 解決策はシナリオによって異なります。

  • シナリオ 1: ユーザーはレコードにアクセスできません。 たとえば、エンティティがオフライン プロファイルに含まれていない場合、またはユーザーにレコードへのアクセス許可がない場合です。

    この問題を解決するには、エンティティがオフライン プロファイル フィルターに追加され、ユーザーにレコードにアクセスする権限を持つセキュリティ ロールが付与されていることを確認します。

  • シナリオ 2: カスタマイズでは、フィールドを更新するための JavaScript ロジックが導入されていますが、これらの更新ではイベントはトリガー OnChange されません。

    この問題を解決するには、カスタム JavaScript を使用してルックアップ フィールドを更新するときに fireOnChange 属性を使用します。

    必要に応じて、 関数を setTimeout 使用して呼び出しを遅延させ、検証が完了するまでの時間を許可します。

  • シナリオ 3: モバイル アプリが既定でオフラインになっていないシナリオでは、ユーザーがオンライン モードでフォームを開く可能性があります。 その後、フォームがまだ開いている間はオフラインになります。 は AsyncJobTracker 実行されません。フォームがオンライン モードの場合、レコードはキャッシュされません。

    この問題を解決するには、オンラインでレコードを保存します。