Share via


Aruande toimivuse parandamine filtrite abil

Aruandeid, mis annavad vastuseks suuri andmekogumeid, võib olla keeruline kasutada ja need võivad põhjustada toimivusprobleeme. Kasutage aruandes esitatavate andmete piiramiseks andmefiltreid.

Lisaks aruandlusteenustes toetatavale filtreerimisele toetab Microsoft Dynamics 365 Customer Engagement (on-premises) andmete eelfiltreerimist. Andmete eelfiltreerimisel on järgmised tulemused.

  • Aruanded muutuvad kontekstitundlikuks, kui kitsendada aruande ulatust, et see esitaks asjakohasemaid andmeid.

  • Tulemite hulk tuuakse ja kuvatakse kiiremini, kuna vastuseks antakse ainult asjakohasemad andmed.

  • Lubage aruannet filtreerida, kasutades täpsema otsingu funktsiooni.

Oluline

Praegu ei saa hierarhiliste tehtemärkidega (nt Under tehtemärgiga) aruandepäringuid aruande filtreerimisega kasutada. Kui proovite käivitada aruannet, mis kasutab hierarhilist tehtemärki, siis aruannet ei esitata.

Andmete eelfiltreerimise lubamine Fetchi-põhistes aruannetes

Fetchi-põhised aruanded toetavad ainult automaatset andmete eelfiltreerimist. Aruandel võib olla mitu andmekogumit ja mitu FetchXML-i päringut. Üks andmekogum toetab ühte FetchXML-i päringut. Esmase või lingitud olemi eelfiltreerimise lubamiseks Fetchi-põhises aruandes peate parameetri väärtuseks enableprefiltering määrama "1" ja määrama atribuudile prefilterparametername parameetri nime. Parameetri nime alguses peab olema „CRM_”, et määrata see peidetud parameetriks. Nagu SQL Serveri-põhise aruande puhul, toimib see FetchXML-i päringus määratud parameeter FetchXML-i päringus alampäringuna ja alampäring koostatakse kasutaja poolt aruande käitamise ajal täpsema otsingu alal määratud väärtusega.

Järgmises näites näidatakse peamise olemi eelfiltreerimise aktiveerimist FetchXML-i päringus.

<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>  
  1. Sarnaselt saab aktiveerida eelfiltreerimise ka seotud olemi puhul. FetchXML-i päringus saate lingitud olemile määrata ka erineva eelfiltreerimise tingimuse, määrates atribuudi prefilterparametername parameetri nimele erineva ja kordumatu nime.

    Kui muudate toomispõhist aruandemääratlust käsitsi ilma aruandeviisardit kasutamata või SQL Server Data Tools esmaste ja lingitud olemite eelfiltreerimise lubamiseks, veenduge järgmises.

    <fetch distinct="false" mapping="logical">  
    <entity name="account" enableprefiltering="1" refilterparametername="CRM_FilteredAccount">  
    
  2. Looge vastav päringuparameeter, millel on sama nimi, mis atribuudile prefilterparametername määratud. Veenduge, et parameetri nimi algab tähega CRM_ , et määrata see peidetud parameetriks.

    <QueryParameters>  
    <QueryParameter Name="CRM_FilteredAccount">  
    <Value>=Parameters!CRM_FilteredAccount.Value</Value>  
    </QueryParameter>  
    
  3. Looge vastav sama nimega aruande parameeter.

    <ReportParameters>  
    <ReportParameter Name="CRM_FilteredAccount">  
    <DataType>String</DataType>  
    <Prompt>CRM Filtered Account</Prompt>        
    </ReportParameter>  
    </ReportParameters>    
    

Andmete eelfiltreerimise lubamine SQL-põhistes aruannetes (ainult Dynamics 365 asutusesisene)

365 SQL-põhistes Microsoft Dynamics aruannetes andmete eelfiltreerimise lubamiseks on kaks võimalust: automaatne ja selgesõnaline.

Automaatne eelfiltreerimine

Automaatne andmete eelfiltreerimine sobib lihtsate päringute jaoks. Aruandes andmete automaatse eelfiltreerimise lubamiseks saate päringute olemitabelite jaoks kasutada pseudonüüme. Selleks kasutage pseudonüümi nime, mis algab tähega CRMAF_.

Näiteks järgmistes näidetes on kujutatud kahte lihtsat päringut, millest ühte on muudetud, et lubada olemil Konto eelfiltreerimine.

Päring ilma eelfiltreerimiseta.

   SELECT <column1>, <column2>, <columnN>
   FROM FilteredAccount; 

