Informes y consultas de ejemplo de desencadenamiento de versiones

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Los informes de evolución y evolución muestran cuánto trabajo se está completando con el tiempo. En la imagen siguiente se muestra el agotamiento por recuento de casos de usuario y la suma de puntos de historia.

Captura de pantalla del informe de gráfico de columnas agrupadas de la versión de Power BI.

Los gráficos de evolución solo tienen sentido si planea su trabajo durante el período de tiempo del gráfico. De lo contrario, si planea un sprint por sprint, no verá un agotamiento estándar. En estos casos, un gráfico de evolución tiene más sentido ver cómo se realiza el progreso a lo largo del tiempo.

Para obtener más información sobre el agotamiento y el agotamiento, consulte Configuración de un widget de burndown o burnupy la guía de burndown y burnup.

Nota:

En este artículo se da por supuesto que ha leído Información general de los informes de ejemplo mediante consultas de OData y tiene conocimientos básicos de Power BI.

Prerrequisitos

  • Para ver los datos de Analytics y consultar el servicio, debe ser miembro de un proyecto con acceso básico o superior. De forma predeterminada, a todos los miembros del proyecto se les conceden permisos para consultar Analytics y definir vistas de Analytics.
  • Para obtener información sobre otros requisitos previos relacionados con la habilitación de servicios y características y las actividades generales de seguimiento de datos, consulte Permisos y requisitos previos para acceder a Analytics.

Consultas de ejemplo

Las consultas de esta sección muestran cómo generar gráficos de evolución de elementos de trabajo basados en datos históricos. Todas estas consultas especifican el WorkItemSnapshot conjunto de entidades.

Nota:

Para determinar las propiedades disponibles con fines de filtro o informe, consulte Referencia de metadatos para Azure Boards. Puede filtrar las consultas o devolver propiedades mediante cualquiera de los Property valores de o EntityTypeNavigationPropertyBinding Path disponibles con .EntitySet Cada EntitySet corresponde a .EntityType Para obtener más información sobre el tipo de datos de cada valor, revise los metadatos proporcionados para el correspondiente EntityType.

Evolución de los casos de usuario en una ruta de acceso de área desde la fecha de inicio y finalización

En la consulta siguiente se muestra cómo devolver datos históricos de casos de usuario para una versión basada en elementos de trabajo etiquetados con una etiqueta de versión.

Nota:

En el caso de los informes basados en el filtrado de una etiqueta, la etiqueta debe asignarse al elemento de trabajo al principio de la fecha de inicio de la versión o de quema o de quema. De lo contrario, el elemento de trabajo no se incluye en los datos devueltos.

Puede pegar la consulta de Power BI que se muestra a continuación directamente en la ventana Obtener consulta en blanco de datos>. Para obtener más información, consulte Introducción a los informes de ejemplo mediante consultas de OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot?"
        &"$apply=filter(WorkItemType eq 'User Story' "
            &"and StateCategory ne 'Completed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and Tags/any(x:x/TagName eq '{tagname}') "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
        &") "
        &"/groupby ( "
            &"(DateValue,State,Area/AreaPath), "
            &"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Cadenas de sustitución y desglose de consultas

Sustituya las cadenas siguientes por sus valores. No incluya corchetes {} con la sustitución. Por ejemplo, si el nombre de la organización es "Fabrikam", reemplace por {organization}Fabrikam, no {Fabrikam}.

  • {organization} - El nombre de la organización
  • {project} - El nombre del proyecto de equipo, o bien se omite "/{project}" por completo, para una consulta entre proyectos.
  • {areapath} - Su ruta de acceso del área. Formato de ejemplo: Project\Level1\Level2
  • {tag} : etiqueta que representa la versión. Todos los elementos de trabajo etiquetados con {tagname} se incluyen en el informe
  • {startdate} - La fecha de inicio del informe de evolución con el formato : YYYY-MM-DDZ. Por ejemplo: 2022-04-01Z representa 2022-april-01. No incluya comillas.
  • {enddate} - Fecha de finalización del informe de evolución.

Desglose de consultas

En la tabla siguiente se describe cada parte de la consulta.

Elemento de consulta

Descripción

$apply=filter(WorkItemType eq 'User Story'

Incluir casos de usuario en el agotamiento.

and StateCategory ne 'Completed'

Filtra los elementos que se completan. Para obtener más información sobre las categorías de estado, vea Cómo se usan los estados de flujo de trabajo y las categorías de estado en Trabajos pendientes y paneles.

and startswith(Area/AreaPath,'{areapath}')

Incluya solo casos de usuario en una ruta de acceso de área específica reemplazando '{areapath}'.
Para filtrar por un nombre de equipo, use la instrucción Teams/any(x:x/TeamName eq '{teamname})'filter .

and Tags/any(x:x/TagName eq '{tagname}').

Especifica la etiqueta que representa la versión en la que se va a quemar y para incluir todos los elementos de trabajo etiquetados con {tagname} en el informe.

and DateValue ge {startdate}

Inicie el agotamiento en o después de la fecha especificada. Ejemplo: 2019-04-01Z representa 2019-april-01.

and DateValue le {enddate}

Inicie el agotamiento en o antes de la fecha especificada. El mismo formato que {startdate}.

)

Cláusula Close filter() .

/groupby (

Cláusula Start groupby() .

(DateValue, State, Area/AreaPath),

Agrupar por DateValue (se usa para tendencias) y los campos en los que desea informar.

aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints)

Agregado por recuento de casos de usuario y suma de puntos de historia.

)

