Inspecionar o componente de ER configurado para evitar problemas de runtime
Cada componente de formato de Relatório Eletrônico (ER) e mapeamento de modelo configurado pode ser validado durante o design. Durante essa validação, uma verificação de consistência é realizada para ajudar a evitar problemas de runtime, como erros de execução e degradação de desempenho. O caminho de um elemento problemático é fornecido para cada problema encontrado. Alguns problemas têm uma correção automática.
Por padrão, a validação é aplicada automaticamente nos seguintes casos para uma configuração de ER que contém os componentes de ER mencionados acima:
- Ao importar uma nova versão de uma configuração de ER para a instância do Microsoft Dynamics 365 Finance.
- Ao alterar o status da configuração de ER editável de Rascunho para Concluído.
- Ao trocar a base de uma configuração de ER editável aplicando uma nova versão base.
É possível executar essa validação de forma explícita. Selecione uma das três opções a seguir e siga as etapas fornecidas:
Opção 1:
- Acesse Administração da organização > Relatório eletrônico > Configurações.
- Na árvore de configurações no painel esquerdo, selecione a configuração de ER desejada que contém o componente de mapeamento de formato ou modelo de ER.
- Na Guia Rápida Versões, selecione a versão desejada da configuração de ER selecionada.
- No Painel de Ações, selecione Validar.
Opção 2, para um formato de ER:
- Acesse Administração da organização > Relatório eletrônico > Configurações.
- Na árvore de configurações no painel esquerdo, selecione a configuração de ER desejada que contém o componente do formato de ER.
- Na Guia Rápida Versões, selecione a versão desejada da configuração de ER selecionada.
- No Painel de Ação, selecione Designer.
- Na página Designer de formato, no Painel de Ações, selecione Validar.
Opção 3, para um mapeamento de modelo de ER:
- Acesse Administração da organização > Relatório eletrônico > Configurações.
- Na árvore de configurações no painel esquerdo, selecione a configuração de ER desejada que contém o componente de mapeamento de modelo de ER.
- Na Guia Rápida Versões, selecione a versão desejada da configuração de ER selecionada.
- No Painel de Ação, selecione Designer.
- Na página Modelo para mapeamento de fonte de dados, no Painel de Ações, selecione Designer.
- Na página Designer de mapeamento de modelo, no Painel de Ações, selecione Validar.
Para ignorar a validação quando a configuração for importada, siga estas etapas:
- Acesse Administração da organização > Relatório eletrônico > Configurações.
- Na página Configurações, no Painel Ação, na guia Configurações, no grupo Configurações avançadas, selecione Parâmetros de usuário.
- Defina a opção Validar a configuração após a importação como Não.
Para ignorar a validação quando você alterar o status ou a base da versão, siga estas etapas:
- Acesse Administração da organização > Relatório eletrônico > Configurações.
- Na página Configurações, no Painel Ação, na guia Configurações, no grupo Configurações avançadas, selecione Parâmetros de usuário.
- Defina a opção Ignorar validação na alteração e troca do status de configuração como Sim.
O ER usa as seguintes categorias para agrupar inspeções de verificação de consistência:
- Capacidade de execução – inspeções que detectam problemas críticos que podem ocorrer no runtime. Geralmente, esses problemas são classificados como Erro.
- Desempenho – inspeções que detectam problemas que podem causar execução ineficiente de componentes de ER configurados. Geralmente, esses problemas são classificados como Aviso.
- Integridade de dados – inspeções que detectam problemas que podem causar perda de dados ou problemas de runtime. Geralmente, esses problemas são classificados como Aviso.
Lista de inspeções
A tabela a seguir fornece uma visão geral das inspeções fornecidas pelo ER. Para obter mais informações sobre essas inspeções, use os links na primeira coluna para acessar as seções relevantes deste artigo. Essas seções explicam os tipos de componentes para os quais o ER fornece inspeções e como você pode reconfigurar componentes de ER para ajudar a evitar problemas.
Organização | Categoria | Nível | Mensagem |
---|---|---|---|
Conversão de tipo | Capacidade de execução | Erro |
Não é possível converter a expressão do tipo <type> em um campo do tipo <type>. Erro de runtime: Execução para o tipo |
Compatibilidade de tipo | Capacidade de execução | Erro |
A expressão configurada não pode ser usada como a associação do elemento de formato atual a uma fonte de dados, já que essa expressão retorna o valor de tipo de dados <type> que está além do escopo dos tipos de dados suportados pelo elemento de formato atual do tipo <type>. Erro de runtime: Execução de tipo |
Elemento de configuração ausente | Capacidade de execução | Erro |
Caminho <path> não encontrado. Erro de runtime: Elemento do <path> de configuração não encontrado |
Capacidade de execução de uma expressão com função FILTER | Capacidade de execução | Erro |
A expressão de lista da função FILTER não pode ser consultada. Erro de runtime: Não há suporte para filtragem. Valide a configuração para obter mais detalhes sobre esse erro. |
Capacidade de execução de uma fonte de dados GROUPBY | Capacidade de execução | Erro | O caminho de <path> não oferece suporte à consulta. |
Capacidade de execução | Erro |
A função "Group by" não pode ser executada na consulta. Erro de runtime: A função "Group by" não pode ser executada na consulta. |
|
Capacidade de execução de uma fonte de dados JOIN | Capacidade de execução | Erro |
Não é possível associar um <path> de lista que não seja um filtro na consulta. Erro de runtime: A fonte de dados associada da função deve ser um campo calculado de expressão de filtro chamado incorretamente. |
Preferência da função FILTER x WHERE | Desempenho | Aviso | É preferível usar a função FILTER para a expressão do que WHERE do ponto de vista do desempenho. Selecione Corrigir para substituí-la automaticamente. |
Preferência da função ALLITEMSQUERY x ALLITEMS | Desempenho | Aviso | É preferível usar a função ALLITEMSQUERY para a expressão do que ALLITEMS do ponto de vista do desempenho. Selecione Corrigir para substituí-la automaticamente. |
Consideração dos casos de lista vazia | Capacidade de execução | Aviso |
O <caminho> da lista não tem nenhuma verificação para caso de lista vazia, o que pode resultar em um erro no runtime. Adicione uma verificação para caso de lista vazia. Erro de runtime: A lista está vazia no <path> Possível problema: A fonte de dados que está preenchendo a linha contém vários registros |
Capacidade de execução de uma expressão com função FILTER (armazenamento em cache) | Capacidade de execução | Erro |
A função FILTER não pode ser aplicada ao tipo de fonte de dados selecionado. Uma fonte de dados de tipo de registros de Tabela é aplicável somente quando não é armazenada em cache e não tem fontes de dados aninhadas adicionadas manualmente. Erro de runtime: Não há suporte para filtragem. Valide a configuração para obter mais detalhes sobre esse erro. |
Associação ausente | Capacidade de execução | Aviso |
O <path> do caminho não tem associação a nenhuma fonte de origem ao usar o mapeamento do modelo. Erro de runtime: O <path> do caminho não está associado |
Modelo não vinculado | Integridade dos dados | Aviso | O <nome> do arquivo não está vinculado a nenhum componente de arquivo e será removido após a alteração do status da versão de configuração. |
Formato não sincronizado | Integridade dos dados | Aviso | O nome definido para <nome do componente> não existe no <nome da planilha> do Excel |
Formato não sincronizado | Integridade dos dados | Aviso |
<A marca de controle de conteúdo do Word não> existe no arquivo de modelo do Word Erro de runtime:<A marca de controle> de conteúdo do Word não existe no arquivo de modelo do Word. |
Nenhum mapeamento padrão | Integridade dos dados | Erro |
Mais de um mapeamento de modelo existe para o modelo de dados <nome do modelo (descritor raiz)> nos nomes de configuração de configurações <separados por vírgulas>. Defina uma das configurações como padrão Erro de runtime: Mais de um mapeamento de modelo existe para o modelo de dados <nome do modelo (descritor raiz)> nos nomes de configuração de configurações <separados por vírgulas>. Defina uma das configurações como padrão. |
Configuração inconsistente de componentes de Cabeçalho ou Rodapé | Integridade dos dados | Erro |
Cabeçalhos/rodapés (<tipo de componente: Cabeçalho ou Rodapé>) são inconsistentes Runtime: O último componente configurado é usado no tempo de execução se a versão de rascunho do formato ER configurado for executada. |
Configuração inconsistente do componente da Página | Integridade dos dados | Erro | Há mais de dois componentes de intervalo sem replicação. Remova componentes desnecessários. |
Capacidade de execução de uma expressão com função ORDERBY | Capacidade de execução | Erro |
A expressão de lista da função ORDERBY não pode ser consultada. Erro de runtime: Não há suporte para classificação. Valide a configuração para obter mais detalhes sobre esse erro. |
Artefato de aplicativo obsoleto | Integridade dos dados | Aviso |
O elemento <path> está marcado como obsoleto. Exemplo de erro de tempo de execução: classe "<path>" não encontrada. |
Conversão de tipo
O ER verifica se o tipo de dados de um campo de modelo de dados é compatível com o tipo de dados de uma expressão que está configurada como a associação desse campo. Se os tipos de dados forem incompatíveis, ocorrerá um erro de validação no designer de mapeamento de modelo de ER. A mensagem recebida informa que o ER não pode converter uma expressão do tipo A em um campo de tipo B.
As etapas a seguir mostram como esse problema pode ocorrer.
Comece a configurar os componentes de mapeamento de modelo de ER e de modelo de dados de ER simultaneamente.
Na árvore do modelo de dados, adicione um campo denominado X e selecione Inteiro como o tipo de dados.
No designer de mapeamento de modelos, no painel Fontes de dados, adicione uma fonte de dados do tipo Campo calculado.
Nomeie a nova fonte de dados como Y e configure-a para que contenha a expressão
INTVALUE(100)
.Associe X a Y.
No designer de modelos de dados, altere o tipo de dados do campo X de Inteiro para Int64.
Selecione Validar para inspecionar o componente de mapeamento de modelo editável na página Designer de mapeamento de modelo.
Selecione Validar para inspecionar o componente de mapeamento de modelo da configuração de ER selecionada na página Configurações.
Observe que ocorre um erro de validação. A mensagem informa que o valor do tipo Inteiro retornado pela expressão
INTVALUE(100)
da fonte de dados Y não pode ser armazenado no campo de modelo de dados X do tipo Int64.
A ilustração a seguir mostra o erro de runtime exibido se você ignorar o aviso e selecionar Executar para executar um formato configurado para usar o mapeamento de modelo.
Resolução automática
Nenhuma opção para corrigir esse problema automaticamente está disponível.
Resolução manual
Opção 1
Atualize a estrutura do modelo de dados alterando o tipo de dados do campo de modelo de dados de forma que ele corresponda ao tipo de dados da expressão que está configurada para a associação desse campo. Para o exemplo anterior, o tipo de dados do campo X deve ser alterado novamente para Inteiro.
Opção 2
Atualize o mapeamento de modelo alterando a expressão da fonte de dados associada ao campo de modelo de dados. Para o exemplo anterior, a expressão da fonte de dados Y deve ser alterada para INT64VALUE(100)
.
Compatibilidade de tipo
O ER verifica se o tipo de dados de um elemento de formato é compatível com o tipo de dados de uma expressão que está configurada como esse elemento de formato. Se os tipos de dados forem incompatíveis, ocorrerá um erro de validação no designer de operações de ER. A mensagem recebida informa que expressão configurada não pode ser usada como a associação do elemento de formato atual a uma fonte de dados, já que a expressão retorna um valor de tipo de dados A que está além do escopo dos tipos de dados suportados pelo elemento de formato atual do tipo B.
As etapas a seguir mostram como esse problema pode ocorrer.
Comece a configurar os componentes de formato de ER e o modelo de dados de ER simultaneamente.
Na árvore do modelo de dados, adicione um campo denominado X e selecione Inteiro como o tipo de dados.
Na árvore de estrutura de formato, adicione um elemento de formato do tipo Numérico.
Nomeie o novo elemento de formato Y. No campo de tipo Numérico, selecione Inteirocomo o tipo de dados.
Associe X a Y.
Na árvore de estrutura de formato, altere o tipo de dados do elemento de formato Y de Inteiro para Int64.
Selecione Validar para inspecionar o componente de formato editável na página Designer de formato.
Observe que ocorre um erro de validação. A mensagem informa que a expressão configurada pode aceitar somente valores Int64. Portanto, o valor do campo de modelo de dados X do tipo Inteiro não pode ser inserido no elemento de formato Y.
Resolução automática
Nenhuma opção para corrigir esse problema automaticamente está disponível.
Resolução manual
Opção 1
Atualize a estrutura do formato alterando o tipo de dados do elemento de formato Numérico de forma que ele corresponda ao tipo de dados da expressão que está configurada para a associação desse elemento. No exemplo anterior, o valor de tipo Numérico do elemento de formato X deve ser alterado novamente para Inteiro.
Opção 2
Atualize o mapeamento de formato do elemento de formato X alterando a expressão de model.X
para INT64VALUE(model.X)
.
Elemento de configuração ausente
O ER verifica se as expressões de associação contêm somente fontes de dados configuradas no componente de ER editável. Para cada associação que contém uma fonte de dados ausente no componente de ER editável, ocorre um erro de validação no Designer de operações de ER ou no Designer de mapeamento de modelo de ER.
As etapas a seguir mostram como esse problema pode ocorrer.
Comece a configurar os componentes de mapeamento de modelo de ER e de modelo de dados de ER simultaneamente.
Na árvore do modelo de dados, adicione um campo denominado X e selecione Inteiro como o tipo de dados.
No designer de mapeamento de modelos, no painel Fontes de dados, adicione uma fonte de dados do tipo Campo calculado.
Nomeie a nova fonte de dados como Y e configure-a para que contenha a expressão
INTVALUE(100)
.Associe X a Y.
No designer de mapeamento de modelos, no painel Fontes de dados, exclua a fonte de dados Y.
Selecione Validar para inspecionar o componente de mapeamento de modelo editável na página Designer de mapeamento de modelo.
Observe que ocorre um erro de validação. A mensagem informa que a associação do campo de modelo de dados X contém o caminho referente à fonte de dados Y, mas essa fonte não foi encontrada.
Resolução automática
Selecione Desvincular para corrigir automaticamente esse problema removendo a associação de fonte de dados ausente.
Resolução manual
Opção 1
Desassocie o campo de modelo de dados X para que ele pare de referenciar a fonte de dados Y inexistente.
Opção 2
No designer de mapeamento de modelos, no painel Fontes de dados, adicione a fonte de dados Y novamente.
Capacidade de execução de uma expressão com função FILTER
A função de ER FILTER incorporada é usada para acessar tabelas de aplicativos, exibições ou entidades de dados, fazendo uma única chamada SQL para obter os dados necessários como uma lista de registros. Uma fonte de dados do tipo Lista de registros é usada como um argumento dessa função e especifica a origem do aplicativo para a chamada. O ER verifica se uma consulta SQL direta pode ser estabelecida com uma fonte de dados referenciada na função FILTER
. Se uma consulta direta não puder ser estabelecida, ocorrerá um erro de validação no designer de mapeamento de modelo de ER. A mensagem recebida informa que a expressão de ER que inclui a função FILTER
não pode ser executada no runtime.
As etapas a seguir mostram como esse problema pode ocorrer.
Comece a configurar o componente de mapeamento de modelo de ER.
Adicione uma fonte de dados do tipo Tipos de tabela \ do Dynamics 365 for Operations.
Nomeie a nova fonte de dados como Vendor. No campo Tabela, selecione VendTable para especificar que essa fonte de dados solicitará a tabela VendTable.
Adicione uma fonte de dados do tipo Campo calculado.
Nomeie a nova fonte de dados como FilteredVendor e configure-a para que contenha a expressão
FILTER(Vendor, Vendor.AccountNum="US-101")
.Selecione Validar para inspecionar o componente de mapeamento de modelo editável na página Designer de mapeamento de modelo e verifique se a expressão
FILTER(Vendor, Vendor.AccountNum="US-101")
na fonte de dados Vendor pode ser consultada.Modifique a fonte de dados Vendor adicionando um campo aninhado do tipo Campo calculado para obter o número da conta do fornecedor resumido.
Nomeie o novo campo aninhado $AccNumber e configure-a para que contenha a expressão
TRIM(Vendor.AccountNum)
.Selecione Validar para inspecionar o componente de mapeamento de modelo editável na página Designer de mapeamento de modelo e verifique se a expressão
FILTER(Vendor, Vendor.AccountNum="US-101")
na fonte de dados Vendor pode ser consultada.Observe que ocorre um erro de validação, porque a fonte de dados Vendor contém um campo aninhado do tipo Campo calculado que não permite que a expressão da fonte de dados FilteredVendor seja convertida na instrução SQL direta.
A ilustração a seguir mostra o erro de runtime exibido se você ignorar o aviso e selecionar Executar para executar um formato configurado para usar o mapeamento de modelo.
Resolução automática
Nenhuma opção para corrigir esse problema automaticamente está disponível.
Resolução manual
Opção 1
Em vez de adicionar um campo aninhado do tipo Campo calculado à fonte de dados Vendor, adicione o campo aninhado $AccNumber à fonte de dados FilteredVendor e configure-a para que ela contenha a expressão TRIM(FilteredVendor.AccountNum)
. Dessa forma, a expressão FILTER(Vendor, Vendor.AccountNum="US-101")
pode ser executada no nível do SQL e pode calcular o campo aninhado $AccNumber posteriormente.
Opção 2
Altere a expressão da fonte de dados FilteredVendor de FILTER(Vendor, Vendor.AccountNum="US-101")
para WHERE(Vendor, Vendor.AccountNum="US-101")
. Não recomendamos que você altere a expressão para uma tabela que tenha um grande volume de dados (tabela transacional), pois todos os registros serão buscados e a seleção dos registros necessários será feita na memória. Portanto, essa abordagem pode causar um baixo desempenho. Para obter mais informações, consulte Função de ER WHERE.
Capacidade de execução de uma fonte de dados GROUPBY
A fonte de dados GROUPBY divide o resultado da consulta em grupos de registros, geralmente com a finalidade de executar uma ou mais agregações em cada grupo. Cada fonte de dados GROUPBY pode ser configurada de forma que seja executada no nível do banco de dados ou na memória. Quando uma fonte de dados GROUPBY é configurada para ser executada no nível do banco de dados, o ER verifica se uma consulta SQL direta pode ser estabelecida com uma fonte de dados referenciada nessa fonte. Se uma consulta direta não puder ser estabelecida, ocorrerá um erro de validação no designer de mapeamento de modelo de ER. A mensagem recebida informa que a fonte de dados GROUPBY configurada não pode ser executada no runtime.
As etapas a seguir mostram como esse problema pode ocorrer.
Comece a configurar o componente de mapeamento de modelo de ER.
Adicione uma fonte de dados do tipo Tipos de tabela \ do Dynamics 365 for Operations.
Nomeie a nova fonte de dados como Trans. No campo Table, selecione VendTrans para especificar que essa fonte de dados solicite a tabela VendTrans.
Adicione uma fonte de dados do tipo Agrupar por.
Nomeie a nova fonte de dados como GroupedTrans e configure-a da seguinte maneira:
- Selecione a fonte de dados Trans como a fonte de registros que devem ser agrupados.
- No campo Local de execução, selecione Consulta para especificar que você deseja executar essa fonte de dados no nível do banco de dados.
Selecione Validar para inspecionar o componente de mapeamento de modelo editável na página Designer de mapeamento de modelo e verifique se a fonte de dados GroupedTrans pode ser consultada.
Modifique a fonte de dados Trans adicionando um campo aninhado do tipo Campo calculado para obter o número da conta do fornecedor resumido.
Nomeie a nova fonte de dados como $AccNumber e configure-a para que contenha a expressão
TRIM(Trans.AccountNum)
.Selecione Validar para inspecionar o componente de mapeamento de modelo editável na página Designer de mapeamento de modelo e verifique se a fonte de dados GroupedTrans pode ser consultada.
Observe que ocorre um erro de validação, porque a fonte de dados Trans contém um campo aninhado do tipo Campo calculado que não permite que a chamada para a fonte de dados GroupedTrans seja convertida na instrução SQL direta.
A ilustração a seguir mostra o erro de runtime exibido se você ignorar o aviso e selecionar Executar para executar um formato configurado para usar o mapeamento de modelo.
Resolução automática
Nenhuma opção para corrigir esse problema automaticamente está disponível.
Resolução manual
Opção 1
Em vez de adicionar um campo aninhado do tipo Campo calculado à fonte de dados Trans, adicione o campo aninhado $AccNumber para o item GroupedTrans.lines da fonte de dados GroupedTrans e configure-a para que ela contenha a expressão TRIM(GroupedTrans.lines.AccountNum)
. Dessa forma, a fonte de dados GroupedTrans pode ser executada no nível do SQL e pode calcular o campo aninhado $AccNumber posteriormente.
Opção 2
Altere o valor do campo Local de execução da fonte de dados GroupedTrans de Consulta para Na memória. Não recomendamos que você altere o valor para uma tabela que tenha um grande volume de dados (tabela transacional), pois todos os registros serão buscados e o agrupamento e a agregação serão feitos na memória. Portanto, essa abordagem pode causar um baixo desempenho.
Capacidade de execução de uma fonte de dados JOIN
A fonte de dados JOIN combina registros de duas ou mais tabelas de banco de dados com base nos campos relacionados. Cada fonte de dados JOIN pode ser configurada de forma que seja executada no nível do banco de dados ou na memória. Quando uma fonte de dados JOIN é configurada para ser executada no nível do banco de dados, o ER verifica se uma consulta SQL direta pode ser estabelecida com fontes de dados referenciadas nessa fonte. Se uma consulta SQL não puder ser estabelecida com pelo menos uma fonte de dados referenciada, ocorrerá um erro de validação no designer de mapeamento de modelo de ER. A mensagem recebida informa que a fonte de dados JOIN configurada não pode ser executada no runtime.
As etapas a seguir mostram como esse problema pode ocorrer.
Comece a configurar o componente de mapeamento de modelo de ER.
Adicione uma fonte de dados do tipo Tipos de tabela \ do Dynamics 365 for Operations.
Nomeie a nova fonte de dados como Vendor. No campo Tabela, selecione VendTable para especificar que essa fonte de dados solicitará a tabela VendTable.
Adicione uma fonte de dados do tipo Tipos de tabela \ do Dynamics 365 for Operations.
Nomeie a nova fonte de dados como Trans. No campo Table, selecione VendTrans para especificar que essa fonte de dados solicite a tabela VendTrans.
Adicione uma fonte de dados do tipo Campo calculado como o campo aninhado da fonte de dados Vendor.
Nomeie a nova fonte de dados como FilteredTrans e configure-a para que contenha a expressão
FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
.Adicione uma fonte de dados do tipo Junção.
Nomeie a nova fonte de dados como JoinedList e configure-a da seguinte maneira:
- Adicione a fonte de dados Vendor como o primeiro conjunto de registros a unir.
- Adicione a fonte de dados Vendor.FilteredTrans como o segundo conjunto de registros a unir. Selecione INTERNO como o tipo.
- No campo Executar, selecione Consulta para especificar que você deseja executar essa fonte de dados no nível do banco de dados.
Selecione Validar para inspecionar o componente de mapeamento de modelo editável na página Designer de mapeamento de modelo e verifique se a fonte de dados JoinedList pode ser consultada.
Altere a expressão da fonte de dados Vendor.FilteredTrans de
FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
paraWHERE(Trans, Trans.AccountNum=Vendor.AccountNum)
.Selecione Validar para inspecionar o componente de mapeamento de modelo editável na página Designer de mapeamento de modelo e verifique se a fonte de dados JoinedList pode ser consultada.
Observe que ocorre um erro de validação, pois a expressão da fonte de dados Vendor.FilteredTrans não pode ser convertida na chamada SQL direta. Além disso, a chamada SQL direta não permite que a chamada da fonte de dados JoinedList seja traduzida para a instrução SQL direta.
A ilustração a seguir mostra o erro de runtime exibido se você ignorar o aviso e selecionar Executar para executar um formato configurado para usar o mapeamento de modelo.
Resolução automática
Nenhuma opção para corrigir esse problema automaticamente está disponível.
Resolução manual
Opção 1
Altere a expressão da fonte de dados Vendor.FilteredTrans de WHERE(Trans, Trans.AccountNum=Vendor.AccountNum)
Voltar para FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
, conforme indicado no aviso.
Opção 2
Altere o valor do campo Executar da fonte de dados JoinedList de Consulta para Na memória. Não recomendamos que você altere o valor para uma tabela que tenha um grande volume de dados (tabela transacional), pois todos os registros serão buscados e a união ocorre na memória. Portanto, essa abordagem pode causar um baixo desempenho. Um aviso de validação é exibido para informar sobre esse risco.
Preferência da função FILTER x WHERE
A função de ER FILTER incorporada é usada para acessar tabelas de aplicativos, exibições ou entidades de dados, fazendo uma única chamada SQL para obter os dados necessários como uma lista de registros. A função WHERE busca todos os registros da origem específica e faz a seleção de registro na memória. Uma fonte de dados do tipo Lista de registros é usada como um argumento dessas duas funções e especifica um origem para obter os registros. O ER verifica se uma chamada SQL direta pode ser estabelecida com uma fonte de dados referenciada na função WHERE. Se uma chamada direta não puder ser estabelecida, será exibido um aviso de validação no Designer de mapeamento de modelo de ER. A mensagem recomenda que você use a função FILTER em vez da função WHERE para melhorar a eficiência.
As etapas a seguir mostram como esse problema pode ocorrer.
Comece a configurar o componente de mapeamento de modelo de ER.
Adicione uma fonte de dados do tipo Tipos de tabela \ do Dynamics 365 for Operations.
Nomeie a nova fonte de dados como Trans. No campo Table, selecione VendTrans para especificar que essa fonte de dados solicite a tabela VendTrans.
Adicione uma fonte de dados do tipo Campo calculado como o campo aninhado da fonte de dados Vendor.
Nomeie a nova fonte de dados como FilteredTrans e configure-a para que contenha a expressão
WHERE(Trans, Trans.AccountNum="US-101")
.Adicione uma fonte de dados do tipo Tipos de tabela \ do Dynamics 365 for Operations.
Nomeie a nova fonte de dados como Vendor. No campo Tabela, selecione VendTable para especificar que essa fonte de dados solicitará a tabela VendTable.
Adicione uma fonte de dados do tipo Campo calculado.
Nomeie a nova fonte de dados como FilteredVendor e configure-a para que contenha a expressão
WHERE(Vendor, Vendor.AccountNum="US-101")
.Selecione Validar para inspecionar o componente de mapeamento de modelo editável na página Designer de mapeamento de modelo.
Observe que os avisos de validação recomendam que você use a função FILTER em vez da função WHERE para as fontes de dados FilteredVendor e FilteredTrans.
Resolução automática
Selecione Corrigir para substituir automaticamente a função WHERE pela função FILTER na expressão de todas as fontes de dados que aparecem na grade, na guia Avisos, para esse tipo de inspeção.
Como alternativa, você pode selecionar a linha para um único aviso na grade e depois Corrigir selecionados. Nesse caso, somente a expressão mencionada no aviso selecionado é alterada automaticamente na fonte de dados.
Resolução manual
Você pode ajustar manualmente as expressões de todas as fontes de dados na grade de validação substituindo a função WHERE pela função FILTER.
Preferência da função ALLITEMSQUERY x ALLITEMS
As funções incorporadas de ER ALLITEMSe ALLITEMSQUERY obtêm um valor de Lista de registro simplificado que consiste em uma lista de registros que representam todos os itens correspondentes ao caminho especificado. O ER verifica se uma chamada SQL direta pode ser estabelecida com uma fonte de dados referenciada na função ALLITEMS. Se uma chamada direta não puder ser estabelecida, será exibido um aviso de validação no Designer de mapeamento de modelo de ER. A mensagem recomenda que você use a função ALLITEMSQUERY em vez da função ALLITEMS para melhorar a eficiência.
As etapas a seguir mostram como esse problema pode ocorrer.
Comece a configurar o componente de mapeamento de modelo de ER.
Adicione uma fonte de dados do tipo Tipos de tabela \ do Dynamics 365 for Operations.
Nomeie a nova fonte de dados como Vendor. No campo Tabela, selecione VendTable para especificar que essa fonte de dados solicitará a tabela VendTable.
Adicione uma fonte de dados do tipo Campo calculado para obter registros de vários fornecedores.
Nomeie a nova fonte de dados como FilteredVendor e configure-a para que contenha a expressão
FILTER(Vendor, OR(Vendor.AccountNum="US-101",Vendor.AccountNum="US-102"))
.Adicione uma fonte de dados do tipo Campo calculado para obter as transações de todos os fornecedores filtrados.
Nomeie a nova fonte de dados como FilteredVendorTrans e configure-a para que contenha a expressão
ALLITEMS(FilteredVendor.'<Relations'.'VendTrans.VendTable_AccountNum')
.Selecione Validar para inspecionar o componente de mapeamento de modelo editável na página Designer de mapeamento de modelo.
Observe que ocorre um aviso de validação. A mensagem recomenda que você use a função ALLITEMSQUERY em vez da ALLITEMS para a fonte de dados FilteredVendorTrans.
Resolução automática
Selecione Corrigir para substituir automaticamente a função ALLITEMS pela função ALLITEMSQUERY na expressão de todas as fontes de dados que aparecem na grade, na guia Avisos, para esse tipo de inspeção.
Como alternativa, você pode selecionar a linha para um único aviso na grade e depois Corrigir selecionados. Nesse caso, somente a expressão mencionada no aviso selecionado é alterada automaticamente na fonte de dados.
Resolução manual
Você pode ajustar manualmente as expressões de todas as fontes de dados mencionadas na grade de validação substituindo a função ALLITEMS pela função ALLITEMSQUERY.
Consideração dos casos de lista vazia
Você pode configurar o componente de mapeamento de modelo ou formato de ER para obter o valor do campo de uma fonte de dados do tipo Lista de registros. O ER verifica se o seu design considera o caso em que uma fonte de dados chamada não contém registros (ou seja, está vazia) para evitar erros de runtime quando um valor é obtido a partir de um campo de um registro inexistente.
As etapas a seguir mostram como esse problema pode ocorrer.
Comece a configurar os componentes de mapeamento de modelo e formato de ER e de modelo de dados de ER simultaneamente.
Na árvore do modelo de dados, adicione um item raiz chamado Root3.
Modifique o item Root3 adicionando um item aninhado do tipo Lista de registros.
Nomeie o novo item aninhado Vendor.
Modifique o item Vendor da seguinte maneira:
- Adicione um campo aninhado do tipo Cadeia de caracteres e nomeie-o como Name.
- Adicione um campo aninhado do tipo Cadeia de caracteres e nomeie-o como AccountNumber.
No designer de mapeamento de modelos, no painel Fontes de dados, adicione uma fonte de dados do tipo Dynamics 365 for Operations \registros de Tabela.
Nomeie a nova fonte de dados como Vendor. No campo Tabela, selecione VendTable para especificar que essa fonte de dados solicitará a tabela VendTable.
Adicione uma fonte de dados do tipo Parâmetro de entrada de usuário \ geral para procurar uma conta de fornecedor na caixa de diálogo do runtime.
Nomeie a nova fonte de dados como RequestedAccountNum. No campo Rótulo, digite o número da conta do fornecedor. No campo Nome do tipo de dados de operações, deixe o valor padrão, Descrição.
Adicione uma fonte de dados do tipo Campo calculado para filtrar um fornecedor que é consultado.
Nomeie a nova fonte de dados como FilteredVendor e configure-a para que contenha a expressão
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Associe os itens do modelo de dados às fontes de dados configuradas da seguinte maneira:
- Associe FilteredVendor a Vendor.
- Associe FilteredVendor.AccountNum a Vendor.AccountNumber.
- Associe FilteredVendor.'name()' a Vendor.Name.
Na árvore de estrutura de formato, adicione os itens a seguir para gerar um documento de saída no formato XML que contém os detalhes do fornecedor:
Adicione o elemento XML da raiz Statement.
Para o elemento XML Statement, adicione o elemento XML Party.
Para o elemento XML Party, adicione os seguintes atributos de XML aninhados:
- Organização
- AccountNum
Associe elementos de formato às fontes de dados fornecidas da seguinte maneira:
- Associe o elemento de formato Statement\Party\Name ao campo de fonte de dados model.Vendor.Name.
- Associe o elemento de formato Statement\Party\Name ao campo de fonte de dados model.Vendor.Name.
Selecione Validar para inspecionar o componente de formato editável na página Designer de formato.
Observe que ocorre um erro de validação. A mensagem informa que um erro poderá ocorrer para os componentes de formato Statement\Party\Name e Statement\Party\AccountNum no runtime se a lista de
model.Vendor
estiver vazia.
A ilustração a seguir mostra o erro de runtime exibido se você ignorar o aviso, selecionar Executar para executar o formato e escolher o número de conta de um fornecedor inexistente. Como o fornecedor solicitado não existe, a lista de model.Vendor
estará vazia (ou seja, não conterá registros).
Resolução automática
Para a linha selecionada na grade, na guia Avisos, você pode selecionar Desvincular. A associação que é apontada na coluna Caminho é automaticamente removida dos elementos de formato.
Resolução manual
Opção 1
Você pode associar o elemento de formato Statement\Party\Name ao item de fonte de dados model.Vendor
. No runtime, essa associação chama a fonte de dados model.Vendor
primeiro. Quando o model.Vendor
retorna uma lista de registros vazia, os elementos de formato aninhados não são executados. Portanto, nenhum aviso de validação ocorre para essa configuração de formato.
Opção 2
Altere a associação do elemento de formato Statement\Party\Name de model.Vendor.Name
para FIRSTORNULL(model.Vendor).Name
. A associação atualizada condicionalmente converte o primeiro registro da fonte de dados model.Vendor
do tipo Lista de registros para uma nova fonte de dados do tipo Registro. Essa nova fonte de dados contém o mesmo conjunto de campos.
- Se pelo menos um registro estiver disponível na fonte de dados
model.Vendor
, os campos desse registro serão preenchidos com os valores dos campos do primeiro registro da fonte de dadosmodel.Vendor
. Nesse caso, a associação atualizada retorna o nome do fornecedor. - Caso contrário, cada campo do registro criado será preenchido com o valor padrão para o tipo de dados do campo. Nesse caso, a cadeia de caracteres em branco é retornada como o valor padrão do tipo de dados Cadeia de caracteres.
Portanto, nenhum aviso de validação ocorre no elemento de formato Statement\Party\Name quando ele está associado à expressão FIRSTORNULL(model.Vendor).Name
.
Opção 3
Se você deseja especificar explicitamente os dados inseridos em um documento gerado quando a fonte de dados model.Vendor
do tipo Lista de registros não retornar registros (texto Não disponível neste exemplo), altere a associação do elemento de formato Statement\Party\Name de model.Vendor.Name
para IF(NOT(ISEMPTY(model.Vendor)), model.Vendor.Name, "Not available")
. Você também pode usar a expressão IF(COUNT(model.Vendor)=0, model.Vendor.Name, "Not available")
.
Configuração adicional
A inspeção também avisa sobre outro problema em potencial. Por padrão, ao vincular os elementos de formato Statement\Party\Name e Statement\Party\AccountNum aos campos adequados da fonte de dados model.Vendor
de tipo Lista de registros, essas associações serão executadas e receberão os valores dos campos apropriados do primeiro registro da fonte de dados model.Vendor
se essa lista não estiver vazia.
Como você não associou o elemento de formato Statement\Party à fonte de dados model.Vendor
, o elemento Statement\Party não será iterado para cada registro da fonte de dados model.Vendor
durante a execução de formato. Em vez disso, se essa lista contiver vários registros, o documento gerado será preenchido com informações somente do primeiro registro da lista. Portanto, poderá ocorrer um problema se o formato se destinar a preencher um documento com informações sobre todos os fornecedores da fonte de dados model.Vendor
. Para corrigir esse problema, associe o elemento Statement\Party à fonte de dados model.Vendor
.
Capacidade de execução de uma expressão com função FILTER (armazenamento em cache)
Várias funções incorporadas de ER, incluindo FILTER e ALLITEMSQUERY, são usadas para acessar tabelas de aplicativos, exibições ou entidades de dados, fazendo uma única chamada SQL para obter os dados necessários como uma lista de registros. Uma fonte de dados do tipo Lista de registros é usada como um argumento de cada uma dessas funções e especifica uma origem de aplicativo para a chamada. O ER verifica se uma chamada SQL direta pode ser estabelecida com uma fonte de dados referenciada em uma dessas funções. Se uma chamada direta não puder ser estabelecida porque uma fonte de dados foi marcada como armazenada em cache, ocorrerá um erro de validação no designer de mapeamento de modelo de ER. A mensagem recebida informa que a expressão de ER que contém uma dessas funções não pode ser executada no runtime.
As etapas a seguir mostram como esse problema pode ocorrer.
Comece a configurar o componente de mapeamento de modelo de ER.
Adicione uma fonte de dados do tipo Tipos de tabela \ do Dynamics 365 for Operations.
Nomeie a nova fonte de dados como Vendor. No campo Tabela, selecione VendTable para especificar que essa fonte de dados solicitará a tabela VendTable.
Adicione uma fonte de dados do tipo Parâmetro de entrada de usuário \ geral para procurar uma conta de fornecedor na caixa de diálogo do runtime.
Nomeie a nova fonte de dados como RequestedAccountNum. No campo Rótulo, digite o número da conta do fornecedor. No campo Nome do tipo de dados de operações, deixe o valor padrão, Descrição.
Adicione uma fonte de dados do tipo Campo calculado para filtrar um fornecedor que é consultado.
Nomeie a nova fonte de dados como FilteredVendor e configure-a para que contenha a expressão
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Marque a fonte de dados Vendor como armazenada em cache.
Selecione Validar para inspecionar o componente de mapeamento de modelo editável na página Designer de mapeamento de modelo.
Observe que ocorre um erro de validação. A mensagem informa que a função FILTER não pode ser aplicada à fonte de dados Vendor armazenada em cache.
A ilustração a seguir mostra o erro de runtime exibido se você ignorar o aviso e selecionar Executar para executar um formato.
Resolução automática
Nenhuma opção para corrigir esse problema automaticamente está disponível.
Resolução manual
Opção 1
Remova o sinalizador Cache da fonte de dados Vendor. A fonte de dados FilteredVendor se tornará executável, mas a fonte de dados Vendor referenciada na tabela VendTable será acessada toda vez que FilteredVendor for chamada.
Opção 2
Altere a expressão da fonte de dados FilteredVendor de FILTER(Vendor, Vendor.AccountNum="US-101")
para WHERE(Vendor, Vendor.AccountNum="US-101")
. Nesse caso, a fonte de dados Vendor referenciada na tabela VendTable será acessada somente durante a primeira chamada da fonte Vendor. No entanto, a seleção de registros será feita na memória. Portanto, essa abordagem pode causar um baixo desempenho.
Associação ausente
Quando você configura um componente de formato de ER, o modelo de dados de ER base é oferecido como uma fonte de dados padrão para o formato de ER. Quando o formato de ER configurado é executado, o mapeamento de modelo padrão para o modelo base é usado para preencher o modelo de dados com os dados do aplicativo. O Designer de formato de ER mostrará um aviso se você associar um elemento de formato a um item de modelo de dados que não esteja vinculado a nenhuma fonte de dados no mapeamento de modelo selecionado como o padrão para o formato editável. Esse tipo de associação não pode ser executado no runtime, pois o formato executado não pode preencher um elemento de associação com dados de aplicativo. Portanto, ocorre um erro no runtime.
As etapas a seguir mostram como esse problema pode ocorrer.
Comece a configurar os componentes de mapeamento de modelo e formato de ER e de modelo de dados de ER simultaneamente.
Na árvore do modelo de dados, adicione um item raiz chamado Root3.
Modifique o item Root3 adicionando um novo item aninhado do tipo Lista de registros.
Nomeie o novo item aninhado Vendor.
Modifique o item Vendor da seguinte maneira:
- Adicione um campo aninhado do tipo Cadeia de caracteres e nomeie-o como Name.
- Adicione um campo aninhado do tipo Cadeia de caracteres e nomeie-o como AccountNumber.
No designer de mapeamento de modelos, no painel Fontes de dados, adicione uma fonte de dados do tipo Dynamics 365 for Operations \registros de Tabela.
Nomeie a nova fonte de dados como Vendor. No campo Tabela, selecione VendTable para especificar que essa fonte de dados solicitará a tabela VendTable.
Adicione uma fonte de dados do tipo Parâmetro de entrada de usuário \ geral para consultar uma conta de fornecedor na caixa de diálogo do runtime.
Nomeie a nova fonte de dados como RequestedAccountNum. No campo Rótulo, digite o número da conta do fornecedor. No campo Nome do tipo de dados de operações, deixe o valor padrão, Descrição.
Adicione uma fonte de dados do tipo Campo calculado para filtrar um fornecedor que é consultado.
Nomeie a nova fonte de dados como FilteredVendor e configure-a para que contenha a expressão
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Associe os itens do modelo de dados às fontes de dados configuradas da seguinte maneira:
- Associe FilteredVendor a Vendor.
- Associe FilteredVendor.AccountNum a Vendor.AccountNumber.
Observação
O campo do modelo de dados Vendor.Name permanece não associado.
Na árvore de estrutura de formato, adicione os itens a seguir para gerar um documento de saída no formato XML que contém os detalhes dos fornecedores da consulta:
Adicione o elemento XML da raiz Statement.
Para o elemento XML Statement, adicione o elemento XML Party.
Para o elemento XML Party, adicione os seguintes atributos de XML aninhados:
- Organização
- AccountNum
Associe os elementos de formato às fontes de dados fornecidas da seguinte maneira:
- Associe o elemento de formato Statement\Party ao item de fonte de dados
model.Vendor
. - Associe o elemento de formato Statement\Party\Name ao campo de fonte de dados model.Vendor.Name.
- Associe o elemento de formato Statement\Party\Name ao campo de fonte de dados model.Vendor.Name.
- Associe o elemento de formato Statement\Party ao item de fonte de dados
Selecione Validar para inspecionar o componente de formato editável na página Designer de formato.
Observe que ocorre um aviso de validação. A mensagem informa que o campo da fonte de dados model.Vendor.Name não está associado a nenhuma fonte de dados no mapeamento de modelo configurado para uso pelo formato. Portanto, o elemento de formato Statement\Party\Name pode não ser preenchido no runtime, e um erro de runtime pode ocorrer.
A ilustração a seguir mostra o erro de runtime exibido se você ignorar o aviso e selecionar Executar para executar um formato.
Resolução automática
Nenhuma opção para corrigir esse problema automaticamente está disponível.
Resolução manual
Opção 1
Modifique o mapeamento de modelo configurado adicionando uma associação ao campo da fonte de dados model.Vendor.Name.
Opção 2
Modifique o formato configurado removendo a associação do elemento de formato Demonstrativo\Parte\Nome.
Modelo não vinculado
Quando você configurar manualmente um componente de formato de ER para usar um modelo de modo a gerar um documento de saída, adicione o elemento Excel\File de forma manual, inclua o modelo necessário como anexo do componente editável e selecione o anexo no elemento Excel\File adicionado. Dessa forma, você indica que o elemento adicionado preencherá o modelo selecionado no runtime. Ao configurar uma versão do componente do formato no status Rascunho, você poderá adicionar vários modelos ao componente editável e selecionar cada modelo no elemento Excel\Arquivo para executar o formato ER. Dessa forma, você pode ver como os modelos diferentes são preenchidos no runtime. Se você tem modelos que não estão selecionados em nenhum elemento Excel\File, o Designer de formato de ER avisa que esses modelos serão excluídos da versão do componente de formato de ER editável quando o status for alterado de Rascunho para Concluído.
As etapas a seguir mostram como esse problema pode ocorrer.
Comece a configurar o componente de formato de ER.
Na árvore de estrutura de formato, adicione o elemento Excel\File.
Adicione um arquivo de pasta de trabalho do Excel, A.xlsx, como anexo para o elemento Excel\File que você acabou de incluir. Use o tipo de documento configurado nos parâmetros de ER para especificar o armazenamento dos modelos de formato de ER.
Adicione outro arquivo de pasta de trabalho do Excel, B.xlsx, como anexo para o elemento Excel\File. Use o mesmo tipo de documento usado para o arquivo de pasta de trabalho A.
No elemento Excel\File, selecione arquivo de pasta de trabalho A.
Selecione Validar para inspecionar o componente de formato editável na página Designer de formato.
Observe que ocorre um aviso de validação. A mensagem informa que o arquivo de pasta de trabalho B.xlsx não está vinculado a nenhum componente e será removido quando o status da versão da configuração mudar.
Resolução automática
Nenhuma opção para corrigir esse problema automaticamente está disponível.
Resolução manual
Modifique o formato configurado removendo todos os modelos que não estão vinculados a nenhum elemento Excel\File.
Formato não sincronizado
Quando você configurar um componente de formato de ER para usar um modelo do Excel de modo a gerar um documento de saída, adicione o elemento Excel\File de forma manual, inclua o modelo necessário como anexo do componente editável e selecione o anexo no elemento Excel\File adicionado. Dessa forma, você indica que o elemento adicionado preencherá o modelo selecionado no runtime. Como o modelo do Excel adicionado foi criado externamente, o formato de ER editável pode conter nomes do Excel que estão faltando no modelo incluído. O Designer de formato de ER avisa sobre as inconsistências entre as propriedades dos elementos de formato de ER que referenciam nomes não incluídos no modelo do Excel adicionado.
As etapas a seguir mostram como esse problema pode ocorrer.
Comece a configurar o componente de formato de ER.
Na árvore de estrutura de formato, adicione do elemento Report do Excel\File.
Adicione um arquivo de pasta de trabalho do Excel, A.xlsx, como anexo para o elemento Excel\File que você acabou de incluir. Use o tipo de documento configurado nos parâmetros de ER para especificar o armazenamento dos modelos de formato de ER.
Importante
Verifique se a pasta de trabalho do Excel adicionada não contém o nome ReportTitle.
Adicione o elemento Título de Excel\Célula a seguir como elemento aninhado do elemento Relatório. No campo Intervalo do Excel, insira ReportTitle.
Selecione Validar para inspecionar o componente de formato editável na página Designer de formato.
Observe que ocorre um aviso de validação. A mensagem informa que o nome ReportTitle não existe na planilha Sheet1 do modelo do Excel que você está usando.
Resolução automática
Nenhuma opção para corrigir esse problema automaticamente está disponível.
Resolução manual
Opção 1
Modifique o formato configurado removendo todos os elementos que referenciam nomes do Excel que estão faltando no modelo.
Opção 2
Atualize o formato de ER editável importando um modelo do Excel. A estrutura do formato de ER editável será sincronizado com a estrutura do modelo do Excel importado.
Configuração adicional
Para saber como a estrutura de formato pode ser sincronizada com um modelo de ER no editor de modelos do Gerenciamento de documentos comerciais , consulte Atualizar a estrutura de um modelo de documento comercial.
Não sincronizado com um formato de modelo do Word
Quando você configurar um componente de formato ER para usar um modelo do Word de modo a gerar um documento de saída, poderá adicionar manualmente o elemento Excel\Arquivo, adicionar o modelo do Word necessário como anexo do componente editável e selecionar o anexo no elemento Excel\Arquivo adicionado.
Observação
Quando o documento do Word estiver anexado, o designer de formato ER apresentará o elemento editável como Word\Arquivo.
Dessa forma, você indica que o elemento adicionado preencherá o modelo selecionado no runtime. Como o modelo do Word adicionado foi criado externamente, o formato ER editável pode conter referências aos controles de conteúdo do Word ausentes do modelo adicionado. O Designer de formato de ER avisa sobre as inconsistências entre as propriedades dos elementos de formato de ER que referenciam controles de conteúdo não incluídos no modelo do Word adicionado.
Para obter um exemplo que mostre como esse problema pode ocorrer, consulte Configurar o formato editável para suprimir a seção de resumo.
Resolução automática
Nenhuma opção para corrigir esse problema automaticamente está disponível.
Resolução manual
Opção 1
Modifique o formato configurado excluindo a fórmula Removida do elemento de formato mencionado no aviso de validação.
Opção 2
Modifique o modelo usando o Word adicionando a marca necessária ao controle de conteúdo relevante do Word.
Nenhum mapeamento padrão
Quando a inspeção de Associação ausente é feita, as vinculações de formato inspecionado são avaliadas em relação às associações do componente de mapeamento de modelo relevante. Como você pode importar várias configurações de mapeamento de modelos er para a sua instância de finanças, e cada configuração pode conter o componente de mapeamento de modelo aplicável, uma configuração deve ser selecionada como a configuração padrão. Caso contrário, quando você tentar executar, editar ou validar o formato ER inspecionado, ocorrerá uma exceção e a seguinte mensagem será exibida: "Há mais de um mapeamento de modelo para o modelo de dados <model name (root descriptor)> nas configurações <configuration names separated by comma>. Defina uma das configurações como padrão."
Para obter um exemplo que mostra como esse problema pode ocorrer e como ele pode ser corrigido, consulte Gerenciar vários mapeamentos derivados para uma única raiz do modelo.
Configuração inconsistente de componentes Cabeçalho ou Rodapé
Ao configurar um componente de formato ER para usar um modelo do Excel para gerar um documento de saída, você poderá adicionar o componente Excel\Cabeçalho para preencher os cabeçalhos na parte superior de uma planilha em uma pasta de trabalho do Excel. Você também pode adicionar o componente Excel\Rodapé para preencher os rodapés na parte inferior de uma planilha. Para cada componente Excel\Cabeçalho ou Excel\Rodapé adicionado, você deve definir a propriedade Aparência de cabeçalho/rodapé para especificar as páginas para as quais o componente é executado. Como você pode configurar vários componentes Excel\Cabeçalho ou Excel\Rodapé para um único componente de Planilha e pode gerar diferentes cabeçalhos ou rodapés para diferentes tipos de páginas em uma planilha do Excel, você deve configurar um único componente Excel\Cabeçalho ou Excel\Rodapé para um valor específico da propriedade Aparência do cabeçalho/rodapé. Se mais de um componente Excel\Cabeçalho ou Excel\Rodapé estiver configurado para um valor específico da propriedade Aparência de cabeçalho/rodapé, ocorrerá um erro de validação e você receberá a seguinte mensagem de erro: "Cabeçalhos/rodapés (<tipo de componente: Cabeçalho ou Rodapé>) são inconsistentes."
Resolução automática
Nenhuma opção para corrigir esse problema automaticamente está disponível.
Resolução manual
Opção 1
Modifique o formato configurado excluindo um dos componentes Excel\Cabeçalho ou Excel\Rodapé inconsistentes.
Opção 2
Modifique o valor da propriedade Aparência de cabeçalho/rodapé para um dos componentes Excel\Cabeçalho ou Excel\Rodapé inconsistentes.
Configuração inconsistente do componente da Página
Ao configurar um componente de formato ER para usar um modelo do Excel para gerar um documento de saída, você pode adicionar a Página\do Excelpara paginar um documento gerado usando fórmulas de ER. Para cada componente da Página\do Excel que você adicionar, você pode adicionar vários componentes do Intervalo e ainda manter a conformidade com a seguinte estrutura:
- O primeiro componente do Intervalo aninhado pode ser configurado para que a propriedade Direção da replicação seja definida como Sem replicação. Esse intervalo é usado para criar cabeçalhos de página em documentos gerados.
- Você pode adicionar muitos outros componentes do Intervalo aninhado onde a propriedade Direção da replicação é definida como Vertical. Esses intervalos são usados para preencher documentos gerados.
- O último componente do Intervalo aninhado pode ser configurado para que a propriedade Direção da replicação seja definida como Sem replicação. Esse intervalo é usado para criar rodapés de página em documentos gerados e para adicionar as quebras de página necessárias.
Se você não seguir a estrutura de um formato ER no designer de formato ER no tempo de design, ocorrerá um erro de validação e você receberá a seguinte mensagem de erro: "Há mais de dois componentes de intervalo sem replicação. Remova componentes desnecessários."
Resolução automática
Nenhuma opção para corrigir esse problema automaticamente está disponível.
Resolução manual
Opção 1
Modifique o formato configurado alterando a propriedade Direção da replicação para todos os componentes do Intervalo\do Excel inconsistentes.
Capacidade de execução de uma expressão com função ORDERBY
A função interna ER ORDERBY é usada para classificar os registros de uma fonte de dados ER do tipo Lista de registros que é especificado como um argumento da função.
Argumentos da função ORDERBY
podem ser especificados para classificar registros de tabelas de aplicativos, exibições ou entidades de dados, fazendo uma única chamada de banco de dados para obter os dados classificados como uma lista de registros. Uma fonte de dados do tipo Lista de registros é usada como um argumento da função e especifica a origem do aplicativo para a chamada.
O ER verifica se uma consulta de banco de dados direta pode ser estabelecida com uma fonte de dados referenciada na função ORDERBY
. Se uma consulta direta não puder ser estabelecida, ocorrerá um erro de validação no designer de mapeamento de modelo de ER. A mensagem recebida informa que a expressão de ER que inclui a função ORDERBY
não pode ser executada no runtime.
As etapas a seguir mostram como esse problema pode ocorrer.
Comece a configurar o componente de mapeamento de modelo de ER.
Adicione uma fonte de dados do tipo Tipos de tabela \ do Dynamics 365 for Operations.
Nomeie a nova fonte de dados como Vendor. No campo Tabela, selecione VendTable para especificar que essa fonte de dados solicitará a tabela VendTable.
Adicione uma fonte de dados do tipo Campo calculado.
Nomeie a nova fonte de dados como OrderedVendors e configure-a para que contenha a expressão
ORDERBY("Query", Vendor, Vendor.AccountNum)
.Selecione Validar para inspecionar o componente de mapeamento de modelo editável na página Designer de mapeamento de modelo e verifique se a expressão na fonte de dados OrderedVendors pode ser consultada.
Modifique a fonte de dados Vendor adicionando um campo aninhado do tipo Campo calculado para obter o número da conta do fornecedor resumido.
Nomeie o novo campo aninhado $AccNumber e configure-a para que contenha a expressão
TRIM(Vendor.AccountNum)
.Selecione Validar para inspecionar o componente de mapeamento de modelo editável na página Designer de mapeamento de modelo e verifique se a expressão na fonte de dados Fornecedor pode ser consultada.
Observe que ocorre um erro de validação porque a fonte de dados Fornecedor contém um campo aninhado do tipo Campo calculado que não permite a conversão da expressão da fonte de dados OrderedVendors na instrução de banco de dados direta. O mesmo erro ocorrerá no tempo de execução se você ignorar o erro de validação e selecionar Executar para executar esse mapeamento de modelo.
Resolução automática
Nenhuma opção para corrigir esse problema automaticamente está disponível.
Resolução manual
Opção 1
Em vez de adicionar um campo aninhado do tipo Campo calculado à fonte de dados Fornecedor, adicione o campo aninhado $AccNumber à fonte de dados FilteredVendors e configure o campo para que ele contenha a expressão TRIM(FilteredVendor.AccountNum)
. Dessa forma, a expressão ORDERBY("Query", Vendor, Vendor.AccountNum)
pode ser executada no nível do banco de dados e o cálculo do campo aninhado $AccNumber pode ser feito posteriormente.
Opção 2
Altere a expressão da fonte de dados FilteredVendors de ORDERBY("Query", Vendor, Vendor.AccountNum)
para ORDERBY("InMemory", Vendor, Vendor.AccountNum)
. Não é recomendável alterar a expressão para uma tabela com um grande volume de dados (tabela transacional), pois todos os registros serão buscados e a ordenação dos registros necessários será feita na memória. Portanto, essa abordagem pode causar um baixo desempenho.
Artefato de aplicativo obsoleto
Ao criar um componente de mapeamento de modelo ER ou um componente de formato ER, você pode configurar uma expressão ER para chamar um artefato de aplicativo no ER, como uma tabela de banco de dados, um método de uma classe, etc. No Finance versão 10.0.30 e posterior, você pode forçar o ER para que avise você de que o artefato de aplicativo referido é marcado no código-fonte como obsoleto. Este aviso pode ser útil porque geralmente, os artefatos obsoletos são eventualmente removidos do código-fonte. Ser informado sobre o status de um artefato pode impedir que você use o artefato obsoleto no componente ER editável antes da remoção do código-fonte, ajudando a evitar erros de chamada de artefatos de aplicativos não existentes de um componente ER no tempo de execução.
Habilite o recurso Validar elementos obsoletos de fontes de dados de relatórios eletrônicos no espaço de trabalho Gerenciamento de recursos para iniciar a avaliação do atributo obsoleto dos artefatos do aplicativo durante a inspeção de um componente de ER editável. O atributo obsoleto é avaliado atualmente para os seguintes tipos de artefatos de aplicativo:
- Tabela de banco de dados
- Campo de uma tabela
- Método de uma tabela
- Classe de aplicativo
- Método de uma classe
Observação
Um aviso ocorre durante a inspeção do componente de ER editável para uma fonte de dados que se refere a um artefato obsoleto somente quando essa fonte de dados é usada em pelo menos uma associação deste componente de ER.
Dica
Quando a classe SysObsoleteAttribute é usada para notificar o compilador sobre a emissão de mensagens de aviso em vez de erros, o aviso de inspeção apresenta o aviso de código de origem especificado em tempo de design na guia Detalhes do Designer de mapeamento de modelos ou da página Designer de formato.
A ilustração a seguir mostra o aviso de validação que ocorre quando o campo obsoleto DEL_Email
da tabela de aplicativo CompanyInfo
é vinculado a um campo de modelo de dados usando a fonte de dados configurada company
.
Resolução automática
Nenhuma opção para corrigir esse problema automaticamente está disponível.
Resolução manual
Modifique o formato ou o mapeamento de modelo configurado, removendo todas as vinculações a uma fonte de dados que se refere a um artefato de aplicativo obsoleto.
Recursos adicionais
Rastrear a execução de formatos de ER para solucionar problemas de desempenho
Visão geral de gerenciamento de documentos comerciais
Suprimir controles de conteúdo do Word em relatórios gerados
Gerenciar vários mapeamentos derivados para uma única raiz do modelo