Partilhar via


Limitações conhecidas e resolução de problemas de tabelas virtuais

Este artigo descreve as limitações conhecidas e as sugestões de resolução de problemas quando trabalha com tabelas virtuais no Microsoft Dataverse.

Segue-se uma lista das limitações conhecidas das tabelas virtuais criadas utilizando o fornecedor do conectores virtuais.

Limitações gerais

  • A tabela ou lista utilizada tem de incluir, pelo menos, um campo de cadeia para ser utilizado como o campo primário e um campo de GUID. Sem estes campos de cadeia, a tabela virtual não pode ser criada e um erro é gerado durante a fase de obtenção de detalhes da tabela.
    • O SharePoint utiliza o campo de ID numérico oculto presente em todas as listas
    • O SQL pode utilizar um campo de GUID ou de número inteiro
    • O Excel tem de ter um campo de GUID
  • O Dataverse só pode criar colunas que incluam tipos de dados compatíveis com o Dataverse. Isto inclui os seguintes tipos de dados:
    • Cadeia (de carateres)
    • Texto com várias linhas (memo)
    • Número Completo/Número Inteiro
    • Decimal
    • Float
    • Data/hora
    • Sim/Não (booleano)
    • Escolhas (seleção de múltiplos valores)
    • Ligação/URL
  • Os tipos de dados não suportados para tabelas virtuais:
    • Ficheiro e anexos
    • Imagem
  • O comprimento máximo dos carateres permitido para uma coluna de texto numa tabela virtual é de 4000 carateres. Se a tabela de origem tiver um limite máximo de carateres superior a este valor, qualquer operação de criação ou atualização que exceda o limite máximo de carateres resulta num erro de validação e a operação falha.
  • As consultas de tabela virtual estão limitadas a devolver 1,000 recursos. Se tiver uma relação de tabela múltipla (polimórfica) personalizada 1:N ou N com uma tabela virtual, qualquer consulta que exceda este limite falhará e fornecerá um erro. Utilize a filtragem na sua consulta para reduzir o conjunto de registos como uma solução para esta limitação.
  • A funcionalidade de auditoria não está disponível para tabelas virtuais porque o Dataverse só pode efetuar e armazenar dados de auditoria para dados armazenados localmente.
  • Não é possível calcular rollups e campos calculados tabelas virtuais. Isto porque os rollups são um cálculo do lado do servidor no Dataverse, o que requer que os dados sejam armazenados localmente.
  • As colunas de fórmula não podem usar tabelas virtuais.
  • A tabela virtual do Microsoft Entra ID fornecida pela Microsoft só permite acesso de leitura.
  • As tabelas virtuais do Dataverse podem apresentar valores em campos que excedem o valor máximo normal do Dataverse. Este comportamento ocorre porque os valores que estão a ser apresentados não foram armazenados localmente. Por exemplo, o valor máximo de número inteiro do Dataverse é 100.000.000.000, mas poderá obter e apresentar 9.000.000.000.000 do SharePoint. No entanto, se o utilizador tentar editar o número para um tamanho maior que o tamanho máximo aceite no Dataverse, é fornecido um erro a indicar que o registo não pode ser guardado porque excede o tamanho máximo.
  • A funcionalidade de importação e exportação de dados de tabela não é suportada para tabelas virtuais.

Limitações para cada origem de dados

