Partilhar via


Utilizar origens de dados JOIN para obter dados de várias tabelas de aplicação nos mapeamentos de modelos de Relatórios eletrónicos (ER)

Ao configurar mapeamentos ou formatos de modelos de Relatórios eletrónicos (ER), é possível adicionar origens de dados necessárias do tipo Join. Durante a estruturação, uma origem de dados Join é configurada como um conjunto de várias origens de dados, em que cada uma devolve uma lista de registos. Para cada origem de dados, com exceção da primeira, é necessário definir as condições necessárias para associar os registos das origens de dados atuais e anteriores. Durante o runtime, uma origem de dados configurada do tipo Join devolve uma única lista de registos associada que contém campos dos registos de origens de dados aninhadas.

Os seguintes tipos de associações são atualmente suportados:

  • Associação externa (esquerda):
    • Associe todos os registos da primeira origem de dados (mais à esquerda) e, em seguida, qualquer correspondência de acordo com os registos das condições configuradas da segunda origem de dados (mais à direita).
  • Associação interna (direita):
    • Associe apenas os registos da primeira origem de dados (mais à esquerda) e apenas os registos da segunda origem de dados (mais à direita) que correspondam entre si de acordo com as condições configuradas.

Na origem de dados Join, quando todas as origens de dados são do tipo Registos de tabela, a execução da origem de dados Join pode ser efetuada ao nível da base de dados utilizando uma única instrução SQL. Esta instrução reduz o número de chamadas de base de dados, o que melhora o desempenho do mapeamento de modelos. Caso contrário, a execução da origem de dados Join é efetuada na memória.

Nota

A utilização da função VALUEIN em expressões de ER que especificam condições para a associação de registos em origens de dados do tipo Join ainda não é suportada. Visite a página Estruturador de fórmulas em Relatórios eletrónicos para obter mais detalhes sobre esta função.

Para obter mais informações sobre esta funcionalidade, conclua o exemplo neste tópico.

Exemplo: Utilizar origens de dados JOIN em mapeamentos de modelos de ER

Os passos seguintes explicam como o administrador de sistema ou o programador de relatórios eletrónicos podem configurar um mapeamento de modelos de relatórios eletrónicos (ER) para obter dados de várias tabelas de aplicação de uma só vez ao utilizar origens de dados do tipo Join para melhorar o desempenho de acesso aos dados. Estes passos podem ser efetuados para qualquer empresa de Dynamics 365 Finance ou Regulatory Configuration Services (RCS).

Pré-requisitos

Para concluir os exemplos neste tópico, tem de ter acesso a um dos seguintes itens, dependendo do serviço utilizado para concluir estes passos:

Acesso ao Finance para uma das seguintes funções:

  • Programador de relatórios eletrónicos
  • Consultor funcional de relatórios eletrónicos
  • Administrador de sistema

Acesso ao RCS para uma das seguintes funções:

  • Programador de relatórios eletrónicos
  • Consultor funcional de relatórios eletrónicos
  • Administrador de sistema

Também tem de concluir primeiro os passos indicados no procedimento Criar um fornecedor de configuração e marcá-lo como ativo.

Previamente, tem de transferir e guardar os seguintes ficheiros de configuração de ER de exemplo:

Descrição do conteúdo Nome do ficheiro
Ficheiro de configuração de Modelo de dados de ER de exemplo, que é utilizado como origem de dados para os exemplos. Modelo para aprender sobre origens de dados JOIN.version.1.1.xml
Ficheiro de configuração de mapeamento de modelos de ER de exemplo, que implementa o modelo de dados de ER para os exemplos. Mapeamento para aprender sobre origens de dados JOIN.version.1.1.xml
Ficheiro de configuração do formato de ER de exemplo. Este ficheiro descreve os dados para povoar o componente do formato de ER para os exemplos. Formato para aprender sobre origens de dados JOIN.version.1.1.xml

Ativar um fornecedor de configurações

  1. Aceda ao Finance ou RCS na primeira sessão do seu browser.

  2. Aceda a Administração da organização > Áreas de trabalho > Relatórios eletrónicos.

  3. Na página Configurações de localização, na secção Fornecedores de configuração, certifique-se de que o fornecedor de configuração para a empresa de exemplo Litware, Inc. está listado e marcado como Ativo. Se não vir este fornecedor de configuração, siga os passos indicados no procedimento Criar um fornecedor de configuração e marcá-lo como ativo.

    Área de trabalho dos relatórios eletrónicos.

