Gyermekmunkaelem-értékek összesítése szülő-mintajelentésbe
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Az összegző támogatással megjeleníthető a munkaelemek száma, illetve a történeti pontok, a hátralévő munka vagy a gyermekelemek egyéb egyéni mezőinek összege. Ez a cikk számos példát mutat be arra, hogyan hozhat létre táblázatos összesítő jelentést az Eposzokhoz, szolgáltatásokhoz vagy felhasználói történetekhez, amelyek gyermekmunkaelemeket tartalmaznak. Az alábbi képen egy példa látható a szülőfunkciókhoz beállított történeti pontokra.
Az összesítésről és a kumulatív megjelenítési lehetőségekről további információt az összesítő állapot vagy az összegző adatok megjelenítése az Azure Boardsban című témakörben talál.
Feljegyzés
Ez a cikk feltételezi, hogy OData-lekérdezések használatával olvassa el a mintajelentések áttekintését, és alapszintű ismeretekkel rendelkezik a Power BI-ról.
Előfeltételek
- Hozzáférés: Legyen legalább alapszintű hozzáféréssel rendelkező projekt tagja.
- Engedélyek: Alapértelmezés szerint a projekttagok jogosultak az Analytics lekérdezésére és nézetek létrehozására.
- A szolgáltatás- és szolgáltatás-engedélyezéssel, valamint az általános adatkövetési tevékenységekkel kapcsolatos egyéb előfeltételekről további információt az Analytics eléréséhez szükséges engedélyek és előfeltételek című témakörben talál.
Minta lekérdezések
Az alábbi lekérdezések adatokat adnak vissza az entitáskészletből az WorkItems
összesítő mátrixjelentések létrehozásához.
Feljegyzés
A szűrési vagy jelentéskészítési célokra elérhető tulajdonságok meghatározásához tekintse meg az Azure Boards metaadat-referenciáját. Szűrheti a lekérdezéseket, vagy visszaadhatja a tulajdonságokat egy Property
adott vagy egy adott értékkel elérhető értékek EntityType
NavigationPropertyBinding Path
bármelyikével EntitySet
. Mindegyik EntitySet
egy EntityType
. Az egyes értékek adattípusával kapcsolatos további információkért tekintse át a megfelelő EntityType
metaadatokat.
Összesítő szövegegység-pontok a gyermek felhasználói történetek funkcióihoz a terület elérési útja alapján
Másolja és illessze be közvetlenül az alábbi Power BI-lekérdezést az Üres adat>lekérdezés lekérése ablakba. További információ: OData-lekérdezéseket használó mintajelentések áttekintése.
let
Source = OData.Feed("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'Feature'"
&" and State ne 'Cut'"
&" and startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any()"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate($count as CountOfUserStories, StoryPoints with sum as TotalStoryPoints)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Helyettesítési sztringek és lekérdezések lebontása
Cserélje le a következő sztringeket az értékekkel. Ne tartalmazzon szögletes zárójeleket {} a helyettesítéssel. Ha például a szervezet neve "Fabrikam", cserélje le a Fabrikam
helyére {organization}
a nem {Fabrikam}
.
{organization}
- A szervezet neve{project}
- A csapat projektneve, vagy a "/{project}" teljes kihagyása projektközi lekérdezéshez{areapath}
- A terület elérési útja. Példaformátum:Project\Level1\Level2
.
Lekérdezések lebontása
Az alábbi táblázat a lekérdezés egyes részeit ismerteti.
Lekérdezési rész
Leírás
$filter=WorkItemType eq 'Feature'
Szolgáltatások visszaküldése.
and State ne 'Cut'
Kihagyom a bezárt hibákat.
and startswith(Area/AreaPath,'{areapath}')
Adott terület elérési útjának munkaelemeit adja vissza, és egy adott terület elérési útján lévő elemeket cserél Area/AreaPath eq '{areapath}'
vissza.
A csoportnév szerinti szűréshez használja a szűrőutasítást Teams/any(x:x/TeamName eq '{teamname})'
.
and Descendants/any()
Tartalmazza az összes funkciót, még azokat is, amelyek nem rendelkeznek felhasználói történetekkel. Cserélje le az "any(d:d/WorkItemType eq "User Story")"-ra a gyermek felhasználói történetekkel nem rendelkező szolgáltatások kihagyásához.
&$select=WorkItemId, Title, WorkItemType, State
Jelölje ki a visszaadni kívánt mezőket.
&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath),
Jelölje ki a bővíthető tulajdonságmezőket AssignedTo
, Iteration
. Area
Descendants(
Bontsa ki a záradékot Descendants
.
$apply=filter(WorkItemType eq 'User Story')
Szűrje a leszármazottakat, hogy csak felhasználói történeteket tartalmazzon (kihagyja a feladatokat és a hibákat).
/aggregate($count as CountOfUserStories, StoryPoints with sum as TotalStoryPoints)
A szűrési záradéknak megfelelő összes leszármazott esetében számolja meg őket, és összegzi a tulajdonságot StoryPoints
.
)
Zárja be a Descendants()
eszközt.
Az összesítő szövegegység-pontok a Teamsen alapuló gyermek felhasználói történetek funkcióira mutatnak
Az alábbi lekérdezések azt mutatják be, hogyan hozhat létre összesítő jelentéseket, amelyeket csoportnév alapján szűrhet a Terület elérési útja helyett.
Másolja és illessze be közvetlenül az alábbi Power BI-lekérdezést az Üres adat>lekérdezés lekérése ablakba. További információ: OData-lekérdezéseket használó mintajelentések áttekintése.
let
Source = OData.Feed("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'Feature'"
&" and State ne 'Cut'"
&" and (Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname})"
&" and Descendants/any()"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate($count as CountOfUserStories, StoryPoints with sum as TotalStoryPoints)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
A történet összesítése eposzokra mutat
A következő lekérdezésekkel összesítheti a történeti pontokat az Epicsre.
Másolja és illessze be közvetlenül az alábbi Power BI-lekérdezést az Üres adat>lekérdezés lekérése ablakba. További információ: OData-lekérdezéseket használó mintajelentések áttekintése.
let
Source = OData.Feed("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'Epic'"
&" and State ne 'Cut'"
&" and startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any(d:d/WorkItemType eq 'User Story')"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate(StoryPoints with sum as TotalStoryPoints)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
A hátralévő munka és befejezett munka összesítése felhasználói történetekbe
Az alábbi lekérdezés bemutatja, hogyan lehet összesíteni a gyermekfeladatokhoz rendelt hátralévő munkát és befejezett munkát a hierarchiában lévő felhasználói történetekhez. Ezek a lekérdezések feltételezik, hogy a feladatok egy felhasználói történet gyermekeiként vannak hozzárendelve a megadott terület elérési útján.
Másolja és illessze be közvetlenül az alábbi Power BI-lekérdezést az Üres adat>lekérdezés lekérése ablakba. További információ: OData-lekérdezéseket használó mintajelentések áttekintése.
let
Source = OData.Feed("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'User Story'"
&" and State ne 'Removed'"
&" and startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any()"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'Task')"
&"/aggregate(RemainingWork with sum as TotalRemainingWork, CompletedWork with sum as TotalCompletedWork)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Összesítő hibaszám a szolgáltatásokban
Az alábbi lekérdezések bemutatják, hogyan lehet összesíteni a szolgáltatásokhoz rendelt hibák számát. Ezek a lekérdezések feltételezik, hogy a hibák a megadott terület elérési útjának egyik funkciójának gyermekeiként vannak definiálva.
Másolja és illessze be közvetlenül az alábbi Power BI-lekérdezést az Üres adat>lekérdezés lekérése ablakba. További információ: OData-lekérdezéseket használó mintajelentések áttekintése.
let
Source = OData.Feed("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'Feature'"
&" and State ne 'Removed'"
&" and startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any()"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'Bug')"
&"/aggregate($count as CountOfBugs)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(Nem kötelező) Lekérdezés átnevezése
Az alapértelmezett lekérdezéscímkét (Query1) átnevezheti valami értelmesebbre. Egyszerűen adjon meg egy új nevet a Lekérdezés beállításai panelen.
Oszlopok kibontása a Power BI-ban
A &$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath)
záradék több mezőt tartalmazó rekordokat ad vissza. A jelentés létrehozása előtt ki kell bontania a rekordot, hogy adott mezőkbe egyesíthesse. Ebben az esetben a következő rekordokat szeretné kibontani:
AssignedTo
AreaPath
IterationPath
A power BI-jelentések létrehozásához tekintse meg a Transform Analytics-adatokat ismertető témakört.
(Nem kötelező) Mezők átnevezése
Az oszlopok kibontása után érdemes lehet átnevezni egy vagy több mezőt. Átnevezheti például az oszlopot AreaPath
a következőre Area Path
: . További információ: Oszlopmezők átnevezése.
Null értékek cseréje az összesítő mezőkben
Ha egy munkaelemnek nincs gyermeke, az összegző érték null lehet. A Descendants.CountOfUserStories például "null" értékű, ha egy szolgáltatás nem tartalmaz gyermek felhasználói történeteket.
A könnyebb jelentéskészítés érdekében cserélje le az összes null értéket nullára az alábbi lépések végrehajtásával.
- Jelölje ki az oszlopot az oszlopfejlécre kattintva.
- Válassza az Átalakítás menüt.
- Válassza az Értékek cseréje lehetőséget. Megjelenik az Értékek cseréje párbeszédpanel.
- Írja be a "null" értéket a Keresendő érték mezőbe.
- Írja be a "0" értéket a Csere gombra.
- Válassza az OK lehetőséget.
Ismételje meg az összesítő oszlopot.
Zárja be a lekérdezést, és alkalmazza a módosításokat
Miután elvégezte az összes adatátalakítást, válassza a Kezdőlap menü Bezárás &alkalmaz elemét a lekérdezés mentéséhez és a Power BI Jelentés lapjára való visszatéréshez.
A Tábla jelentés létrehozása
A Power BI-ban válassza a Tábla jelentést a Vizualizációk csoportban.
Adja hozzá a következő mezőket az oszlopokhoz a megadott sorrendben:
WorkItemI
elemet, válassza az Összegzés mellőzése lehetőséget az azonosító megjelenítéséhez, ha szükségesWorkItemType
Title
State
Count of User Stories
Total Story Points
.
Megjelenik a példajelentés.