Erro "As validações foram reiniciadas em segundo plano devido a dados de validação inconsistentes"
Este artigo ajuda a resolver um problema em que uma limitação de evento de salvamento síncrono causa uma mensagem de erro nos formulários do Microsoft Dynamics 365 Field Service.
Sintomas
Quando determinados campos em um formulário são alterados, o Dynamics 365 Field Service usa o AsyncJobTracker
padrão para recuperar e armazenar em cache os registros relacionados. Os registros armazenados em cache são usados para validação durante o OnSave
evento. Devido a uma limitação de evento de salvamento síncrono, o sistema não aguarda chamadas assíncronas. O formulário do Dynamics 365 Field Service mostra a seguinte mensagem de erro:
As validações foram reiniciadas em segundo plano devido a dados de validação inconsistentes. Por favor, tente novamente em breve.
Causa
O Dynamics 365 Field Service tem validações que exigem a recuperação de dados de entidades relacionadas. No entanto, devido à limitação, ele não pode bloquear o salvamento para aguardar a conclusão de todas as chamadas assíncronas.
O AsyncJobTracker
padrão só é habilitado no modo offline para garantir que os registros offline alterados sejam validados e possam ser sincronizados de volta com o servidor.
Se os registros armazenados em cache não corresponderem aos campos de pesquisa atuais, você receberá a mensagem de erro.
Solução
Vários cenários podem causar esse problema. As resoluções variam dependendo do cenário.
Cenário 1: o usuário não tem acesso ao registro. Por exemplo, se uma entidade não estiver incluída no perfil offline ou se o usuário não tiver permissão para acessar o registro.
Para resolver esse problema, verifique se a entidade foi adicionada aos filtros de perfil offline e se o usuário recebeu um direito de acesso com os privilégios para acessar o registro.
Cenário 2: as personalizações introduzem a lógica JavaScript para atualizar campos, mas essas atualizações não disparam
OnChange
eventos.Para resolver esse problema, use o atributo fireOnChange ao atualizar campos de pesquisa usando JavaScript personalizado.
Opcionalmente, use a
setTimeout
função para atrasar a chamada e dar tempo para que as validações sejam concluídas.Cenário 3: em cenários em que o aplicativo móvel não está offline por padrão, os usuários podem abrir um formulário no modo online. Em seguida, eles ficam offline enquanto o formulário ainda está aberto. O
AsyncJobTracker
não é executado e não armazena em cache nenhum registro quando o formulário está no modo online.Para resolver esse problema, acesse a Internet para salvar o registro.