Importar ficheiros de configuração de ER de exemplo

  1. Selecione Configurações de relatórios.

  2. Importe o ficheiro de configuração do modelo de dados de ER.

    1. Selecione Trocar.
    2. Selecione Carregar a partir do ficheiro XML.
    3. Selecione Procurar para localizar o ficheiro Model to learn JOIN data sources.version.1.1.xml.
    4. Selecione OK.
  3. Importe o ficheiro de configuração do mapeamento de modelos de ER.

    1. Selecione Trocar.
    2. Selecione Carregar a partir do ficheiro XML.
    3. Selecione Procurar para localizar o ficheiro Mapping to learn JOIN data sources.version.1.1.xml.
    4. Selecione OK.
  4. Importe o ficheiro de configuração do formato de ER.

    1. Selecione Trocar.
    2. Selecione Carregar a partir do ficheiro XML.
    3. Selecione Procurar para localizar o ficheiro Format to learn JOIN data sources.version.1.1.xml.
    4. Selecione OK.
  5. Na árvore de configurações, expanda o item Modelo para saber mais sobre origens de dados JOIN, bem como outros itens de modelo (quando disponíveis).

  6. Observe a lista de configurações de ER na árvore e os detalhes da versão no Separador Rápido Versões. Estes serão utilizados como origem de dados para o relatório de exemplo.

    Página de configurações de Relatórios eletrónicos.

Ativar as opções de rastreio de execução

  1. Selecione CONFIGURAÇÕES.

  2. Selecione Parâmetros de utilizador.

  3. Defina parâmetros de rastreio de execução tal como é mostrado na captura de ecrã abaixo.

    Página de parâmetros de utilizador de relatórios eletrónicos.

    Com estes parâmetros ativados, para cada execução do ficheiro de formato de ER importado, o rastreio de execução será gerado. Utilizando detalhes do rastreio de execução gerado, é possível analisar a execução do formato de ER e dos componentes de mapeamento de modelos de ER. Visite a página Rastrear a execução de formatos de ER para resolver problemas de desempenho para obter mais detalhes sobre a funcionalidade de rastreio de execução de ER.

Rever o mapeamento de modelos de ER (parte 1)

Reveja as definições do componente de mapeamento de modelos de ER. O componente está configurado para aceder a informações sobre versões de configurações de ER, detalhes de configurações e fornecedores de configuração sem utilizar origens de dados do tipo Join.

  1. Selecione a configuração Mapeamento para saber mais sobre origens de dados JOIN.

  2. Selecione Estruturador para abrir a lista de mapeamentos.

  3. Selecione Estruturador para rever os detalhes do mapeamento.

  4. Selecione Mostrar detalhes.

  5. Na árvore de configurações, expanda os itens do modelo de dados Set1 e Set1.Details:

    1. O vínculo Details: Record list = Versions indica que o item Set1.Details está vinculado à origem de dados Versões que devolve os registos da tabela ERSolutionVersionTable. Cada registo desta tabela representa uma única versão de uma configuração de ER. O conteúdo desta tabela é apresentado no Separador Rápido Versões na página Configurações.
    2. O vínculo ConfigurationVersion: String = @.PublicVersionNumber significa que o valor da versão pública da versão de cada configuração de ER é obtido a partir do campo PublicVersionNumber da tabela ERSolutionVersionTable e colocado no item ConfigurationVersion.
    3. O vínculo ConfigurationTitle: String = @.'>Relations'.Solution.Name indica que o nome de uma configuração de ER é obtido a partir do campo Nome da avaliação da tabela ERSolutionTable utilizando a relação muitos para um ('>Relations') entre as tabelas ERSolutionVersionTable e ERSolutionTable. Os nomes das configurações de ER da instância de aplicação atual são apresentados na árvore de configurações na página Configurações.
    4. O vínculo @.'>Relations'.Solution.'>Relations'.SolutionVendor.Name significa que o nome do fornecedor de configuração que é proprietário da configuração atual é obtido a partir do campo Nome da avaliação da tabela ERVendorTable utilizando a relação muitos para um entre as tabelas ERSolutionTable e ERVendorTable. Os nomes dos fornecedores de configuração de ER são apresentados na árvore de configurações na página Configurações no cabeçalho da página de cada configuração. A lista completa de fornecedores de configuração de ER está disponível na página da tabela Administração da organização > Relatórios eletrónicos > Fornecedor de configuração.

    Página do estruturador de mapeamento de modelos de ER, lista de itens de modelo de dados vinculados.

  6. Na árvore de configurações, expanda o item do modelo de dados Set1.Summary:

    1. O vínculo VersionsNumber: Integer = VersionsSummary.aggregated.VersionsNumber indica que o item Set1.Summary.VersionsNumber está vinculado ao campo de agregação VersionsNumber da origem de dados VersionsSummary do tipo GroupBy que foi configurado para devolver o número de registos da tabela ERSolutionVersionTable através da origem de dados Versions.

    Página Editar parâmetros "Agrupar por".

  7. Feche a página.

