Partilhar via


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.

Erro no separador Detalhes da sincronização inicial.

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.

  1. Inicie sessão na máquina virtual (VM) para a aplicação de Finanças e Operações
  2. Abra a Consola de Gestão da Microsoft.
  3. 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.

  1. Inicie sessão na aplicação de Finanças e Operações
  2. Na página de aplicações do Azure Active Directory, elimine o cliente DtAppID e, em seguida, adicione-o novamente.

O cliente DtAppID na lista de aplicações do Azure AD.

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:

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.

  1. Na aplicação de Finanças e Operações, elimine as colunas PrimaryContactPersonId e InvoiceVendorAccountNumber do mapeamento e, em seguida, guarde o mapeamento.

    1. 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.

    2. Procure primarycontactperson para localizar a coluna de origem PrimaryContactPersonId.

    3. Selecione Ações e, em seguida, selecione Eliminar.

      Eliminar a coluna PrimaryContactPersonId.

    4. Repita estes passos para eliminar a coluna InvoiceVendorAccountNumber.

      Eliminar a coluna InvoiceVendorAccountNumber.

    5. Guarde as suas alterações ao mapeamento.

  2. Desative o controlo de alterações para a tabela Fornecedores V2.

    1. Na área de trabalho Gestão de dados, selecione o mosaico Tabelas de dados.

    2. Selecione a tabela Fornecedores V2.

    3. No Painel de Ações, selecione Opções e, em seguida, selecione Controlo de alterações.

      Selecionar a opção Controlo de alterações.

    4. Selecione Desativar Controlo de Alterações.

      Selecionar Desativar Controlo de Alterações.

  3. Execute a sincronização inicial para o mapeamento Fornecedores V2 (msdyn_vendors). A sincronização inicial deverá ser executada com êxito, sem erros.

  4. 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.

  5. Adicione as colunas PrimaryContactPersonId e InvoiceVendorAccountNumber de novo ao mapeamento Fornecedores V2 (msdyn_vendors) e, em seguida, guarde o mapeamento.

  6. 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.

  7. 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.

  1. 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.

    1. 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.

    2. Procure contactperson para localizar a coluna de origem ContactPersonID.

    3. Selecione Ações e, em seguida, selecione Eliminar.

      Eliminar a coluna ContactPersonID.

    4. Repita estes passos para eliminar a coluna InvoiceAccount.

      Eliminar a coluna InvoiceAccount.

    5. Guarde as suas alterações ao mapeamento.

  2. Desative o controlo de alterações para a tabela Clientes V3.

    1. Na área de trabalho Gestão de dados, selecione o mosaico Tabelas de dados.

    2. Selecione a tabela Clientes V3.

    3. No Painel de Ações, selecione Opções e, em seguida, selecione Controlo de alterações.

      Selecionar a opção Controlo de alterações.

    4. Selecione Desativar Controlo de Alterações.

      Selecionar Desativar Controlo de Alterações.

  3. Execute a sincronização inicial para o mapeamento Clientes V3 (Contas). A sincronização inicial deverá ser executada com êxito, sem erros.

  4. 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].

  5. 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.

  6. 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.

  7. 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.

    1. 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.

      Projeto de integração de dados para atualizar CustomerAccount e ContactPersonId.

    2. 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.

      Adicionar uma consulta de filtro.

    A sincronização inicial das linhas está agora concluída.

  8. 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:

  1. 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.
  2. Guarde o mapa e efetue a sincronização inicial.
  3. 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.
  4. Repita estes passos até que todos os campos de procura estejam sincronizados.
  5. 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.