Seguem-se as limitações para cada origem de dados.

  • As tabelas virtuais SQL podem utilizar um GUID ou um campo de Número Inteiro para a Chave Primária para funcionalidade.
  • Tabelas SQL Server sem chaves primárias: qualquer campo de não cadeia pode ser selecionado como chave primária. A tabela virtual deve ser criada com êxito. RetrieveMultiple funciona, as outras operações falham com a seguinte mensagem de erro (proveniente do conector do SQL): "O pedido APIM não foi bem-sucedido: BadRequest: não existe chave primária na tabela." Para a funcionalidade, um GUID ou campo de número inteiro tem de ser usado como a chave primária.
  • Tabelas do SQL Server que utilizam uma chave primária de cadeia: A chave primária de cadeia do SQL é a única opção disponível para a chave primária de tabela virtual. As chaves primárias de cadeia de SQL Server só são suportadas se os valores puderem ser analisados como GUID. Se não puder ser analisada como um GUID, a criação da tabela virtual é bem-sucedida, mas falha no runtime com os seguintes erros:
    • Power Apps (make.powerapps.com): "Não conseguimos abrir a sua tabela. Tente recarregar ou reabrir."
    • Rastreio de rede: "As chaves primárias de cadeia só são suportadas se puderem ser analisadas como GUID."
  • Tabelas SQL Server sem campos de cadeia de chave não primária para utilizar como Nome Primário: se a tabela SQL não tiver um campo de cadeia disponível para utilizar como o Nome Primário, apresentamos o seguinte erro no passo de configuração: "A tabela não tem um campo primário"
  • As vistas do SQL podem ser utilizadas para criar uma tabela virtual, mas só fornecem operações de leitura.
  • Para limitações do conector do SQL Server, aceda a Referência de conector do SQL Server.
  • As colunas bigint de tipo de dados SQL na tabela de origem são mapeadas como um tipo de dados decimal nas tabelas virtuais do Dataverse. Quando o suporte da plataforma está disponível para o mapeamento bigint para um número inteiro, as colunas criadas anteriormente na tabela virtual precisam de ser eliminadas e devem ser criadas novas colunas.
  • Neste momento, não é possível incluir os seguintes tipos de colunas numa tabela virtual:
    • Hora
    • Datetime2
    • Imagem
    • Geometria
    • Geografia
    • RowVersion
    • Escolha
  • Os seguintes tipos de colunas estão incluídos numa tabela virtual, mas são mostrados apenas como campos de texto:
    • HierarchyID
    • XML
    • Sqlvariant