Rever o mapeamento de modelos de ER (parte 2)

Reveja as definições do componente de mapeamento de modelos de ER. O componente está configurado para aceder a informações sobre versões de configurações de ER, detalhes de configurações e fornecedores de configuração utilizando uma origem de dados do tipo Join.

  1. Na árvore de configurações, expanda os itens do modelo de dados Set2 e Set2.Details. O vínculo Details: Record list = Details indica que o item Set2.Details está vinculado à origem de dados Details configurada como origem de dados do tipo Join.

    Página do estruturador de mapeamento de modelos de ER que mostra itens do modelo de dados Set2:Record expandidos.

    A origem de dados Join pode ser adicionada ao selecionar a origem de dados Functions\Join:

    Página do estruturador de mapeamento de modelos de ER, tipo de origem de dados Join.

  2. Selecione a origem de dados Detalhes.

  3. Selecione Editar no painel Origens de dados.

  4. Selecione Editar associação.

  5. Selecione Mostrar detalhes.

    Página de parâmetros da origem de dados JOIN.

    Esta página é utilizada para estruturar a origem de dados necessária do tipo Join. Durante o runtime, esta origem de dados criará uma única lista de registos associada a partir das origens de dados na grelha de Lista associada. A associação de registos começará a partir da origem de dados ConfigurationProviders que está em primeiro lugar na grelha (a coluna Tipo está em branco para isso). Os registos de todas as outras origens de dados serão assim associados aos registos da origem de dados principal com base na ordem nesta grelha. Todas as origens de dados de associação têm de ser configuradas como uma origem de dados aninhada sob uma origem de dados de destino (a origem de dados 1Versions está aninhada sob 1Configurations; a origem de dados 1Configurations está aninhada sob ConfiguraRes). Cada origem de dados configurada tem de conter as condições para a associação. Na origem de dados desta Associação específica, são definidas as seguintes associações:

    • Cada registo da origem de dados ConfigurationProviders (referido na tabela ERVendorTable) é associado apenas a registos de 1Configurations (referidos na tabela ERSolutionTable) com o mesmo valor nos campos SolutionVendor e RecId. O tipo Associação interna é utilizado para esta associação, bem como as seguintes condições para registos correspondentes:

    FILTER (Configurations, Configurations.SolutionVendor = ConfigurationProviders.RecId)

    • Cada registo da origem de dados 1Configurations (referido na tabela ERSolutionTable) é associado aos únicos registos de 1Versions (referidos na tabela ERSolutionVersionTable) com o mesmo valor nos campos Solution e RecId. O tipo Associação interna é também utilizado para esta associação, bem como as seguintes condições para registos correspondentes:

    FILTER (ConfigurationVersions, ConfigurationVersions.Solution = ConfigurationProviders.'1Configurations'.RecId)

    • A opção Executar está configurada como Consulta, o que significa que esta origem de dados associada será executada durante o runtime a nível da base de dados como uma chamada SQL direta.

    Para associar registos de origens de dados que representam tabelas de aplicação, é possível especificar condições de associação utilizando pares de campos diferentes dos que descrevem as relações AOT existentes entre estas tabelas. Este tipo de associação também pode ser configurado para ser executado ao nível da base de dados.

  6. Feche a página.

  7. Selecione Cancelar.

  8. Na árvore de configurações, expanda o item do modelo de dados Set2.Summary:

    • O vínculo VersionsNumber: Integer = DetailsSummary.aggregated.VersionsNumber indica que o item Set2.Summary.VersionsNumber está vinculado ao campo de agregação VersionsNumber da origem de dados DetailsSummary do tipo GroupBy que foi configurado para devolver o número de registos associados da origem de dados Detalhes do tipo Join.
    • A opção de localização Executar está configurada como Consulta, o que significa que esta origem de dados GroupBy será executada durante o runtime como uma chamada SQL direta a nível da base de dados. Este comportamento é possível porque a origem de dados base Detalhes do tipo Join está configurada como executada a nível da base de dados.

    Página de parâmetros da origem de dados GROUPBY.

  9. Feche a página.

  10. Selecione Cancelar.