Kui lubate eesliite abil CRMAF_ andmete automaatse eelfiltreerimise funktsiooni, muudab 365 päringut nii, et see kaasaks parameetri (nt P1), kui see dynamics 365-i üles laaditakse, Microsoft Dynamics nagu on näidatud järgmistes näidetes.

Päring automaatse eelfiltreerimisega.

   SELECT <column1>, <column2>, <columnN>
   FROM FilteredAccount AS CRMAF_FilteredAccount;

Dynamics 365 edastab päringu parameetrile P1, sõltuvalt sellest, kuidas aruannet filtreeritakse. Teisisõnu, automaatne andmete eelfiltreerimine toimib olemasolevas päringus alampäringuna.

Järgmised näited illustreerivad, kuidas Dynamics 365 edastab päringud parameetrile (P1) vastavalt erinevatele filtreerimisnõuetele. Nendes näidetes eeldatakse, et käitate aruannet Dynamics 365-i alalt Aruanded ja kasutate suvandit Andmete filtreerimine.

Näide 1

Kui soovite vaadata ainult aktiivseid kontosid, oleks tulemuseks saadav päring järgmine.

SELECT <column1>, <column2>, <columnN>
FROM (SELECT FilteredAccount.* FROM FilteredAccount WHERE statecode = 0)
AS CRMAF_FilteredAccount

Näide 2

Kui asute kindlal kontol ja käivitate aruande, oleks tulemuseks saadav päring järgmine.

SELECT <column1>, <column2>, <columnN>
FROM (SELECT FilteredAccount.* FROM FilteredAccount WHERE AccountId = '<CurrentAccountId>')
AS CRMAF_FilteredAccount

Näide 3

Kui teil on loend kolmest valitud kontost ja valite aruande käivitamise valitud kirjete suhtes, on tulemuseks saadav päring järgmine.

