Fehler "Überprüfungen wurden aufgrund von inkonsistenten Überprüfungsdaten im Hintergrund neu gestartet"
In diesem Artikel wird ein Problem behoben, bei dem eine synchrone Speicherereignisbeschränkung eine Fehlermeldung in Microsoft Dynamics 365 Field Service-Formularen verursacht.
Problembeschreibung
Wenn bestimmte Felder in einem Formular geändert werden, verwendet Dynamics 365 Field Service das AsyncJobTracker
Muster zum Abrufen und Zwischenspeichern verwandter Datensätze. Die zwischengespeicherten Datensätze werden während des OnSave
Ereignisses zur Überprüfung verwendet. Aufgrund einer synchronen Speicherereignisbeschränkung wartet das System nicht auf asynchrone Aufrufe. Das Dynamics 365 Field Service-Formular zeigt dann die folgende Fehlermeldung an:
Überprüfungen wurden aufgrund inkonsistenter Überprüfungsdaten im Hintergrund neu gestartet. Versuchen Sie es bitte kurz erneut.
Ursache
Dynamics 365 Field Service verfügt über Validierungen, die das Abrufen von Daten aus verwandten Entitäten erfordern. Aufgrund der Einschränkung kann die Speicherung jedoch nicht blockiert werden, bis alle asynchronen Aufrufe abgeschlossen sind.
Das AsyncJobTracker
Muster ist nur im Offlinemodus aktiviert, um sicherzustellen, dass die geänderten Offlinedatensätze überprüft werden und wieder mit dem Server synchronisiert werden können.
Wenn die zwischengespeicherten Datensätze nicht mit den aktuellen Nachschlagefeldern übereinstimmen, wird die Fehlermeldung angezeigt.
Lösung
Mehrere Szenarien können dieses Problem verursachen. Die Auflösungen variieren je nach Szenario.
Szenario 1: Der Benutzer hat keinen Zugriff auf den Datensatz. Wenn eine Entität beispielsweise nicht im Offlineprofil enthalten ist oder der Benutzer keine Berechtigung für den Zugriff auf den Datensatz hat.
Um dieses Problem zu beheben, stellen Sie sicher, dass die Entität den Offlineprofilfiltern hinzugefügt wird und dem Benutzer eine Sicherheitsrolle mit den Berechtigungen für den Zugriff auf den Datensatz gewährt wird.
Szenario 2: Anpassungen führen JavaScript-Logik zum Aktualisieren von Feldern ein, aber diese Updates lösen keine Ereignisse aus
OnChange
.Verwenden Sie zum Beheben dieses Problems das fireOnChange-Attribut beim Aktualisieren von Nachschlagefeldern mit benutzerdefiniertem JavaScript.
Optional können Sie die
setTimeout
Funktion verwenden, um den Aufruf zu verzögern und die Überprüfungszeit zuzulassen.Szenario 3: In Szenarien, in denen die mobile App standardmäßig nicht offline ist, öffnen Benutzer möglicherweise ein Formular im Onlinemodus. Anschließend gehen sie offline, während das Formular noch geöffnet ist. Die
AsyncJobTracker
Ausführung wird nicht ausgeführt und speichert keine Datensätze zwischen, wenn sich das Formular im Onlinemodus befindet.Um dieses Problem zu beheben, wechseln Sie online, um den Datensatz zu speichern.