Executar formato de ER

  1. Aceda ao Finance ou RCS na segunda sessão do browser com as mesmas credenciais e empresa da primeira sessão.

  2. Aceda a Administração da organização > Relatórios eletrónicos > Configurações.

  3. Expanda a configuração Modelo para saber mais sobre origens de dados JOIN.

  4. Selecione a configuração Formato para saber mais sobre origens de dados JOIN.

  5. Selecione Estruturador.

  6. Selecione Mostrar detalhes.

  7. Selecione Mapeamento.

  8. Selecione Expandir/Fechar.

    Este formato foi criado para povoar um ficheiro de texto gerado com uma nova linha para cada versão de uma configuração de ER (sequência Versão). Cada linha gerada conterá o nome de um fornecedor de configuração proprietário da configuração atual, do nome de configuração e da versão de configuração separados por ponto e vírgula. A linha final do ficheiro gerado conterá o número de versões detetadas de configurações de ER (sequência Resumo).

    Página do estruturador de formatos de ER, separador Formato

    As origens de dados Dados e Resumo são utilizadas para povoar detalhes da versão de configuração no ficheiro gerado:

    • As informações do modelo de dados Set1 são utilizadas ao escolher Não para a origem de dados Seletor durante o runtime na página de diálogo do utilizador ao executar o formato de ER.
    • As informações do modelo de dados Set2 são utilizadas ao escolher Sim para a origem de dados Seletor durante o runtime na página de diálogo do utilizador.

    Página do estruturador de formatos de ER, separador Mapeamento.

  9. Selecione Executar.

  10. Na página de diálogo, selecione Não no campo Utilizar origens de dados JOIN.

  11. Selecione OK.

  12. Reveja o ficheiro gerado.

    Ficheiro gerado de parâmetros de relatórios eletrónicos que não utiliza a origem de dados JOIN.

Analisar o rastreio de execução do formato de ER

  1. Na primeira sessão de Finance ou RCS, selecione Estruturador.

  2. Selecione Rastreio de desempenho.

  3. Na grelha Rastreio de desempenho, selecione o registo superior do rastreio de execução mais recente de um formato de ER que utilizou o componente de mapeamento de modelos atual.

  4. Selecione OK.

    As estatísticas de execução informam sobre chamadas duplicadas para tabelas de aplicação:

    • ERSolutionTable foi chamado tantas vezes quanto o número de registos existentes de versão de configuração na tabela ERSolutionVersionTable, sendo que o número dessas chamadas pode ser reduzido em determinados momentos para melhoria de desempenho.
    • ERVendorTable foi chamada duas vezes para cada registo de versão de configuração que foi detetado na tabela ERSolutionVersionTable, sendo que o número dessas chamadas também pode ser reduzido.

    Estatísticas de execução na página do estruturador de mapeamento de modelos de ER.

  5. Feche a página.

Executar formato de ER

  1. Mude para o separador do browser com a segunda sessão de Finance ou RCS.

  2. Selecione Executar.

  3. Na página de diálogo, selecione Sim no campo Utilizar origens de dados JOIN.

  4. Selecione OK.

  5. Reveja o ficheiro gerado.

    Ficheiro gerado de parâmetros de relatórios eletrónicos que utiliza a origem de dados JOIN.

