Condividi tramite


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

Questo articolo consente di risolvere un problema a causa del quale una limitazione degli eventi di salvataggio sincrono causa un messaggio di errore nei moduli di Microsoft Dynamics 365 Field Service.

Sintomi

Quando determinati campi in un modulo vengono modificati, Dynamics 365 Field Service usa il AsyncJobTracker modello per recuperare e memorizzare nella cache i record correlati. I record memorizzati nella cache vengono utilizzati per la convalida durante l'evento OnSave . A causa di una limitazione degli eventi di salvataggio sincrono, il sistema non attende chiamate asincrone. Il modulo Dynamics 365 Field Service mostra quindi 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 con il server.

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

Risoluzione

Più scenari possono causare questo problema. 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 durante l'aggiornamento dei 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, passare online per salvare il record.