Errore "Le convalide sono state riavviate in background a causa di dati di convalida incoerenti"

Questo articolo consente di risolvere un problema per cui una limitazione dell'evento di salvataggio sincrono causa un messaggio di errore nei moduli Microsoft Dynamics 365 Field Service.

Sintomi

Quando vengono modificati determinati campi di un modulo, Dynamics 365 Field Service usa il AsyncJobTracker modello per recuperare e memorizzare nella cache i record correlati. I record memorizzati nella cache vengono usati per la convalida durante l'evento OnSave . A causa di una limitazione dell'evento di salvataggio sincrono, il sistema non attende le chiamate asincrone. Nel modulo Dynamics 365 Field Service viene visualizzato il messaggio di errore seguente:

Le convalide sono state riavviate in background a causa di dati di convalida incoerenti. Riprovare a breve.

Causa

Dynamics 365 Field Service dispone di convalide che richiedono il recupero di dati da entità correlate. Tuttavia, a causa della limitazione, non può bloccare il salvataggio per attendere il completamento di tutte le chiamate asincrone.

Il AsyncJobTracker modello è abilitato solo in modalità offline per garantire che i record offline modificati vengano convalidati e possano essere sincronizzati di nuovo nel server.

Se i record memorizzati nella cache non corrispondono ai campi di ricerca correnti, viene visualizzato il messaggio di errore.

Risoluzione

Questo problema può essere causato da più scenari. Le risoluzioni variano a seconda dello scenario.

  • Scenario 1: l'utente non ha accesso al record. Ad esempio, se un'entità non è inclusa nel profilo offline o l'utente non dispone dell'autorizzazione per accedere al record.

    Per risolvere questo problema, assicurarsi che l'entità venga aggiunta ai filtri del profilo offline e che all'utente venga concesso un ruolo di sicurezza con i privilegi per accedere al record.

  • Scenario 2: le personalizzazioni introducono la logica JavaScript per aggiornare i campi, ma questi aggiornamenti non attivano OnChange eventi.

    Per risolvere questo problema, usare l'attributo fireOnChange quando si aggiornano i campi di ricerca usando JavaScript personalizzato.

    Facoltativamente, usare la setTimeout funzione per ritardare la chiamata e consentire il completamento delle convalide.

  • Scenario 3: negli scenari in cui l'app per dispositivi mobili non è offline per impostazione predefinita, gli utenti potrebbero aprire un modulo in modalità online. Quindi, passano offline mentre il modulo è ancora aperto. Non AsyncJobTracker viene eseguito e non memorizza nella cache alcun record quando il modulo è in modalità online.

    Per risolvere questo problema, andare online per salvare il record.