Migliorare le prestazioni dei report utilizzando i filtri
Data di pubblicazione: gennaio 2017
Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
I report che restituiscono ampi set di dati possono essere difficile da utilizzare e possono causare problemi di prestazioni. Per limitare i dati presentati in un report, utilizzare i filtri di dati.
Oltre al filtro di dati supportato in Reporting Services, Microsoft Dynamics 365 supporta il filtro preliminare dei dati. È possibile utilizzare il filtro preliminare dei dati per:
Creare report sensibili al contesto restringendo l'ambito di un report in modo da restituire dati più rilevanti.
Recuperare e visualizzare un set di risultati in modo più rapido perché solo i dati più rilevanti vengono restituiti.
Consentire il filtro del report tramite la funzionalità Ricerca avanzata.
Importante
Al momento, le query del report con operatori gerarchici, ad esempio l'operatore Under, non possono essere utilizzate con il filtro del report. Quando si tenta di eseguire un report che utilizza un operatore gerarchico, il report non eseguirà il rendering.
In questo argomento
Abilitare il filtro preliminare nei report basati su Fetch
Abilitare il filtro preliminare dei dati nei report basati su SQL (solo Dynamics 365 locale)
Passare i filtri nel riepilogo del filtro
Filtri predefiniti
Abilitare il filtro preliminare nei report basati su Fetch
I report basati su Fetch supportano solo il filtro preliminare dei dati automatici. Un report può avere più set di dati e più query FetchXML. Un set di dati supporta una query FetchXML. Per abilitare il filtro preliminare per l'entità primaria o collegata in un report basato su Fetch, è necessario impostare il valore del parametro enableprefiltering su "1" e specificare un nome parametro nella proprietà prefilterparametername. Il nome parametro deve iniziare con "CRM_" per specificarlo come parametro nascosto. Come per il report basato su Microsoft SQL Server, questo parametro specificato nella query FetchXML funge da query secondaria nella query FetchXML e la query secondaria viene progettato con il valore specificato dall'utente nell'area Ricerca avanzata durante l'esecuzione di un report.
Nella seguente visualizzazione viene mostrato come abilitare il filtro preliminare per l'entità primaria nella query 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>
Analogamente, è possibile abilitare il filtro preliminare per l'entità collegata. È inoltre possibile specificare una condizione di filtro preliminare per l'entità collegata nella query FetchXML specificando un nome diverso e univoco per il nome del parametro nella proprietà prefilterparametername.
Se si modifica manualmente una definizione del report basata su Fetch senza utilizzare la Creazione guidata report nell'applicazione Web Microsoft Dynamics 365 o SQL Server Data Tools per abilitare il filtro preliminare per le entità principali e collegate, assicurarsi di:
Analogamente, è possibile abilitare il filtro preliminare per l'entità collegata. È inoltre possibile specificare una condizione di filtro preliminare per l'entità collegata nella query FetchXML specificando un nome diverso e univoco per il nome del parametro nella proprietà prefilterparametername.
Se si modifica manualmente una definizione del report basata su Fetch senza utilizzare la Creazione guidata report nell'applicazione Web Microsoft Dynamics 365 o SQL Server Data Tools per abilitare il filtro preliminare per le entità principali e collegate, assicurarsi di:
<fetch distinct="false" mapping="logical"> <entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccount">
Creare un parametro della query corrispondente con lo stesso nome specificato per la creazione della proprietà prefilterparametername. Assicurarsi che il nome del parametro inizi con CRM_ per specificarlo come parametro nascosto.
<QueryParameters> <QueryParameter Name="CRM_FilteredAccount"> <Value>=Parameters!CRM_FilteredAccount.Value</Value> </QueryParameter>
Creare un parametro del report corrispondente con lo stesso nome.
<ReportParameters> <ReportParameter Name="CRM_FilteredAccount"> <DataType>String</DataType> <Prompt>CRM Filtered Account</Prompt> </ReportParameter> </ReportParameters>
Abilitare il filtro preliminare dei dati nei report basati su SQL (solo Dynamics 365 locale)
Vi sono due modi per abilitare il filtro preliminare dei dati nei report Basato su SQL di Microsoft Dynamics 365: automatico e esplicito.
Filtro preliminare automatico
Il filtro preliminare dei dati automatico è adatto per le query semplici. Per abilitare il filtro preliminare dei dati automatico in un report, è possibile utilizzare gli alias per le tabelle di entità nelle query. Questa operazione viene eseguita utilizzando un nome alias che inizia con CRMAF_.
Ad esempio, nella tabella seguente viene mostrata una semplice query modificata per consentire il filtro preliminare nell'entità Account.
Query senza filtro preliminare |
Query modificata con il filtro preliminare abilitato |
|||||
---|---|---|---|---|---|---|
```sql
SELECT
Quando si abilita le funzionalità di filtro preliminare dati automatica utilizzando CRMAF_, Microsoft Dynamics 365 modifica la query per includere un parametro (ad esempio P1) quando viene caricato in Microsoft Dynamics 365, come illustrato nella tabella seguente.
|