A jelentés teljesítményének növelése szűrők alkalmazásával
A nagyméretű adatkészletet szolgáltató jelentések használata nehézkes lehet, valamint problémák adódhatnak a teljesítménnyel. A jelentésben megjelenő adatmennyiség korlátozásához használjon adatszűrőket.
A Jelentéskészítő szolgáltatások által támogatott adatszűrés mellett Microsoft Dynamics 365 Customer Engagement (on-premises) támogatja az adatok előszűrését is. Az adatok előszűrését ehhez használhatja:
Tegye környezetérzékennyé a jelentéseket, ehhez le kell szűkíteni a jelentés hatókörét, hogy releváns adatokat kapjon.
Gyorsabban lekérhet és megjeleníthet egy eredményhalmazt, ha relevánsabb adatokat kap vissza.
Engedélyezze a jelentés szűrését az Irányított keresés funkció használatával.
Fontos
Jelenleg a hierarchikus operátorokkal rendelkező lekérdezések, pl. a(z) Under operátor, nem használhatók jelentések szűrésére. Ha megpróbál futtatni egy jelentést, ami hierarchikus operátorokat használ, a jelentés nem jelenik meg.
Az adatok előszűrésének engedélyezése Fetch-alapú jelentésekhez
A Fetch-alapú jelentések csak automatikus adatelőszűrést támogatnak. A jelentés rendelkezhet több adatkészlettel és több FetchXML lekérdezéssel is. Egy adatkészlet egy FetchXML lekérdezést támogat. Az elsődleges vagy kapcsolt entitásnál az előszűrés engedélyezéséhez a(z) enableprefiltering paraméternek adjon „1” értéket, és adja meg a paraméter nevét a(z) prefilterparametername tulajdonságnál. A pereméter neve „CRM_” formátummal kell kezdődjön, ha rejtett paraméterként szeretné megadni. Ahogy a(z) SQL Server-alapú jelentésnél, a FetchXML lekérdezésnél megadott paraméter al-lekérdezésként viselkedik a FetchXML lekérdezésben, az al-lekérdezés pedig a felhasználó által az Irányított keresés mezőben megadott értékkel jön létre a jelentés futtatásakor.
Az alábbi példa bemutatja, hogyan engedélyezhető az előszűrés elsődleges entitáshoz a FetchXML lekérdezésben.
<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>
Ehhez hasonlóan engedélyezheti az előszűrést a kapcsolt entitáshoz. Megadhat különböző előszűrési feltételt a kapcsolt entitáshoz a FetchXML lekérdezésben, ha különböző és egyedi neveket ad a paramétereknek a(z)
prefilterparameternametulajdonságban.Ha manuálisan módosítja a Fetch-alapú jelentés definícióját a Jelentés varázsló vagy a SQL Server Data Tools használata nélkül, hogy engedélyezze az előszűrést elsődleges és kapcsolt entitásokhoz, akkor ügyeljen ezekre:
<fetch distinct="false" mapping="logical"> <entity name="account" enableprefiltering="1" refilterparametername="CRM_FilteredAccount">Hozzon létre egy megfelelő lekérdezési paramétert, aminek megegyezik a neve a(z)
prefilterparameternametulajdonságnál megadott névvel. Győződjön meg róla, hogy a paraméter neveCRM_kifejezéssel kezdődik, hogy rejtett paraméterként adja meg.<QueryParameters> <QueryParameter Name="CRM_FilteredAccount"> <Value>=Parameters!CRM_FilteredAccount.Value</Value> </QueryParameter>Hozzon létre egy megfelelő jelentési paramétert, azonos névvel.
<ReportParameters> <ReportParameter Name="CRM_FilteredAccount"> <DataType>String</DataType> <Prompt>CRM Filtered Account</Prompt> </ReportParameter> </ReportParameters>
Adat-előszűrés engedélyezése SQL-alapú jelentésekben (csak Dynamics 365 helyszíni)
365 SQL-alapú jelentésen kétféleképpen engedélyezheti az Microsoft Dynamics adatok előszűrését: automatikus és explicit.
Automatikus előszűrés
Az automatikus adat-előszűrés egyszerű lekérdezésekhez alkalmas. A jelentés automatikus előszűrésének engedélyezéséhez aliasokat használhat az entitástáblákhoz a lekérdezésekben. Ezt olyan aliasnév használatával teheti meg, amely CRMAF_ kezdődik.
A következő példák például két egyszerű lekérdezést mutatnak be, amelyek egyikét módosították, hogy lehetővé tegyék az előszűrést a Fiók entitáson.
Lekérdezés előszűrés nélkül.
SELECT <column1>, <column2>, <columnN>
FROM FilteredAccount;
Ha az előtag használatával engedélyezi az automatikus adat-előszűrés funkciót, CRMAF_ a Microsoft Dynamics 365 úgy módosítja a lekérdezést, hogy az tartalmazzon egy paramétert (például P1), amikor feltölti a Dynamics 365-be, amint az az az alábbi példákban látható.
Lekérdezés automatikus előszűréssel.
SELECT <column1>, <column2>, <columnN>
FROM FilteredAccount AS CRMAF_FilteredAccount;
A Dynamics 365 a jelentés szűrésének módjától függően lekérdezést ad át a P1 paraméternek. Más szóval, az automatikus adat-előszűrés segédlekérdezésként működik a meglévő lekérdezésen belül.
Az alábbi példák azt mutatják be, hogy a Dynamics 365 hogyan továbbítja a lekérdezéseket a paraméternek (P1) a különböző szűrési követelmények szerint. Ezekben a példákban feltételezzük, hogy a jelentést a Dynamics 365 Jelentések területéről futtatja, és az adatszűrés beállítást használja.
1. példa
Ha csak aktív fiókokat szeretne megtekinteni, az eredményül kapott lekérdezés a következő lesz:
SELECT <column1>, <column2>, <columnN>
FROM (SELECT FilteredAccount.* FROM FilteredAccount WHERE statecode = 0)
AS CRMAF_FilteredAccount
2. példa
Ha egy adott fiókon belül van, és futtatja a jelentést, az eredményül kapott lekérdezés a következő lesz:
SELECT <column1>, <column2>, <columnN>
FROM (SELECT FilteredAccount.* FROM FilteredAccount WHERE AccountId = '<CurrentAccountId>')
AS CRMAF_FilteredAccount
3. példa
Ha három kijelölt fiók listája van, és a kijelölt rekordokon futtatja a jelentést, az eredményül kapott lekérdezés a következő lesz:
SELECT <column1>, <column2>, <columnN>
FROM (SELECT FilteredAccount.* FROM FilteredAccount WHERE AccountId in ('<1stAccountId>', '<2ndAccountId>', '<3rdAccountId>')
AS CRMAF_FilteredAccount
Ha bármely entitástábla neve aliast tartalmaz, az Irányított keresés felhasználói felület automatikusan bekerül az üzembe helyezett jelentésbe, amikor a Dynamics 365-ből futtatja.
Ha a Lekérdezésszerkesztőben egy entitástábla nevét szeretné aliasolni, kattintson a jobb gombbal a jelentés minden táblájára, válassza a Tulajdonságok lehetőséget , majd írja be az aliasértéket az űrlapon, CRMAF_FilteredEntity például CRMAF_FilteredAccount .
Az automatikus előszűrés korlátozása
Ha az előtaggal engedélyezi az automatikus előszűrést, a CRMAF_ Dynamics 365 hozzáad egy paramétert a lekérdezéshez. Összetettebb lekérdezéssel, például union utasításokat használó lekérdezéssel ez váratlan eredményekhez vezethet, mivel a Dynamics 365 csak az első lekérdezéshez adhatja hozzá a paramétert.
Vegyük például az alábbi lekérdezést, amely uniós állításokat tartalmaz:
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'
A jelentés feltöltésekor a Dynamics 365 csak az első lekérdezést szűrheti a paraméter használatával. Ez azt eredményezi, hogy a szűrés nem lesz alkalmazva a második lekérdezésre:
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'
Az előző példában, miközben a Dynamics 365 Jelentések területéről futtatja a jelentést, és a szűrőt 1000000 nagyobb éves bevételként választja, a Dynamics 365 a következőképpen továbbítja a lekérdezést a P1 paraméternek:
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'
Ez azt jelenti, hogy a lekérdezés csak azokat a floridai számlákat adná vissza, amelyek éves bevétele meghaladja a $1000000 és az összes kaliforniai számlát, ami nem az, amit tervezett. Meg akarta tekinteni az összes számlát Floridában és Kaliforniában, amelyek éves bevétele meghaladja a $1000000.
Ha letölti a jelentést a Dynamics 365-ből, és megnyitja a Microsoft Visual Studio programban, a jelentés eredeti verziója látható, amelyet a Dynamics 365-be töltött fel. Ha a jelentést közvetlenül a Reporting Services szolgáltatásból Microsoft SQL Server tölti le, észre fogja venni, hogy a Dynamics 365 módosította a lekérdezést, de nem tette a paramétert oda, ahol azt szerette volna.
Az ilyen összetett lekérdezésekhez explicit előszűrést kell használnia.
Explicit előszűrés
Összetett lekérdezésekhez, például uniós utasításokat használó lekérdezésekhez előfordulhat, hogy explicit előszűrést kell használnia. Az automatikus előszűréstől eltérően a Dynamics 365 nem írja át a jelentéslekérdezést úgy, hogy értékeket ad át a paramétereknek az explicit előszűrés során, amikor egy ilyen jelentést feltölt a Dynamics 365-be. A jelentéshez explicit módon módosítania kell a szükséges módosításokat úgy, hogy hozzáadja az előszűrési paramétert a jelentéshez, majd hivatkozik a paraméterre a lekérdezésben. A lekérdezést ezután dinamikus SQL használatával hajthatja végre.
Dinamikus SQL használata esetén az Irányított keresésen keresztüli szűrést a, nevű rejtett paraméter CRM_FilteredEntity létrehozásával, például CRM_FilteredAccount, és ezzel a paraméterrel dinamikus SQL lekérdezési kifejezésben használhatja. Ez a paraméter lehetővé teszi a megadott szűrt nézet kapott táblaadatok szűrését.
A korábban tárgyalt példával kiemelve az automatikus előszűrés korlátozását, az alábbi táblázat egy automatikus előszűréssel módosított lekérdezést mutat be, amelyet úgy módosítottak, hogy explicit előszűrést használjon dinamikus SQL használatával. Feltételezzük azt is, hogy a Jelentés Dynamics 365 Jelentések területéről történő futtatásakor a szűrőt 1000000-nál nagyobb éves bevételként alkalmazták.
Lekérdezés automatikus előszűréssel.
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'
Megjegyzés
A legtöbb szabványos Dynamics 365 SQL-alapú jelentés az explicit előszűrés beállítást használja.
Szűrők átvitele a szűrőösszegzésben
A szűrőösszegzés megjeleníti a szűrő értékét, amit a jelentés futtatásakor használt. A jelentésekben szövegdobozeszközként jelenik meg, a jelentés fejlécében, ami tartalmazza a szűrő szöveges értékét. Amikor a felhasználó futtatja a jelentést, a Jelentésmegjelenítő egy Szűrő szerkesztése gombot jelenít meg. Ha rákattint a gombra, engedélyezheti a felhasználó számára az adatszűrő definiálását. Példa szűrőösszegzésre, ami a Felhasználó-összegzés jelentésben található, a Customer Engagement (on-premises)-hez mellékelve.
Ha szeretne a jelentéshez szűrőösszegzést hozzáadni, kövesse az alábbi lépéseket:
Hozzon létre egy
CRM_FilterTextnevű, rejtett karakterláncot.Adjon hozzá egy szövegdoboz jelentési elemet, és adja meg az
Valuetulajdonságot az alábbiak szerint:
=Parameters!CRM_FilterText.Value.Ha a jelentés lefutott, a
CRM_FilterTextparaméter értékét a rendszer adja meg, az adott szűrő szövegében.
Alapértelmezett szűrők
Ha közzétesz egy jelentést, megadhat alapértelmezett szűrőt. A jelentés varázslóval létrehozott összes jelentéshez, ha nem ad meg alapértelmezett szűrőt, a szűrő automatikusan az utolsó 30 napban módosított összes entitás rekordjára vonatkozik. Az alapértelmezett jelentésszűrő definiálási eljárásához lásd: Jelentések közzététele.
Kapcsolódó információk
Útmutató: Jelentések és elemzések
Dynamics 365 for Customer Engagement (on-premises) Jelentési szempontok
Megjegyzés
Megosztja velünk a dokumentációja nyelvi preferenciáit? Rövid felmérés elvégzése. (ne feledje, hogy ez a felmérés angol nyelvű)
A felmérés elvégzése körülbelül hét percet vesz igénybe. Semmilyen személyes adatot nem gyűjtünk (adatvédelmi nyilatkozat).
Visszajelzés
Visszajelzés küldése és megtekintése a következőhöz: