Udostępnij za pośrednictwem


Błąd "Walidacje zostały uruchomione ponownie w tle z powodu niespójnych danych walidacji"

Ten artykuł pomaga rozwiązać problem polegający na tym, że synchroniczne ograniczenie zdarzeń zapisywania powoduje wyświetlenie komunikatu o błędzie w formularzach usługi Field Service w usłudze Microsoft Dynamics 365.

Symptomy

Po zmianie niektórych pól w formularzu usługa Dynamics 365 Field Service używa AsyncJobTracker wzorca do pobierania i buforowania powiązanych rekordów. Buforowane rekordy są używane do walidacji podczas OnSave zdarzenia. Ze względu na ograniczenie zdarzeń zapisywania synchronicznego system nie czeka na wywołania asynchroniczne. Formularz usługi Dynamics 365 Field Service zawiera następujący komunikat o błędzie:

Walidacje zostały ponownie uruchomione w tle z powodu niespójnych danych walidacji. Spróbuj ponownie wkrótce.

Przyczyna

Usługa Dynamics 365 Field Service ma walidacje, które wymagają pobierania danych z powiązanych jednostek. Jednak ze względu na ograniczenie nie może zablokować zapisywania, aby poczekać na ukończenie wszystkich wywołań asynchronicznych.

Wzorzec AsyncJobTracker jest włączony tylko w trybie offline, aby upewnić się, że zmienione rekordy trybu offline są weryfikowane i można je zsynchronizować z powrotem z serwerem.

Jeśli buforowane rekordy nie są zgodne z bieżącymi polami odnośnika, zostanie wyświetlony komunikat o błędzie.

Rozwiązanie

Przyczyną tego problemu może być wiele scenariuszy. Rozwiązania różnią się w zależności od scenariusza.

  • Scenariusz 1. Użytkownik nie ma dostępu do rekordu. Jeśli na przykład jednostka nie jest uwzględniona w profilu offline lub użytkownik nie ma uprawnień dostępu do rekordu.

    Aby rozwiązać ten problem, upewnij się, że jednostka została dodana do filtrów profilu offline, a użytkownik ma przypisaną rolę zabezpieczeń z uprawnieniami dostępu do rekordu.

  • Scenariusz 2. Dostosowania wprowadzają logikę języka JavaScript do aktualizowania pól, ale te aktualizacje nie wyzwalają OnChange zdarzeń.

    Aby rozwiązać ten problem, użyj atrybutu fireOnChange podczas aktualizowania pól odnośników przy użyciu niestandardowego kodu JavaScript.

    Opcjonalnie użyj setTimeout funkcji , aby opóźnić wywołanie i umożliwić ukończenie walidacji.

  • Scenariusz 3. W scenariuszach, w których aplikacja mobilna nie jest domyślnie w trybie offline, użytkownicy mogą otwierać formularz w trybie online. Następnie przechodzą w tryb offline, gdy formularz jest nadal otwarty. Element AsyncJobTracker nie jest uruchamiany i nie buforuje żadnych rekordów, gdy formularz jest w trybie online.

    Aby rozwiązać ten problem, przejdź do trybu online, aby zapisać rekord.