Resolução de Problemas

  • Só existe um (1) registo na sua tabela virtual, mesmo que tenha mais na sua tabela de origem.
    Solução: verifique a tabela de origem e certifique-se de que tem uma chave primária definida.

  • Recebe um dos seguintes erros quando o Power Apps (make.powerapps.com) está a obter uma lista de tabelas ou quando seleciona Concluir para criar uma tabela:

    • "Não foi encontrado o recurso para o segmento msdyn_get_required_fields"
    • "Erro ao chamar... verifique se a ligação... existe no ambiente"
    • "A sequência não corresponde a nenhum elemento msdyn_get_required_fields"
      Solução: em alguns casos, poderá não ter a solução mais atualizada para o fornecedor de conectores virtuais. Para determinar se a sua solução de fornecedor de conectores virtuais necessita de uma atualização:
    1. Selecione Soluções no painel de navegação esquerdo. Se o item não estiver no painel lateral, selecione ...Mais e, em seguida, selecione o item pretendido.
    2. Selecione o separador Histórico.
    3. Pesquise por ConnectorProvider.
    4. Consulte as informações para ver se a solução necessita de ser atualizada.
    5. Se o histórico indicar que é necessária uma atualização, aceda ao mercado comercial da Microsoft, pesquise por Fornecedor de Conectores Virtuais e, em seguida, selecione Obter agora para importar a solução para o seu ambiente.
    6. Siga os passos para criar novamente a tabela virtual.
  • É apresentada uma mensagem "Ligação 'xyz' não encontrada no ambiente atual." quando obtém a lista de ligações.
    Solução: isto ocorre quando existe um grande número de ligações no ambiente do Dataverse do utilizador. Isto foi corrigido com a versão 1029 da solução Fornecedor de Conectores. Para determinar se a sua solução de fornecedor de conectores virtuais necessita de uma atualização:

    1. Selecione Soluções no painel de navegação esquerdo. Se o item não estiver no painel lateral, selecione ...Mais e, em seguida, selecione o item pretendido.
    2. Selecione o separador Histórico.
    3. Pesquise por ConnectorProvider.
    4. Consulte as informações para ver se a solução necessita de ser atualizada.
    5. Se o histórico indicar que é necessária uma atualização, aceda ao mercado comercial da Microsoft, pesquise por Fornecedor de Conectores Virtuais e, em seguida, selecione Obter agora para importar a solução para o seu ambiente.
    6. Siga os passos para criar novamente a tabela virtual.
  • Será notificado de que ocorreu um tempo limite durante a criação da tabela virtual.
    Solução: isto pode ocorrer quando outras tarefas existentes provocam o atraso da criação da tabela virtual. Aguarde alguns minutos e tente novamente.

  • Será notificado de que "Ocorreu um erro inesperado"
    Solução: isto ocorre quando a origem de dados da tabela virtual foi criada com valores inválidos. Para resolver isto, precisa de localizar a origem de dados da tabela virtual que está a causar o erro, eliminá-la e, em seguida, recriar a tabela virtual.

    1. Selecione Definições (ícone de engrenagem) >Definições avançadas do Power Apps.
    2. No menu superior, selecione Definições.
    3. Vá para Soluções. Se o item não estiver no painel lateral, selecione ...Mais e, em seguida, selecione o item pretendido.
    4. Aceda à solução que inclua a sua tabela virtual (se não estava a utilizar uma solução, aceda à Solução Predefinida Common Data Services).
    5. No painel esquerdo, selecione Origens de dados da tabela virtual.
    6. Clique duas vezes em cada origem de dados (todas começam por VCP_DS_..."), quando localizar a que tem o erro, elimine-a.
    7. Recrie a sua tabela virtual.
  • É apresentada uma mensagem "Esta tabela já existe, está a recriar a tabela. Não é possível alterar o campo Primário e o nome do Esquema."
    Solução: esta tabela foi criada anteriormente. Continuar com a criação recria a tabela, isto faz com que quaisquer alterações de tabela feitas na origem de dados sejam atualizadas na tabela virtual (isto inclui a adição ou a remoção de campos). Os valores de nome personalizado e campo primário não serão editáveis.

  • Mensagem de erro: "primary_key_name não pode estar vazio"
    Solução: escolheu uma tabela ou lista que não inclui um valor de GUID para a chave primária. Precisa de adicionar uma coluna de GUID adicional à sua tabela de origem para criar uma tabela virtual.

  • Criou uma tabela virtual do Excel, mas não a vê na área Tabelas no Power Apps.
    Solução: uma vez que a criação da tabela virtual é assíncrona, pode verificar o estado do processo em Tarefas de Sistema. Procure tarefas de sistema com um Nome começado por Microsoft.Wrm.DataProvider.Connector.Plugins.ConnectorGenerateVEPlugin e um valor da coluna Relativa a igual ao nome da nova tabela virtual. Se o estado ainda for Em Curso, aguarde que a tarefa seja concluída. Se houver um erro, pode obter detalhes selecionando a ligação do nome da tarefa de sistema. Neste exemplo, a criação da tabela continua pendente:

    criação da tabela pendente

    Aqui, a criação da tabela falhou devido ao erro 429 "Demasiados Pedidos":

    a criação da tabela falhou devido ao erro 429

  • A tarefa de sistema de criação da tabela foi bem-sucedida, mas recebe erros de runtime relacionados com colunas inválidas ou em falta.
    Solução: se ocorrer uma falha durante a criação de um campo de tabela, o processo de criação da tabela não falha e tente continuar com os campos restantes. Isto acontece porque o sistema não quer bloquear a criação de tabelas virtuais quando alguns tipos de coluna são não suportados. Para obter detalhes sobre o erro, ative o registo em Administração>Definições de Sistema>Personalizações>Ativar o registo de rastreio de plug-ins e, em seguida, elimine a tabela virtual e tente criá-la novamente.

  • Se você excluiu a conexão conectada à tabela virtual e a recriou, o aplicativo Virtual Connector Provider perderá a permissão para acessar a nova conexão, impedindo a recuperação de dados.
    Solução: partilhe manualmente a ligação recriada com a aplicação 'Virtual Connector Provider' utilizando a funcionalidade de partilha da ligação para restaurar o acesso.

  • Quando um provedor de dados personalizado para uma tabela virtual é atualizado para dar suporte a novas operações (por exemplo, criar, atualizar, excluir), a plataforma não adiciona automaticamente as permissões correspondentes à entidade de tabela virtual existente.
    Solução: Para habilitar novas permissões, o usuário deve recriar a entidade da tabela virtual depois de atualizar o provedor de dados.

Passos seguintes

Criar tabelas virtuais utilizando o fornecedor de conectores virtuais (pré-visualização)

Configurar uma relação de tabela virtual