Mejorar el rendimiento de los informes mediante el uso de filtros
Publicado: enero de 2017
Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Los informes que devuelven conjuntos de datos de gran tamaño pueden ser difíciles de usar y pueden provocar problemas de rendimiento. Para limitar los datos que se muestran en un informe, utilice filtros de datos.
Además del filtrado de datos admitido por Reporting Services, Microsoft Dynamics 365 admite el prefiltrado de datos. Puede usar el prefiltrado de datos para:
Haga que los informes dependan del contexto restringiendo el ámbito de un informe para devolver datos más relevantes.
Recupere y visualice un conjunto de resultados más rápidamente porque solo se devuelven datos más relevantes.
Permitir que el informe se filtre mediante la característica Búsqueda avanzada.
Importante
Actualmente, las consultas de informe con operadores jerárquicos, como el operador Under, no se pueden usar en el filtro de informe. Al intentar ejecutar informes que usan un operador jerárquico, el informe no se generará.
En este tema
Habilitar el prefiltrado de datos en los informes basados en Fetch
Habilitación de prefiltrado de datos en informes basados en SQL (Dynamics 365 local sólo)
Pasar filtros en el resumen del filtro
Filtros predeterminados
Habilitar el prefiltrado de datos en los informes basados en Fetch
Los informes basados en Fetch solo admiten el prefiltrado de datos automático. Un informe puede tener varios conjuntos de datos y varias consultas de FetchXML. Un conjunto de datos admite una consulta FetchXML. Para habilitar el prefiltrado de la entidad principal o vinculada en un informe basado en Fetch, debe establecer el valor del parámetro enableprefiltering en "1" y especificar un nombre de parámetro en la propiedad prefilterparametername. El nombre del parámetro debe empezar por "CRM_" para indicarlo como un parámetro oculto. Como sucede con el informe basado en Microsoft SQL Server, este parámetro especificado en la consulta FetchXML actúa como una subconsulta de la consulta FetchXML, y la subconsulta se genera con el valor especificado por el usuario en el área Búsqueda avanzada al ejecutar un informe.
El siguiente ejemplo muestra cómo habilitar el prefiltrado de la entidad principal en la 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 forma similar, puede habilitar el prefiltrado de la entidad vinculada. También puede especificar otra condición de filtrado de la entidad vinculada en la consulta FetchXML especificando un nombre distinto y único para el nombre del parámetro en la propiedad prefilterparametername.
Si está editando manualmente una definición de informe basada en Fetch sin usar el Asistente para informes en la aplicación web Microsoft Dynamics 365 o Herramientas de datos de SQL Server para habilitar el prefiltrado de las entidades principales y vinculadas, asegúrese de:
De forma similar, puede habilitar el prefiltrado de la entidad vinculada. También puede especificar otra condición de filtrado de la entidad vinculada en la consulta FetchXML especificando un nombre distinto y único para el nombre del parámetro en la propiedad prefilterparametername.
Si está editando manualmente una definición de informe basada en Fetch sin usar el Asistente para informes en la aplicación web Microsoft Dynamics 365 o Herramientas de datos de SQL Server para habilitar el prefiltrado de las entidades principales y vinculadas, asegúrese de:
<fetch distinct="false" mapping="logical"> <entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccount">
Cree un parámetro de consulta correspondiente con el mismo nombre especificado para la propiedad prefilterparametername. Asegúrese de que el nombre del parámetro empieza por CRM_ indicarlo como un parámetro oculto.
<QueryParameters> <QueryParameter Name="CRM_FilteredAccount"> <Value>=Parameters!CRM_FilteredAccount.Value</Value> </QueryParameter>
Cree un parámetro de informe correspondiente con el mismo nombre.
<ReportParameters> <ReportParameter Name="CRM_FilteredAccount"> <DataType>String</DataType> <Prompt>CRM Filtered Account</Prompt> </ReportParameter> </ReportParameters>
Habilitación de prefiltrado de datos en informes basados en SQL (Dynamics 365 local sólo)
Hay dos formas de habilitar datos de el prefiltrado de datos en los informes basados en Basado en SQL de Microsoft Dynamics 365: automática y explícita.
Prefiltrado automático
El prefiltrado de datos automático es adecuado para consultas sencillas. Para habilitar prefiltrado de datos automáticos en un informe, puede usar los alias para las tablas de entidad en consultas. Esto se realiza mediante un nombre de alias que empieza con CRMAF_.
Por ejemplo, en la siguiente tabla se muestra una consulta simple modificada para habilitar el prefiltrado en la entidad Account.
Consulta sin prefiltrado |
Consulta modificada con prefiltrado automático habilitado |
|||||
---|---|---|---|---|---|---|
```sql
SELECT
Cuando se habilita la funcionalidad de prefiltrado de datos automático mediante el prefijo CRMAF_, Microsoft Dynamics 365 modifica la consulta para que incluya un parámetro (por ejemplo, P1) cuando se carga en Microsoft Dynamics 365, como se muestra en la siguiente tabla.
|