Melhorar o desempenho de relatórios usando filtros
Publicado: janeiro de 2017
Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Relatórios que retornam grandes conjuntos de dados podem ser difíceis de usar e podem causar problemas de desempenho. Para limitar os dados apresentados em um relatório, use filtros de dados.
Além da filtragem de dados suportada pelo Reporting Services, o Microsoft Dynamics 365 suporte a pré-filtragem de dados. É possível usar a pré-filtragem de dados para:
Executar relatórios contextuais refinando o escopo de um relatório para retornar os dados mais relevantes.
Recuperar e exibir um conjunto de resultados com mais rapidez porque somente os dados mais relevantes são retornados.
Permitir que o relatório seja filtrado usando o recurso Localização Avançada.
Importante
Atualmente, as consultas de relatório com operadores hierárquicos, como o operador Under, não podem ser usadas com filtragem de relatórios. Quando você tenta executar um relatório que utiliza um operador hierárquico, o relatório não será renderizado.
Neste tópico
Habilitar a pré-filtragem de dados nos relatórios baseados em fetch
Habilitar a pré-filtragem de dados em relatórios baseados em SQL (apenas Dynamics 365 local)
Transmitindo filtros no resumo da filtragem
Filtros padrões
Habilitar a pré-filtragem de dados nos relatórios baseados em fetch
Os relatórios baseados em fetch suportam apenas a pré-filtragem de dados automática Um relatório pode ter vários conjuntos de dados e várias consultas FetchXML. Um conjunto de dados suporta uma consulta FetchXML. Para habilitar a pré-filtragem na entidade primária ou vinculada em um relatório baseado em fetch, você deve definir o valor do parâmetro enableprefiltering para “1 " e especificar um nome de parâmetro na propriedade prefilterparametername. O nome do parâmetro deve ser iniciado com o “CRM_” para ser especificado como um parâmetro oculto. Como acontece com o relatório baseado no Microsoft SQL Server, esse parâmetro especificado na consulta FetchXML age como uma subconsulta dentro da consulta FetchXML, e a subconsulta é construída com o valor especificado pelo usuário na área Localização Avançada durante a execução de um relatório.
O exemplo a seguir mostra como habilitar a pré-filtragem para a entidade primária na consulta FetchXML:
<CommandText
<fetch distinct="false" mapping="logical">
<entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccount">
<attribute name="name" />
<attribute name="accountid" />
</entity>
</fetch>
</CommandText>
<DataSourceName>CRM</DataSourceName>
De maneira semelhante, você pode habilitar a pré-filtragem na entidade vinculada. Também é possível especificar uma condição de pré-filtragem diferente para a entidade vinculada na consulta FetchXML especificando um nome exclusivo e diferente para o nome do parâmetro na propriedade prefilterparametername.
Se você estiver alterando manualmente uma definição de relatório baseada em fetch sem usar o Assistente de Relatório no aplicativo Web Microsoft Dynamics 365 ou SQL Server Data Tools para habilitar a pré-filtragem para entidades primárias e vinculadas, não se esqueça:
De maneira semelhante, você pode habilitar a pré-filtragem na entidade vinculada. Também é possível especificar uma condição de pré-filtragem diferente para a entidade vinculada na consulta FetchXML especificando um nome exclusivo e diferente para o nome do parâmetro na propriedade prefilterparametername.
Se você estiver alterando manualmente uma definição de relatório baseada em fetch sem usar o Assistente de Relatório no aplicativo Web Microsoft Dynamics 365 ou SQL Server Data Tools para habilitar a pré-filtragem para entidades primárias e vinculadas, não se esqueça:
<fetch distinct="false" mapping="logical"> <entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccount">
Criar um parâmetro de consulta correspondente com o mesmo nome conforme especificado para a propriedade prefilterparametername. Certifique-se de que o nome do parâmetro inicie com CRM_ para especificar como um parâmetro oculto.
<QueryParameters> <QueryParameter Name="CRM_FilteredAccount"> <Value>=Parameters!CRM_FilteredAccount.Value</Value> </QueryParameter>
Criar um parâmetro de relatório correspondente com o mesmo nome.
<ReportParameters> <ReportParameter Name="CRM_FilteredAccount"> <DataType>String</DataType> <Prompt>CRM Filtered Account</Prompt> </ReportParameter> </ReportParameters>
Habilitar a pré-filtragem de dados em relatórios baseados em SQL (apenas Dynamics 365 local)
Há duas maneiras como você pode habilitar a pré-filtragem de dados nos relatórios Microsoft Dynamics 365Baseado em SQL: automático e explícito.
Pré-filtragem automática
A pré-filtragem de dados automática é adequada para consultas simples. Para habilitar a pré-filtragem automática de dados em um relatório, você pode usar aliases para tabelas de entidade em consultas. Você pode fazer isso usando um nome de alias que comece com CRMAF_.
Por exemplo, a tabela a seguir mostra uma consulta simples alterada para habilitar a pré-filtragem na entidade Account.
Consulta sem pré-filtragem |
Consulta modificada com a pré-filtragem automática habilitada |
|||||
---|---|---|---|---|---|---|
```sql
SELECT
Ao habilitar a funcionalidade de pré-filtragem de dados automática usando o prefixo CRMAF_, o Microsoft Dynamics 365 modifica a consulta para incluir um parâmetro (por exemplo, P1) quando for carregada no Microsoft Dynamics 365, conforme mostrado na seguinte tabela.
|