SELECT <column1>, <column2>, <columnN>
FROM  (SELECT FilteredAccount.* FROM FilteredAccount WHERE AccountId in ('<1stAccountId>', '<2ndAccountId>', '<3rdAccountId>') 
AS CRMAF_FilteredAccount

Kui olemitabelite nimed on pseudonüümitud, kaasatakse täpsema otsingu kasutajaliides juurutatud aruandesse automaatselt, kui seda käitatakse Dynamics 365-ist.

Olemitabeli nime pseudonüümimiseks päringukoosturis paremklõpsake aruande iga tabelit, valige suvand Atribuudid ja sisestage pseudonüümi väärtus kujul CRMAF_FilteredEntity näiteks CRMAF_FilteredAccount.

Automaatse eelfiltreerimise piiramine

Kui kasutate eesliidet CRMAF_ automaatse eelfiltreerimise lubamiseks, lisab Dynamics 365 päringusse parameetri. Keerukama päringu puhul, nagu päring, mis kasutab UNION-lauseid, võib see viia ootamatute tulemusteni, kuna Dynamics 365 võib parameetri lisada ainult esimesele päringule.

Näiteks kaaluge järgmist päringut, mis sisaldab UNION-lauseid:

SELECT <column1>, <column2>, <columnN>
FROM FilteredAccount AS CRMAF_FilteredAccount
WHERE address1_stateorprovince = ‘FL'
UNION
SELECT <column1>, <column2>, <columnN>
FROM FilteredAccount AS CRMAF_FilteredAccount
WHERE address1_stateorprovince = 'CA'

Aruande üleslaadimisel võib Dynamics 365 parameetrit kasutades filtreerida ainult esimest päringut. See viib selleni, et filtreerimist ei rakendata teisele päringule.

SELECT <column1>, <column2>, <columnN>
FROM  (@P1) AS CRMAF_FilteredAccount WHERE address1_stateorprovince = 'FL'
UNION
SELECT <column1>, <column2>, <columnN>
FROM FilteredAccount AS CRMAF_FilteredAccount
WHERE address1_stateorprovince = 'CA'

Eelmises näites, käivitades aruande Dynamics 365-i alalt Aruanded ja valides filtri aastatuluna, mis on suurem kui 1000000, edastab Dynamics 365 päringu parameetrile P1 järgmiselt.

SELECT <column1>, <column2>, <columnN>
FROM  (SELECT FilteredAccount.* from FilteredAccount where AnnualRevenue > 1000000) AS CRMAF_FilteredAccount
WHERE address1_stateorprovince = 'FL'
UNION
SELECT <column1>, <column2>, <columnN>
FROM FilteredAccount AS CRMAF_FilteredAccount
WHERE address1_stateorprovince = 'CA'

See tähendab, et päring tagastaks ainult need Floridas asuvad kontod, mille aastane tulu on suurem kui $1000000, ja kõik Californias asuvad kontod, mis pole see, mida kavatsesite. Soovisite vaadata kõiki Florida ja California kontosid, mille aastatulu on suurem kui $1000000.

Kui laadite aruande Dynamics 365-ist alla ja avate selle Microsoftis Visual Studio, näete aruande algset versiooni, mille dynamics 365-i üles laadisite. Kui laadite aruande alla otse aruandlusteenustest Microsoft SQL Server , märkate, et Dynamics 365 oli päringut muutnud, kuid ei paigutanud parameetrit soovitud kohta.

Selliste keerukate päringute puhul peate kasutama selgesõnalist eelfiltreerimist.

Selgesõnaline eelfiltreerimine

Keerukate päringute puhul, nagu päringud, mis kasutavad UNION-lauseid, peate võib-olla kasutama selgesõnalist eelfiltreerimist. Erinevalt automaatsest eelfiltreerimisest ei kirjuta Dynamics 365 aruandepäringut ümber, edastades väärtused parameetritele selgesõnalise eelfiltreerimise ajal, kui selline aruanne dynamics 365-i üles laaditakse. Peate aruandes nõutavad muudatused selgesõnaliselt tegema, lisades aruandele eelfiltreerimise parameetri ja seejärel viidates päringus olevale parameetrile. Seejärel saate päringu käivitada dünaamilise SQL-i abil.

Kui kasutate dünaamilist SQL-i, lubatakse filtreerimine täpsema otsingu kaudu, luues peidetud parameetri CRM_FilteredEntity nimega (nt ) CRM_FilteredAccount ja kasutades seda parameetrit dünaamilises SQL-päringu avaldises. See parameeter lubab tabelis filtreerida andmeid, mis on saadud määratud filtreeritud vaatest.

Võttes sama näite, mida varem arutati, et rõhutada automaatse eelfiltreerimise piiranguid, kuvatakse järgmises tabelis päring, mida on muudetud nii, et see kasutaks dünaamilist SQL-i abil selgesõnalist eelfiltreerimist. Samuti eeldatakse, et aruande käitamisel Dynamics 365-i alalt Aruanded on filter rakendatud aastatuluna, mis on suurem kui 1000000.

Päring automaatse eelfiltreerimisega.

   SELECT <column1>, <column2>, <columnN>
   FROM FilteredAccount AS CRMAF_FilteredAccount
   WHERE address1_stateorprovince = ‘FL'
   UNION
   SELECT <column1>, <column2>, <columnN>
   FROM FilteredAccount AS CRMAF_FilteredAccount
   WHERE address1_stateorprovince = 'CA'

Märkus.

Enamik standardseid Dynamics 365 SQL-põhiseid aruandeid kasutab selgesõnalist eelfiltreerimise suvandit.

Filtrite edastamine filtri kokkuvõttes

Filtri kokkuvõte kuvab filtri väärtuse, mida aruande käitamisel kasutatakse. Aruannetes kuvatakse see tekstivälja aruandeüksusena filtri tekstiväärtust sisaldavas aruande päises. Kui kasutaja käivitab aruande, kuvab aruandevaatur nupu Redigeeri filtrit . Selle nupu klõpsamisel võimaldab see kasutajal andmefiltri määratleda. Filtri kokkuvõtte näite leiate kasutaja kokkuvõtte aruandest, mis on Customer Engagement (on-premises)-iga kaasas.

Aruandele filtri kokkuvõtte lisamiseks tehke järgmist.

  1. Looge peidetud stringi parameeter nimega CRM_FilterText.

  2. Lisage aruandeüksusele tekstivälja aruandeüksus ja määrake selle Value atribuut järgmiselt.
    =Parameters!CRM_FilterText.Value.

    Aruande käivitamisel määrab süsteem parameetri väärtuse CRM_FilterText praeguse filtri tekstile.

Vaikefiltrid

Aruande avaldamisel saate määrata vaikefiltri. Kõigi aruandeviisardi abil koostatud aruannete puhul on nii, et kui vaikefiltrit ei määrata, siis määratakse filter automaatselt olemi kõigile viimase 30 päeva jooksul muudetud kirjetele. Aruande vaikefiltri määratlemise protseduuri leiate teemast Aruannete avaldamine.

Vaata ka

Aruandluse ja analüüsi juhend
Dynamics 365 for Customer Engagement (on-premises) Aruandlusega seotud kaalutlused