Exemple de rapport cumulatif de progression des fonctionnalités
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Cet article vous montre comment créer un rapport de barre empilée pour afficher la progression des fonctionnalités en fonction des récits utilisateur enfants terminés. Le rapport affiche le pourcentage terminé par cumul des points d’article pour un ensemble donné de fonctionnalités actives. L’image suivante en contient un exemple.
Vous pouvez afficher des graphiques à barres de progression similaires à partir de votre backlog en ajoutant une colonne de cumul. Pour savoir comment afficher la progression ou les totaux du cumul.
Remarque
Cet article part du principe que vous lisez la vue d’ensemble des exemples de rapports à l’aide de requêtes OData et que vous avez une compréhension de base de Power BI.
Prérequis
- Accès : être membre d’un projet avec au moins un accès de base .
- Autorisations : par défaut, les membres du projet ont l’autorisation d’interroger Analytics et de créer des vues.
- Pour plus d’informations sur les autres prérequis concernant l’activation du service et des fonctionnalités et les activités de suivi des données générales, consultez Autorisations et conditions préalables pour accéder à Analytics.
Exemples de requêtes
La progression des fonctionnalités interroge l’entité WorkItems
pour obtenir l’état actuel de progression.
Remarque
Pour déterminer les propriétés disponibles à des fins de filtre ou de rapport, consultez Informations de référence sur les métadonnées pour Azure Boards. Vous pouvez filtrer vos requêtes ou renvoyer des propriétés à l’aide de l’une Property
des valeurs sous ou EntityType
des NavigationPropertyBinding Path
valeurs disponibles avec un EntitySet
. Chaque EntitySet
correspond à un EntityType
. Pour plus d’informations sur le type de données de chaque valeur, passez en revue les métadonnées fournies pour le type de données correspondant EntityType
.
Passer en revue la progression des fonctionnalités en fonction d’un chemin d’accès à une zone
Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir une requête vide de données>. Pour plus d’informations, consultez Vue d’ensemble des exemples de rapports à l’aide de requêtes OData.
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
Chaînes de substitution et répartition des requêtes
Remplacez les chaînes suivantes par vos valeurs. N’incluez pas de crochets {} avec votre substitution. Par exemple, si le nom de votre organisation est « Fabrikam », remplacez par {organization}
Fabrikam
, et non {Fabrikam}
par .
{organization}
- Nom de votre organisation{project}
- Nom de votre projet d’équipe ou omettre/{project}
entièrement, pour une requête inter-projets{areapath}
- Chemin d’accès de votre zone. Exemple de format :Project/Level1/Level2
.
Répartition des requêtes
Le tableau suivant décrit chaque partie de la requête.
Composant de requête
Description
$filter=WorkItemType eq 'Feature'
Renvoyer des fonctionnalités.
and State ne 'Cut'
Omettez les fonctionnalités marquées comme Cut.
and startswith(Area/AreaPath,'{areapath}')
Retournez des éléments de travail sous un chemin d’accès de zone spécifique. Le remplacement par Area/AreaPath eq '{areapath}'
renvoie des éléments à un chemin d’accès de zone spécifique.
Pour filtrer par nom d’équipe, utilisez l’instruction Teams/any(x:x/TeamName eq '{teamname})'
de filtre .
and Descendants/any()
Filtrez les éléments de travail qui ont au moins un ou « n’importe quel » descendant. Inclut toutes les fonctionnalités avec au moins un élément de travail enfant. Pour obtenir tous les éléments de travail avec leurs descendants, même s’ils n’en ont pas, exécutez une requête sans le Descendants/any()
filtre. Pour omettre les fonctionnalités qui n’ont pas d’histoires utilisateur enfants, remplacez par any(d:d/WorkItemType eq 'User Story')
.
Pour tous les éléments de travail avec et sans descendants :
$filter=endswith(Area/AreaPath,'suffix')
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)
Pour tous les éléments de travail avec au moins un descendant :
$filter=endswith(Area/AreaPath, 'suffix')and Descendants/any()
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)
&$select=WorkItemId, Title, WorkItemType, State
Sélectionnez les propriétés à retourner.
&$expand=Descendants(
Début de la clause expand Descendants
$apply=filter(WorkItemType eq 'User Story')
Filtrez les descendants. Incluez uniquement les récits utilisateur (omettre les tâches et les bogues).
/groupby((StateCategory),
Regroupez le cumul par StateCategory. Pour plus d’informations sur les catégories d’état, consultez Utilisation des états de flux de travail et des catégories d’état dans backlogs et tableaux.
aggregate(StoryPoints with sum as TotalStoryPoints))
Somme agrégée des points d’histoire.
)
Clause Close Descendants()
.
Passer en revue la progression des fonctionnalités pour une équipe
La requête suivante est la même que celle utilisée ci-dessus, sauf qu’elle filtre par nom d’équipe plutôt que par chemin d’accès à la zone.
Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir une requête vide de données>. Pour plus d’informations, consultez Vue d’ensemble des exemples de rapports à l’aide de requêtes OData.
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
Transformer les données dans Éditeur Power Query
La requête retourne plusieurs colonnes que vous devez développer avant de pouvoir les utiliser pour créer un rapport. Toute entité extraite à l’aide d’une instruction OData $expand retourne un enregistrement avec potentiellement plusieurs champs. Développez l’enregistrement pour aplatir l’entité dans ses champs.
Pour le rapport de progression des fonctionnalités, vous devez effectuer les transformations suivantes :
- Développez la
Descendants
colonne en deux colonnes :Descendants.StateCategory
etDescendants.TotalStoryPoints
- Appliquer la transformation de colonne pivote sur
Descendants.StateCategory
la colonne pour séparer les catégories d’état individuelles - Remplacez les valeurs Null dans toutes les colonnes pivotées.
- Ajoutez une colonne personnalisée pour représenter le pourcentage terminé. La colonne personnalisée affiche des erreurs s’il existe des colonnes Null dans les colonnes d’état croisé dynamique.
Pour savoir comment procéder, consultez les sections suivantes des données Transform Analytics pour générer des rapports Power BI :
- Développez la colonne Descendants.
- Colonne Descendants.StateCategory pivot.
- Remplacez les valeurs Null.
- Créer une colonne calculée en pourcentage
Remarque
Dans cet exemple, les valeurs d’état de l’article utilisateur incluent Proposé, En cours et Terminé.
Fermez la requête et appliquez vos modifications
Une fois que vous avez terminé toutes vos transformations de données, choisissez Fermer & Appliquer dans le menu Accueil pour enregistrer la requête et revenir à l’onglet Rapport dans Power BI.
Créer le rapport de graphique à barres empilées
Dans Power BI, choisissez Rapport de graphique à barres empilées sous Visualisations.
Ajouter
Title
à l’axe Y.Ajoutez
PercentComplete
à l’axe X, cliquez avec le bouton droit et sélectionnez Somme.
L’exemple de rapport s’affiche.
Articles connexes
- Explorer des exemples de rapports à l’aide de requêtes OData
- Construire des requêtes OData pour Analytics
- Se connecter à Power BI à l’aide de requêtes OData
- Reportez-vous aux métadonnées pour Azure Boards Analytics
- Accéder à des exemples de rapports et à un index de référence rapide
- Ajouter un segment Team à un rapport existant