Funkcióállapot összesítő mintajelentése
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Ez a cikk bemutatja, hogyan hozhat létre halmozott sávjelentést a funkciók állapotának megjelenítéséhez a befejezett gyermek felhasználói történetek alapján. A jelentés egy adott aktív funkciókészlet történeti pontjainak összesítésével jeleníti meg a készültségi arányt. Az alábbi képen egy példa látható.
Egy összegző oszlop hozzáadásával megtekintheti a hátralék hasonló folyamatábra-diagramjait. A folyamat menetének és összegeinek megjelenítése című témakörben talál további információt.
Feljegyzés
Ez a cikk feltételezi, hogy OData-lekérdezésekkel olvasta a mintajelentések áttekintését, és alapszintű ismeretekkel rendelkezik a Power BI-ról.
Előfeltételek
- Hozzáférési szint: Alapszintű vagy magasabb hozzáféréssel rendelkező projekt tagjának kell lennie.
- Engedély: 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
A funkció előrehaladása lekérdezi az WorkItems
entitást az aktuális állapot lekéréséhez.
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.
A funkció előrehaladásának áttekintése egy terület elérési útja alapján
Az alábbi Power BI-lekérdezést közvetlenül az Adat-üres> lekérdezés lekérése ablakba illessze be. További információkért tekintse át a mintajelentések áttekintését OData-lekérdezésekkel.
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,Area,Iteration,AssignedTo,WorkItemType,State,AreaSK"
&"&$expand=Descendants( "
&"$apply=filter(WorkItemType eq 'User Story') "
&"/groupby((StateCategory), "
&"aggregate(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 teljes egészében kihagyva/{project}
egy 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'
Kihagyja a Kivágásként megjelölt funkciókat.
and startswith(Area/AreaPath,'{areapath}')
Adott terület elérési útjának munkaelemeit adja vissza. Egy adott terület elérési útján lévő elemekre cserélve Area/AreaPath eq '{areapath}'
.
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()
Szűrjön ki minden olyan munkaelemet, amely legalább egy vagy "bármely" leszármazottat tartalmaz. Tartalmazza az összes olyan funkciót, amely legalább egy Gyermek munkaelemet tartalmaz. Ha az összes munkaelemet le szeretné szerezni a leszármazottaikkal, még akkor is, ha nem rendelkezik ilyennel, futtasson egy lekérdezést a Descendants/any()
szűrő nélkül. A gyermek felhasználói történetekkel nem rendelkező szolgáltatások kihagyásához cserélje le a következőre any(d:d/WorkItemType eq 'User Story')
: .
A leszármazottakkal és anélkül rendelkező összes munkaelem esetén:
$filter=endswith(Area/AreaPath,'suffix')
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)
Minden olyan munkaelem esetében, amelynek legalább egy leszármazottja van:
$filter=endswith(Area/AreaPath, 'suffix')and Descendants/any()
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)
&$select=WorkItemId, Title, WorkItemType, State
Válassza ki a visszaadni kívánt tulajdonságokat.
&$expand=Descendants(
Kibontási Descendants
záradék kezdete
$apply=filter(WorkItemType eq 'User Story')
Szűrje a leszármazottakat. Csak felhasználói történeteket tartalmazzon (kihagyja a feladatokat és a hibákat).
/groupby((StateCategory),
Csoportosítsa az összesítőt StateCategory szerint. Az állapotkategóriákkal kapcsolatos további információkért tekintse meg a munkafolyamat-állapotok és állapotkategóriák használatát a hátralékokban és a táblákban.
aggregate(StoryPoints with sum as TotalStoryPoints))
A történeti pontok összesített összege.
)
Zárja be Descendants()
a záradékot.
Egy csapat funkcióállapotának áttekintése
A következő lekérdezés megegyezik a fent használt lekérdezéssel, kivéve, hogy a terület elérési útja helyett csoportnév alapján szűr.
Az alábbi Power BI-lekérdezést közvetlenül az Adat-üres> lekérdezés lekérése ablakba illessze be. További információkért tekintse át a mintajelentések áttekintését OData-lekérdezésekkel.
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=Descendants( "
&"$apply=filter(WorkItemType eq 'User Story') "
&"/groupby((StateCategory), "
&"aggregate(StoryPoints with sum as TotalStoryPoints)) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Az adatok átalakítása a Power Query-szerkesztő
A lekérdezés több oszlopot ad vissza, amelyeket ki kell bontania, mielőtt felhasználhatja őket egy jelentés létrehozásához. Az OData -$expand utasítással behúzott entitások olyan rekordot ad vissza, amely több mezőből állhat. Bontsa ki a rekordot az entitás mezőibe való összesimításához.
A funkcióállapot-jelentéshez a következő átalakításokat kell végrehajtania:
- Bontsa ki az
Descendants
oszlopot két oszlopra:Descendants.StateCategory
ésDescendants.TotalStoryPoints
- Kimutatásoszlop-átalakítás alkalmazása oszlopra
Descendants.StateCategory
az egyes állapotkategóriák elkülönítéséhez - Cserélje le a null értékeket az összes elforgatott oszlopban.
- Adjon hozzá egy egyéni oszlopot, amely a kész százalékos értéket jeleníti meg. Az egyéni oszlop hibaüzeneteket jelenít meg, ha a pivoted State oszlopokban null oszlop található.
A Power BI-jelentések létrehozásához tekintse meg a Transform Analytics-adatok következő szakaszait:
- Bontsa ki a Leszármazottak oszlopot.
- Pivot Descendants.StateCategory oszlop.
- Cserélje le a null értékeket.
- Teljes százalékos számítási oszlop létrehozása
Feljegyzés
Ebben a példában a felhasználói szövegegység állapotértékei közé tartozik a Javasolt, a Folyamatban és a Kész.
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.
Halmozott sávdiagram-jelentés létrehozása
A Power BI-ban válassza a Halmozott sávdiagram-jelentést a Vizualizációk csoportban.
Hozzáadás
Title
az Y tengelyhez.Adja hozzá
PercentComplete
az X tengelyhez, kattintson a jobb gombbal, és válassza az Összeg lehetőséget.
Megjelenik a példajelentés.