Analisar o rastreio de execução do formato de ER

  1. Na primeira sessão de Finance ou RCS, selecione Estruturador.

  2. Selecione Rastreio de desempenho.

  3. Na grelha Rastreio de desempenho, selecione o registo superior que representa o rastreio de execução mais recente de um formato de ER que utilizou o componente de mapeamento de modelos atual.

  4. Selecione OK.

    As estatísticas informam sobre o seguinte:

    • A base de dados da aplicação foi chamada uma vez para obter registos das tabelas ERVendorTable, ERSolutionTable e ERSolutionVersionTable para aceder aos campos necessários.

    Detalhes das estatísticas de desempenho da página do estruturador de mapeamento de modelos de ER.

    • A base de dados da aplicação foi chamada uma vez para calcular o número de versões de configuração através das associações configuradas na origem de dados Detalhes.

    Página do estruturador de mapeamento de modelos de ER que mostra chamadas de base de dados da aplicação.

Limitações

Como pode ver no exemplo deste tópico, a origem de dados JOIN pode ser incorporada a partir de várias origens de dados que descrevem os conjuntos de dados individuais dos registos que eventualmente têm de ser associados. Pode configurar essas origens de dados com a função de ER incorporada FILTER. Ao configurar a origem de dados para que seja chamada para além da origem de dados JOIN, pode utilizar os intervalos da empresa como parte da condição de seleção de dados. A implementação inicial da origem de dados JOIN não suporta origens de dados deste tipo. Por exemplo, ao chamar uma origem de dados baseada em FILTER no âmbito da execução de uma origem de dados JOIN, se a origem de dados chamada contiver intervalos da empresa como parte da condição de seleção de dados, ocorrerá uma exceção.

Na versão 10.0.12 do Microsoft Dynamics 365 Finance (agosto de 2020), pode utilizar os intervalos da empresa como parte da condição de seleção de dados em origens de dados baseadas em FILTER que são chamadas no âmbito da execução de uma origem de dados JOIN. Devido às limitações do construtor de consultas da aplicação, os intervalos da empresa são suportados apenas para a primeira origem de dados de uma origem de dados JOIN.

Exemplo

Por exemplo, tem de fazer uma única chamada para a base de dados da aplicação para obter a lista de transações de comércio externo de várias empresas e os detalhes do item de inventário que é referido nessas transações.

Neste caso, configure os seguintes artefactos no seu mapeamento de modelos de ER:

  • Origem de dados raiz Intrastat que representa a tabela Intrastat.
  • Origem de dados raiz Itens que representa a tabela InventTable.
  • Origem de dados raiz Empresas que devolve a lista de empresas (DEMF e GBSI neste exemplo) onde se deve aceder às transações. O código da empresa está disponível no campo Companies.Code.
  • Origem de dados raiz X1 que tem a expressão FILTER (Intrastat, VALUEIN(Intrastat.dataAreaId, Companies, Companies.Code)). Como parte da condição de seleção de dados, esta expressão contém a definição dos intervalos da empresa VALUEIN(Intrastat.dataAreaId, Companies, Companies.Code).
  • Origem de dados X2 como um item aninhado da origem de dados X1. Inclui a expressão FILTER (Items, Items.ItemId = X1.ItemId).

Finalmente, pode configurar uma origem de dados JOIN onde X1 é a primeira origem de dados e X2 é a segunda origem de dados. Pode especificar Consulta como opção Executar para forçar o ER a executar esta origem de dados ao nível da base de dados como uma chamada SQL direta.

Quando a origem de dados configurada é executada enquanto a execução de ER é rastreada, a seguinte instrução é mostrada no estruturador de mapeamento de modelos de ER como parte do rastreio de desempenho de ER.

SELECT ... FROM INTRASTAT T1 CROSS JOIN INVENTTABLE T2 WHERE ((T1.PARTITION=?) AND (T1.DATAAREAID IN (N'DEMF',N'GBSI') )) AND ((T2.PARTITION=?) AND (T2.ITEMID=T1.ITEMID AND (T2.DATAAREAID = T1.DATAAREAID) AND (T2.PARTITION = T1.PARTITION))) ORDER BY T1.DISPATCHID,T1.SEQNUM

Nota

Um erro ocorre se executar uma origem de dados JOIN que foi configurada de modo a conter condições de seleção de dados que têm intervalos da empresa para origens de dados adicionais da origem de dados JOIN executada.

Recursos adicionais

Estruturador de fórmulas em Relatórios eletrónicos

Rastrear a execução do formato de ER para resolver problemas de desempenho