Cláusula Close groupby() .

Agotamiento de casos de usuario para un equipo

La consulta siguiente devuelve los datos de evolución filtrados por nombre de equipo en lugar de ruta de acceso de área.

Puede pegar la consulta de Power BI que se muestra a continuación directamente en la ventana Obtener consulta en blanco de datos>. Para obtener más información, consulte Introducción a los informes de ejemplo mediante consultas de OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot?"
        &"$apply=filter(WorkItemType eq 'User Story' "
            &"and StateCategory ne 'Completed' "
            &"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 Tags/any(x:x/TagName eq '{tagname}') "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
        &") "
        &"/groupby ( "
            &"(DateValue,State,Area/AreaPath), "
            &"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Grabar casos de usuario con una instantánea todos los viernes

El uso de una instantánea semanal reduce la cantidad de datos extraídos en Power BI y aumenta el rendimiento de las consultas.

Puede pegar la consulta de Power BI que se muestra a continuación directamente en la ventana Obtener consulta en blanco de datos>. Para obtener más información, consulte Introducción a los informes de ejemplo mediante consultas de OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot?"
        &"$apply=filter(WorkItemType eq 'User Story' "
            &"and StateCategory ne 'Completed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and Tags/any(x:x/TagName eq '{tagname}') "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
            &"and Date/DayName eq 'Friday' "
        &") "
        &"/groupby ( "
            &"(DateValue,State,Area/AreaPath,AreaSK), "
            &"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Casos de usuario de evolución basados en una ruta de acceso de iteración y área

Algunas organizaciones usan rutas de acceso de iteración para marcar historias para una versión. Por ejemplo, pueden tener una ruta de acceso de iteración de MyProject\Release1. En la consulta siguiente se muestra cómo seleccionar Casos de usuario por ruta de acceso de iteración.

Puede pegar la consulta de Power BI que se muestra a continuación directamente en la ventana Obtener consulta en blanco de datos>. Para obtener más información, consulte Introducción a los informes de ejemplo mediante consultas de OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot?"
        &"$apply=filter(WorkItemType eq 'User Story' "
            &"and StateCategory ne 'Completed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and startswith(Iteration/IterationPath,'{iterationpath}') "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
            &") "
        &"/groupby ( "
            &"(DateValue,StateCategory,State,Area/AreaPath,AreaSK), "
            &"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Casos de usuario de evolución con un valor de campo personalizado

Algunas organizaciones usan un campo personalizado para marcar casos de usuario para una versión. Por ejemplo, pueden tener un campo denominado Hito. Esta consulta muestra cómo seleccionar Casos de usuario por un campo personalizado.

Deberá reemplazar y {customfieldname}{releasevalue} en la consulta. Para determinar el nombre del campo personalizado, vea Referencia de metadatos para Azure Boards, Propiedades personalizadas. Reemplazará {customfieldname} por el nombre de la propiedad personalizada, por ejemplo Custom_Milestone.

Puede pegar la consulta de Power BI que se muestra a continuación directamente en la ventana Obtener consulta en blanco de datos>. Para obtener más información, consulte Introducción a los informes de ejemplo mediante consultas de OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot?"
        &"$apply=filter(WorkItemType eq 'User Story' "
            &"and StateCategory ne 'Completed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and {customfieldname} eq '{releasevalue}' "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
            &") "
        &"/groupby ( "
            &"(DateValue,StateCategory,State,Area/AreaPath,AreaSK), "
            &"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

(Opcional) Cambiar el nombre de la consulta

Puede cambiar el nombre de la etiqueta de consulta predeterminada, Query1, a algo más significativo. Simplemente escriba un nuevo nombre en el panel Configuración de consulta.

Captura de pantalla de las opciones del menú de consulta de Power BI, cambiar el nombre de la consulta.

Expandir columnas en Editor de Power Query

Antes de crear el informe, deberá expandir columnas que devuelvan registros que contengan varios campos. En este caso, querrá expandir los registros siguientes:

  • Links
  • Links.TargetWorkItem
  • Area
  • Iteration
  • AssignedTo

Para obtener información sobre cómo expandir elementos de trabajo, consulte Transformación de datos de Análisis para generar informes de Power BI.

Cierre la consulta y aplique los cambios

Una vez que haya completado todas las transformaciones de datos, elija Cerrar & aplicar en el menú Inicio para guardar la consulta y volver a la pestaña Informe de Power BI.

Captura de pantalla de Editor de Power Query opción Cerrar y aplicar.

Creación del gráfico de columnas agrupadas

  1. En Power BI, elija Gráfico de columnas agrupadas en Visualizaciones.

    Captura de pantalla de las selecciones Visualizaciones y campos de Power BI para el informe de gráfico de columnas agrupadas de lanzamiento.

  2. Agregue DateValue al eje X, haga clic con el botón derecho y seleccione DateValue, en lugar de Date Hierarchy

  3. Agregue Count al eje Y.

  4. Agregue TotalStoryPoints al eje Y.

En el informe de ejemplo se muestra el agotamiento del recuento de historias y sumas o puntos de historia.

Captura de pantalla del informe de gráfico de columnas agrupadas de la versión de ejemplo de Power BI.