Megosztás a következőn keresztül:


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.

Képernyőkép a funkcióösszesítő mátrix jelentéséről.

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

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ő EntityTypemetaadatokat.

Ö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 Fabrikamhelyé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.

Képernyőkép a Power BI lekérdezési menüjének beállításairól, a lekérdezés átnevezéséről.

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.

  1. Jelölje ki az oszlopot az oszlopfejlécre kattintva.
  2. Válassza az Átalakítás menüt.
  3. Válassza az Értékek cseréje lehetőséget. Megjelenik az Értékek cseréje párbeszédpanel.
  4. Írja be a "null" értéket a Keresendő érték mezőbe.
  5. Írja be a "0" értéket a Csere gombra.
  6. 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.

Képernyőkép a Power Query-szerkesztő Bezárás és alkalmazás lehetőségről.

A Tábla jelentés létrehozása

  1. A Power BI-ban válassza a Tábla jelentést a Vizualizációk csoportban.

    Képernyőkép a Power BI-vizualizációkról és az összegző táblajelentés mezőinek kiválasztásáról.

  2. Adja hozzá a következő mezőket az oszlopokhoz a megadott sorrendben:

    • WorkItemIelemet, válassza az Összegzés mellőzése lehetőséget az azonosító megjelenítéséhez, ha szükséges
    • WorkItemType
    • Title
    • State
    • Count of User Stories
    • Total Story Points.

Megjelenik a példajelentés.

Képernyőkép a Mintafunkciók összegző mátrix jelentéséről.