Resolução de problemas durante a sincronização inicial
Este tópico fornece informações de resolução de problemas para a integração de escrita dupla entre aplicações de Finanças e Operações e o Dataverse. Especificamente, fornece informações que podem ajudá-lo a corrigir problemas que podem ocorrer durante a sincronização inicial.
Importante
Alguns dos problemas que este tópico aborda podem requerer quer a função de administrador do sistema, quer credenciais de administrador de inquilinos do Microsoft Azure Active Directory (Azure AD). A secção para cada problema explica se é necessária uma função ou credenciais específicas.
Verificar se há erros iniciais de sincronização inicial numa aplicação de Finanças e Operações
Depois de ativar os modelos de mapeamento, o estado dos mapas deve ser Em execução. Se o estado estiver Não está em execução, ocorreram erros durante a sincronização inicial. Para visualizar os erros, selecione o separador Detalhes da sincronização inicial na página Escrita dupla.
Não consegue concluir a sincronização inicial: 400 Pedido inválido
Função necessária para corrigir o problema: Administrador do sistema
Pode receber a seguinte mensagem de erro quando tenta executar o mapeamento e a sincronização inicial:
([Pedido inválido], O servidor remoto devolveu um erro: (400) Pedido inválido.), a exportação AX encontrou um erro.
Aqui está um exemplo da mensagem de erro completa.
Dual write Initial Sync completed with status: Error. Following are the details:
Executed leg: From AX Financial dimensions to CRM msdyn_dimensionattributes
with exported records count: 0, ImportRecordsErrorCount: 0,
ImportRecordsInsertedCount: 0 and ImportRecordsUpdatedCount: 0
ErrorsDetails:
Dual write Initial sync failed
Message: ([Bad Request], The remote server returned an error: (400) Bad Request.), AX export encountered an error
Stacktrace: at
Microsoft.Dynamics.Integrator.QueryGenerator.AxClient.\<ExportAxPackage\>d__16.MoveNext()
in X:\\bt\\1024532\\repo\\src\\Core\\QueryGenerator\\AxClient.cs:line 265
\--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.D365.ServicePlatform.Context.ServiceContext.Activity.\<ExecuteAsync\>d__11\`2.MoveNext()
\--- End of stack trace from previous location where exception was thrown ---
Se este erro ocorrer consistentemente e não conseguir concluir a sincronização inicial, siga estes passos para corrigir o problema.
- Inicie sessão na máquina virtual (VM) para a aplicação de Finanças e Operações
- Abra a Consola de Gestão da Microsoft.
- No painel Serviços, certifique-se de que o Serviço de importação e exportação de dados do Microsoft Dynamics 365 está em execução. Reinicie-o se tiver sido interrompido, porque a sincronização inicial o requer.
Erro de sincronização inicial: 403 Proibido
Pode receber a seguinte mensagem de erro durante a sincronização inicial:
([Proibido], O servidor remoto devolveu um erro: (403) Proibido.), a exportação AX encontrou um erro
Para corrigir o problema, siga estes passos.
- Inicie sessão na aplicação de Finanças e Operações
- Na página de aplicações do Azure Active Directory, elimine o cliente DtAppID e, em seguida, adicione-o novamente.
Falhas de auto-referência ou referência circular durante a sincronização inicial
Pode receber uma mensagem de erro se algum dos seus mapeamentos tiver auto-referências ou referências circulares. Os erros enquadram-se nestas categorias:
- Erros no mapeamento da tabela de Fornecedores V2-to-msdyn_vendors
- Erros no mapeamento da tabela de Clientes V3-para-Contas
Resolver erros no mapeamento da tabela de Fornecedores V2-to-msdyn_vendors
Pode encontrar erros de sincronização inicial para o mapeamento de Fornecedores V2 para msdyn_vendors se as tabelas tiverem linhas existentes onde existam valores nas colunas PrimaryContactPersonId e InvoiceVendorAccountNumber. Estes erros ocorrem porque InvoiceVendorAccountNumber é uma coluna de auto-referência, e PrimaryContactPersonId é uma referência circular no mapeamento do fornecedor.
As mensagens de erro que recebe terão a seguinte forma.
Não foi possível resolver o guid para o campo: <field>. A procura não foi encontrada: <value>. Tente este(s) URL(s) para verificar se os dados de referência existem: https://focdsdevtest2.crm.dynamics.com/api/data/v9.0/<entity>?$select=<field>&$filter=<field> eq <value>
Aqui estão alguns exemplos:
- Não foi possível resolver o guid para o campo: msdyn_vendorprimarycontactperson.msdyn_contactpersonid. A procura não foi encontrada: 000056. Tente este(s) URL(s) para verificar se os dados de referência existem:
https://focdsdevtest2.crm.dynamics.com/api/data/v9.0/contacts?$select=msdyn_contactpersonid.contactid&$filter=msdyn_contactpersonid eq '000056'
- Não foi possível resolver o guid para o campo: msdyn_invoicevendoraccountnumber.msdyn_vendoraccountnumber. A procura não foi encontrada: V24-1. Tente este(s) URL(s) para verificar se os dados de referência existem:
https://focdsdevtest2.crm.dynamics.com/api/data/v9.0/msdn_vendors?$select=msdyn_vendoraccountnumber,msdyn_vendorid&$filter=msdyn_vendoraccountnumber eq 'V24-1'
Se alguma linha na tabela do fornecedor tiver valores nas colunas PrimaryContactPersonId e InvoiceVendorAccountNumber, siga estes passos para concluir a sincronização inicial.
Na aplicação de Finanças e Operações, elimine as colunas PrimaryContactPersonId e InvoiceVendorAccountNumber do mapeamento e, em seguida, guarde o mapeamento.
Na página de mapeamento de escrita dupla para Fornecedores V2 (msdyn_vendors), no separador Mapeamentos de tabela, no filtro esquerdo, selecione aplicações de Finanças e Operações.Fornecedores V2. No filtro direito, selecione Sales.Fornecedor.
Procure primarycontactperson para localizar a coluna de origem PrimaryContactPersonId.
Selecione Ações e, em seguida, selecione Eliminar.
Repita estes passos para eliminar a coluna InvoiceVendorAccountNumber.
Guarde as suas alterações ao mapeamento.
Desative o controlo de alterações para a tabela Fornecedores V2.
Na área de trabalho Gestão de dados, selecione o mosaico Tabelas de dados.
Selecione a tabela Fornecedores V2.
No Painel de Ações, selecione Opções e, em seguida, selecione Controlo de alterações.
Selecione Desativar Controlo de Alterações.
Execute a sincronização inicial para o mapeamento Fornecedores V2 (msdyn_vendors). A sincronização inicial deverá ser executada com êxito, sem erros.
Execute a sincronização inicial para o mapeamento Contactos CDS V2 (contactos). Tem de sincronizar este mapeamento se pretender sincronizar a coluna de contactos principais na tabela de fornecedores, porque a sincronização inicial também tem de ser efetuada para as linhas de contactos.
Adicione as colunas PrimaryContactPersonId e InvoiceVendorAccountNumber de novo ao mapeamento Fornecedores V2 (msdyn_vendors) e, em seguida, guarde o mapeamento.
Execute novamente a sincronização inicial para o mapeamento Fornecedores V2 (msdyn_vendors). Como o controlo de alterações está desativado, todas as linhas serão sincronizadas.
Ative novamente o controlo de alterações para a tabela Fornecedores V2.
Resolver erros no mapeamento da tabela de Clientes V3-para-Contas
Pode encontrar erros de sincronização inicial para o mapeamento de Clientes V3 para Contas se as tabelas tiverem linhas existentes onde existam valores nas colunas ContactPersonID e InvoiceAccount. Estes erros ocorrem porque InvoiceAccount é uma coluna de auto-referência, e ContactPersonID é uma referência circular no mapeamento do fornecedor.
As mensagens de erro que recebe terão a seguinte forma.
Não foi possível resolver o guid para o campo: <field>. A procura não foi encontrada: <value>. Tente este(s) URL(s) para verificar se os dados de referência existem: https://focdsdevtest2.crm.dynamics.com/api/data/v9.0/<entity>?$select=<field>&$filter=<field> eq <value>
Aqui estão alguns exemplos:
- Não foi possível resolver o guid para o campo: primarycontactid.msdyn_contactpersonid. A procura não foi encontrada: 000056. Tente este(s) URL(s) para verificar se os dados de referência existem:
https://focdsdevtest2.crm.dynamics.com/api/data/v9.0/contacts?$select=msdyn_contactpersonid.contactid&$filter=msdyn_contactpersonid eq '000056'
- Não foi possível resolver o guid para o campo: msdyn_billingaccount.accountnumber. A procura não foi encontrada: 1206-1. Tente este(s) URL(s) para verificar se os dados de referência existem:
https://focdsdevtest2.crm.dynamics.com/api/data/v9.0/accounts?$select=accountnumber.account&$filter=accountnumber eq '1206-1'
Se alguma linha na tabela do cliente tiver valores nas colunas ContactPersonID e InvoiceAccount, siga estes passos para concluir a sincronização inicial. Pode utilizar esta abordagem para quaisquer tabelas prontas a utilizar, tal como Contas e Contactos.
Na aplicação de Finanças e Operações, elimine as colunas ContactPersonID e InvoiceAccount do mapeamento Clientes V3 (contas) e, em seguida, guarde o mapeamento.
Na página de mapeamento de escrita dupla para Clientes V3 (contas), no separador Mapeamentos de tabela, no filtro esquerdo, selecione aplicações de Finanças e Operações.Clientes V3. No filtro direito, selecione Dataverse.Conta.
Procure contactperson para localizar a coluna de origem ContactPersonID.
Selecione Ações e, em seguida, selecione Eliminar.
Repita estes passos para eliminar a coluna InvoiceAccount.
Guarde as suas alterações ao mapeamento.
Desative o controlo de alterações para a tabela Clientes V3.
Na área de trabalho Gestão de dados, selecione o mosaico Tabelas de dados.
Selecione a tabela Clientes V3.
No Painel de Ações, selecione Opções e, em seguida, selecione Controlo de alterações.
Selecione Desativar Controlo de Alterações.
Execute a sincronização inicial para o mapeamento Clientes V3 (Contas). A sincronização inicial deverá ser executada com êxito, sem erros.
Execute a sincronização inicial para o mapeamento Contactos CDS V2 (contactos).
Nota
Existem dois mapas que têm o mesmo nome. Certifique-se de que seleciona o mapa que tem a seguinte descrição no separador Detalhes : Modelo de escrita dupla para sincronização entre FO. CDS Contactos de Fornecedores V2 para CDS.Contactos. Requer novo pacote [Dynamics365SupplyChainExtended].
Adicione as colunas InvoiceAccount e ContactPersonId de novo ao mapeamento Clientes V3 (Contas) e, em seguida, guarde o mapeamento. Tanto a coluna InvoiceAccount como a coluna ContactPersonId fazem agora parte do modo de sincronização ao vivo. No próximo passo, irá efetuar a sincronização inicial para estas colunas.
Execute novamente a sincronização inicial para o mapeamento Clientes V3 (Contas). Como o controlo de alterações está desativado, os dados de InvoiceAccount e ContactPersonId serão sincronizados a partir da aplicação de Finanças e Operações para o Dataverse.
Para sincronizar os dados de InvoiceAccount e ContactPersonId do Dataverse para a aplicação Finanças e Operações, deve utilizar um projeto de integração de dados.
No Power Apps, crie um projeto de integração de dados entre as tabelas Sales.Conta e aplicações de Finanças e Operações.Clientes V3. A direção dos dados deve ser do Dataverse para a aplicação de Finanças e Operações. Como InvoiceAccount é um novo atributo na escrita dupla, pode ser preferível ignorar a sincronização inicial para o mesmo. Para obter mais informações, consulte Integrar dados no Dataverse.
A ilustração seguinte mostra um projeto que atualiza CustomerAccount e ContactPersonId.
Adicione os critérios da empresa no filtro lateral do Dataverse, para que apenas as linhas que correspondem aos critérios do filtro sejam atualizadas na aplicação de Finanças e Operações. Para adicionar um filtro, selecione o botão do filtro. Em seguida, na caixa de diálogo Editar consulta, pode adicionar uma consulta de filtro, tal como _msdyn_company_value eq '<guid>'.
[NOTA] Se o botão de filtro não estiver presente, crie um pedido de suporte para pedir à equipa de integração de dados que ative a capacidade de filtro no seu inquilino.
Se não introduzir uma consulta de filtro para _msdyn_company_value, todas as linhas serão sincronizadas.
A sincronização inicial das linhas está agora concluída.
Na aplicação de Finanças e Operações, ative novamente o controlo de alterações para a tabela Clientes V3.
Falhas da sincronização inicial em mapas com mais de 10 campos de procura
Pode receber a seguinte mensagem de erro quando tenta executar uma sincronização inicial com falhas nos mapeamentos Clientes V3 - Contas, Ordens de venda ou qualquer mapa com mais de 10 campos de procura:
CRMExport: Execução do pacote concluída. Descrição de erro 5 Tentativas de obter dados de https://xxxxx//datasets/yyyyy/tables/accounts/items?$select=accountnumber, address2_city, address2_country, ... (msdyn_company/cdm_companyid eq 'id')&$orderby=accountnumber asc falhou.
Devido à limitação de procura na consulta, a sincronização inicial falha quando o mapeamento da entidade contém mais de 10 pesquisas. Para obter mais informações, consulte Obter registos de tabelas relacionados com uma consulta.
Para resolver este problema, siga estes passos:
- Remova os campos de procura opcionais do mapa da entidade de escrita dupla, para que o número de procuras seja de 10 ou menos.
- Guarde o mapa e efetue a sincronização inicial.
- Quando a sincronização inicial para o primeiro passo for bem sucedida, adicione os restantes campos de procura e remova os campos de procura que sincronizou no primeiro passo. Certifique-se de que o número de campos de procura é de 10 ou menos. Guarde o mapa e execute a sincronização inicial.
- Repita estes passos até que todos os campos de procura estejam sincronizados.
- Adicione todos os campos de procura de novo ao mapa, guarde o mapa e execute o mapa com Ignorar sincronização inicial.
Este processo ativa o mapa para o modo de sincronização ao vivo.
Problema conhecido durante a sincronização inicial de endereços postais em Entidades e endereços eletrónicos em entidades
Pode receber a seguinte mensagem de erro quando tenta executar a sincronização inicial de endereços postais em entidades e de endereços eletrónicos em entidades:
O número de Entidade não foi encontrado no Dataverse.
Existe um intervalo definido nas aplicações de Finanças e Operações DirPartyCDSEntity que filtra entidades do tipo Pessoa e Organização. Em resultado disso, uma sincronização inicial do mapeamento Entidades do CDS – msdyn_parties não sincronizará entidades de outros tipos, incluindo Entidade Legal e Unidade Operacional. Quando a sincronização inicial é executada para Endereços postais de Entidades do CDS (msdyn_partypostaladdresses) ou Contactos de Entidades V3 (msdyn_partyelectronicaddresses) pode receber a mensagem de erro.
Estamos a trabalhar numa correção para remover o intervalo de tipos de entidades na entidade de Finanças e Operações, para que entidades de todos os tipos possam sincronizar com êxito com o Dataverse.
Existem problemas de desempenho durante a execução da sincronização inicial de dados de Clientes ou de Contactos?
Se executou a sincronização inicial para dados de Clientes e tem os mapas de Clientes em execução e, em seguida, executa a sincronização inicial para dados de Contactos,, pode haver problemas de desempenho durante as inserções e atualizações nas tabelas LogisticsPostalAddress e LogisticsElectronicAddress para endereços de Contacto. As mesmas tabelas globais de endereço postal e endereço eletrónico são rastreados para CustCustomerV3Entity e VendVendorV2Entity, e a escrita dupla tenta compilar mais consultas para escrever dados para outro lado. Se já executou a sincronização inicial para Clientes, então pare o mapa correspondente enquanto executa a sincronização inicial para dos dados de Contactos. Faça a mesma coisa para os dados de Fornecedores. Quando a sincronização inicial estiver terminada, pode executar todos os mapas ignorando a sincronização inicial.