Felet "Valideringar har startats om i bakgrunden på grund av inkonsekventa valideringsdata"
Den här artikeln hjälper dig att lösa ett problem där en synkron begränsning av sparande orsakar ett felmeddelande i Microsoft Dynamics 365 Field Service-formulär.
Symptom
När vissa fält i ett formulär ändras använder AsyncJobTracker
Dynamics 365 Field Service mönstret för att hämta och cachelagrar relaterade poster. Cachelagrade poster används för validering under OnSave
händelsen. På grund av en synkron begränsning av sparande väntar systemet inte på asynkrona anrop. Formuläret Dynamics 365 Field Service visar sedan följande felmeddelande:
Verifieringar har startats om i bakgrunden på grund av inkonsekventa valideringsdata. Försök igen inom kort.
Orsak
Dynamics 365 Field Service har valideringar som kräver att data hämtas från relaterade entiteter. Men på grund av begränsningen kan den inte blockera spara för att vänta tills alla asynkrona anrop har slutförts.
Mönstret AsyncJobTracker
är endast aktiverat i offlineläge för att säkerställa att de ändrade offlineposterna verifieras och kan synkroniseras tillbaka till servern.
Om de cachelagrade posterna inte matchar de aktuella uppslagsfälten får du felmeddelandet.
Åtgärd
Flera scenarier kan orsaka det här problemet. Lösningarna varierar beroende på scenariot.
Scenario 1: Användaren har inte åtkomst till posten. Om en entitet till exempel inte ingår i offlineprofilen eller om användaren inte har behörighet att komma åt posten.
Lös problemet genom att se till att entiteten läggs till i offlineprofilfiltren och att användaren beviljas en säkerhetsroll med behörighet att komma åt posten.
Scenario 2: Anpassningar introducerar JavaScript-logik för att uppdatera fält, men dessa uppdateringar utlöser
OnChange
inte händelser.Lös problemet genom att använda attributet fireOnChange när du uppdaterar uppslagsfält med hjälp av anpassad JavaScript.
Du kan också använda
setTimeout
funktionen för att fördröja anropet och ge tid för verifieringar att slutföras.Scenario 3: I scenarier där mobilappen inte är offline som standard kan användarna öppna ett formulär i onlineläge. Sedan går de offline medan formuläret fortfarande är öppet. Körs
AsyncJobTracker
inte och cachelagr inga poster när formuläret är i onlineläge.Lös problemet genom att gå online för att spara posten.