"Se han reiniciado las validaciones en segundo plano debido al error de datos de validación incoherentes"
Este artículo ayuda a resolver un problema por el que una limitación de eventos de guardado sincrónica provoca un mensaje de error en formularios de Microsoft Dynamics 365 Field Service.
Síntomas
Cuando se cambian determinados campos de un formulario, Dynamics 365 Field Service usa el AsyncJobTracker
patrón para recuperar y almacenar en caché registros relacionados. Los registros almacenados en caché se usan para la validación durante el OnSave
evento. Debido a una limitación de eventos de guardado sincrónica, el sistema no espera llamadas asincrónicas. A continuación, el formulario de Dynamics 365 Field Service muestra el siguiente mensaje de error:
Las validaciones se han reiniciado en segundo plano debido a datos de validación incoherentes. Inténtelo de nuevo en breve.
Causa
Dynamics 365 Field Service tiene validaciones que requieren recuperar datos de entidades relacionadas. Sin embargo, debido a la limitación, no puede bloquear el guardado para esperar a que se completen todas las llamadas asincrónicas.
El AsyncJobTracker
patrón solo está habilitado en modo sin conexión para asegurarse de que los registros sin conexión modificados se validan y se pueden volver a sincronizar con el servidor.
Si los registros almacenados en caché no coinciden con los campos de búsqueda actuales, recibirá el mensaje de error.
Solución
Varios escenarios pueden provocar este problema. Las resoluciones varían en función del escenario.
Escenario 1: el usuario no tiene acceso al registro. Por ejemplo, si una entidad no está incluida en el perfil sin conexión o el usuario no tiene permiso para acceder al registro.
Para resolver este problema, asegúrese de que la entidad se agrega a los filtros de perfil sin conexión y al usuario se le concede un rol de seguridad con los privilegios para acceder al registro.
Escenario 2: Las personalizaciones presentan lógica de JavaScript para actualizar campos, pero estas actualizaciones no desencadenan
OnChange
eventos.Para solucionar este problema, use el atributo fireOnChange al actualizar campos de búsqueda mediante JavaScript personalizado.
Opcionalmente, use la
setTimeout
función para retrasar la llamada y permitir que se completen las validaciones.Escenario 3: en escenarios en los que la aplicación móvil no está sin conexión de forma predeterminada, los usuarios pueden abrir un formulario en modo en línea. A continuación, se desconectan mientras el formulario sigue abierto.
AsyncJobTracker
No se ejecuta y no almacena en caché ningún registro cuando el formulario está en modo en línea.Para resolver este problema, vaya a línea para guardar el registro.