Informe de ejemplo de acumulación de progreso de características



$filter=WorkItemType eq 'Feature'

Devolver características.

and State ne 'Cut'

Omitir características marcadas como Cortar.

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

Elementos de trabajo en una ruta de acceso de área específica. Reemplazar por devuelve Area/AreaPath eq '{areapath}' elementos en una ruta de acceso de área específica.
Para filtrar por nombre de equipo, use la instrucción de filtro Teams/any(x:x/TeamName eq '{teamname})' .

and Descendants/any()

Filtra cualquier elemento de trabajo que tenga al menos uno o "cualquiera" descendiente. Incluye todas las características con al menos un WIT secundario. Para obtener todos los elementos de trabajo con sus descendientes, incluso si no tienen ninguno, ejecute una consulta sin el Descendants/any() filtro. Para omitir las características que no tienen casos de usuario secundarios, reemplace por any(d:d/WorkItemType eq 'User Story') .
Para todos los elementos de trabajo con y sin descendientes:
$filter=endswith(Area/AreaPath,'suffix') &$select=WorkItemId,Title,WorkItemType,State,Area, Descendants &$expand=Descendants($select=WorkItemId)

Para todos los elementos de trabajo con al menos un descendiente:

&$select=WorkItemId, Title, WorkItemType, State

Seleccione los campos que desea devolver.

&$expand=Descendants(

Expanda Descendientes.

$apply=filter(WorkItemType eq 'User Story')

Filtra los descendientes. Incluir solo casos de usuario (omite tareas y errores).

/groupby((StateCategory),

Agrupa el paquete acumulativo por StateCategory. Para obtener más información sobre las categorías de estado, vea How workflow states and state categories are used in Backlogs and Boards.

aggregate(StoryPoints with sum as TotalStoryPoints))

Suma agregada de puntos de historia.

)

Cerrar Descendants().

Filtros de consulta

Para determinar los filtros de consulta disponibles, consulte los metadatos como se describe en Exploración de los metadatos de OData de Analytics. Puede filtrar las consultas mediante cualquiera de los valores de NavigationPropertyBinding Path enumerados en entitySet. Para obtener más información sobre el tipo de datos de cada valor, revise los metadatos proporcionados para el entityType correspondiente. Cada EntitySet corresponde a entityType.

Por ejemplo, EntitySet Name="WorkItemSnapshot" corresponde a EntityType Name="WorkItemSnapshot". Los metadatos de OData para EntitySet Name="WorkItemSnapshot" se muestran a continuación para v4.0-preview. Puede agregar filtros basados en cualquiera de los valores de NavigationPropertyBinding Path enumerados.

<EntitySet Name="WorkItemSnapshot" EntityType="Microsoft.VisualStudio.Services.Analytics.Model.WorkItemSnapshot">
  <NavigationPropertyBinding Path="Date" Target="Dates"/>
  <NavigationPropertyBinding Path="RevisedOn" Target="Dates"/>
  <NavigationPropertyBinding Path="Teams" Target="Teams"/>
  <NavigationPropertyBinding Path="Processes" Target="Processes"/>
  <NavigationPropertyBinding Path="Project" Target="Projects"/>
  <NavigationPropertyBinding Path="Area" Target="Areas"/>
  <NavigationPropertyBinding Path="Iteration" Target="Iterations"/>
  <NavigationPropertyBinding Path="AssignedTo" Target="Users"/>
  <NavigationPropertyBinding Path="ChangedBy" Target="Users"/>
  <NavigationPropertyBinding Path="CreatedBy" Target="Users"/>
  <NavigationPropertyBinding Path="ActivatedBy" Target="Users"/>
  <NavigationPropertyBinding Path="ClosedBy" Target="Users"/>
  <NavigationPropertyBinding Path="ResolvedBy" Target="Users"/>
  <NavigationPropertyBinding Path="Tags" Target="Tags"/>
  <NavigationPropertyBinding Path="ChangedOn" Target="Dates"/>
  <NavigationPropertyBinding Path="ClosedOn" Target="Dates"/>
  <NavigationPropertyBinding Path="CreatedOn" Target="Dates"/>
  <NavigationPropertyBinding Path="ResolvedOn" Target="Dates"/>
  <NavigationPropertyBinding Path="StateChangeOn" Target="Dates"/>
  <NavigationPropertyBinding Path="InProgressOn" Target="Dates"/>
  <NavigationPropertyBinding Path="CompletedOn" Target="Dates"/>
</EntitySet>

Power BI transformaciones

La consulta devuelve varias columnas que debe expandir para poder usarlas en Power BI. Cualquier entidad que se extraía mediante una instrucción $expand OData devuelve un registro con potencialmente varios campos. Expanda el registro para aplanar la entidad en sus campos.

Para el informe Progreso de la característica, deberá llevar a cabo las transformaciones siguientes:

  • Expanda la columna Descendants en dos columnas: Descendants.StateCategory y Descendants.TotalStoryPoints.
  • Aplicar transformación columna dinámica en la columna Descendants.StateCategory para separar categorías de estado individuales
  • Reemplazo de valores NULL en columnas dinamadas
  • Agregue una columna personalizada para representar el porcentaje completado.

Nota

En este ejemplo, los valores de Estado para Caso de usuario incluyen Propuesto, En cursoy Completado.

Expandir columna Descendientes

La columna Descendants contiene una tabla con dos campos: State y TotalStoryPoints. Expándalo.

  1. Seleccione el botón expandir de la columna Descendientes.

    Power BI + OData - expand the Descendants column

  2. Compruebe todos los campos y elija Aceptar.

    Expand dialog for Descendants column.

  3. La tabla ahora contiene campos consolidados.

    Expanded Descendants columns include StateCategory and TotalStoryPoints.

Columna Descendants.StateCategory dinámica

  1. Seleccione el encabezado de columna Descendants.StateCategory para seleccionarlo.

  2. Seleccione el menú Transformar y, después, Columna dinámica. Transform menu, Pivot Column option.

  3. En Valores, seleccione "Descendants.TotalStoryPoints".

  4. Haga clic en Aceptar. Power BI crea una columna para cada valor stateCategory.

    Pivot Descendants.StateCategory column.

Reemplazo de valores NULL en columnas dinamadas

Algunas de las nuevas columnas Pivoted StateCategory tendrán valores NULL. Para facilitar la creación de informes, reemplace los valores NULL por ceros.

  1. Seleccione la columna haciendo clic en el encabezado de columna.
  2. Seleccione el menú Transformar.
  3. Seleccione Reemplazar valores. Aparece el cuadro de diálogo Reemplazar valores.
  4. Escriba "null" en Valor para buscar.
  5. Escriba "0" en Reemplazar por.
  6. Elija Aceptar.

Repita la repetición para cada columna StateCategory dinamizó.

Creación de una columna calculada de porcentaje completo

  1. Seleccione el menú Agregar columna.

  2. Seleccione Columna personalizada.

  3. Escriba PercentComplete enNew column name (Nuevo nombre de columna).

  4. Escriba lo siguiente en Fórmula de columna personalizada.

    = [Completed]/([Proposed]+[InProgress]+[Resolved]+[Completed])
    

    Custom Column Dialog, PercentComplete syntax.

    Nota

    Es posible que no tenga una columna Resuelta si los elementos de trabajo no tienen estados asignados a la categoría estado resuelto. Si es así, omita "[Resolved]" en la fórmula anterior.

  5. Haga clic en Aceptar.

  6. Seleccione el menú Transformar.

  7. Seleccione Tipo de datos y Porcentaje.

Cambie el nombre de los campos y la consulta y, a continuación, cierre & Aplicar.

Cuando termine, puede cambiar el nombre de las columnas.

  1. Haga clic con el botón derecho en un encabezado de columna y seleccione Cambiar nombre...

    Power BI Rename Columns

  2. También puede cambiar el nombre de la consulta del valor predeterminado Query1a algo más significativo.

    Power BI Rename Query

  3. Una vez hecho esto, elija Cerrar aplicar para guardar la consulta y volver a Power BI.

    Power BI Close & Apply

Creación del informe

Power BI muestra los campos sobre los que puede informar.

Nota

En el ejemplo siguiente se da por supuesto que nadie ha cambiado el nombre de ninguna columna.

Feature Progress fields.

Para el informe, realice los pasos siguientes:

  1. En Visualizaciones,elija el Gráfico de barras apiladas.
  2. Agregue el campo Título al eje.
  3. Agregue PercentComplete aValores.
    • Haga clic con el botón derecho en PorcentajeCompletar y seleccione Sumar.

Se muestra el informe de ejemplo.

Feature Progress sample report.

Consultas adicionales

Puede usar las siguientes consultas adicionales para crear informes diferentes pero similares mediante los mismos pasos definidos anteriormente en este artículo.

Filtrar por equipos, en lugar de ruta de acceso de área

Esta consulta es la misma que la usada anteriormente, salvo que filtra por nombre de equipo en lugar de ruta de acceso de área.

Puede pegar la consulta Power BI que se muestra a continuación directamente en la ventana Obtener datos: consulta en blanco. Para obtener más información, consulte Información general de informes de ejemplo mediante consultas de 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

Lista completa de informes de ejemplo

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019

En este artículo se muestra cómo crear un informe de barra apilada para mostrar el progreso de características basadas en casos de usuario secundarios completados. El informe muestra el porcentaje completado por acumulación de puntos de historia para un conjunto determinado de características activas. Un ejemplo se muestra en la imagen siguiente.

Feature Progress sample report, intro.

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 que tiene conocimientos básicos de Power BI.

Prerrequisitos

  • Debe ser miembro de un proyecto con acceso Básico o superior. Si no se ha agregado como miembro del proyecto, ahora se le agregará. Cualquier persona con acceso al proyecto, excepto las partes interesadas, puede ver las vistas de Analytics.
  • Para que los datos de Analytics estén disponibles, se debe habilitar el servicio correspondiente. Por ejemplo, para consultar los datos de seguimiento del trabajo, Boards debe estar habilitado. Si está deshabilitada, no se mostrarán las vistas de Analytics. Para volver a habilitar un servicio, consulte Activación o desactivación de Azure DevOps servicio de mantenimiento.
  • Para usar vistas de Analytics,habilite la característica vista previa vistas de Analytics para usuarios individuales o para la organización.
  • Además, debe tener el permiso *View Analytics establecido en Permitir. Para más información, consulte Concesión de permisos para acceder al servicio Analytics.
  • Para usar Power BI para Azure DevOps o para ejecutar una consulta de OData para Analytics, debe tener el permiso de View Analytics establecido en Permitir. De forma predeterminada, se concede acceso a todos los colaboradores con acceso Básico. Para editar vistas compartidas de Analytics,debe tener el permiso * Editar vistascompartidas de Analytics establecido en Permitir. Para más información, consulte Concesión de permisos para acceder al servicio Analytics.
  • Debe ser miembro de un proyecto con acceso Básico o superior. Si no se ha agregado como miembro del proyecto, ahora se le agregará. Cualquier persona con acceso al proyecto, excepto las partes interesadas, puede ver las vistas de Analytics.
  • Compruebe que Analytics está instalado y, si no es así, habilite esta opción. Debe ser propietario de la cuenta o miembro del grupo administrador de Project recopilación para agregar extensiones o habilitar el servicio.
  • Para que los datos de Analytics estén disponibles, se debe habilitar el servicio correspondiente. Por ejemplo, para consultar los datos de seguimiento del trabajo, Boards debe estar habilitado. Si está deshabilitada, no se mostrarán las vistas de Analytics. Para volver a habilitar un servicio, consulte Activación o desactivación de Azure DevOps servicio de mantenimiento.
  • Para usar vistas de Analytics,habilite la característica vista previa vistas de Analytics para usuarios individuales o para la organización.
  • Además, debe tener el permiso *View Analytics establecido en Permitir. Para más información, consulte Concesión de permisos para acceder al servicio Analytics.
  • Para usar Power BI para Azure DevOps o para ejecutar una consulta de OData para Analytics, debe tener el permiso de View Analytics establecido en Permitir. De forma predeterminada, se concede acceso a todos los colaboradores con acceso Básico. Para editar vistas compartidas de Analytics,debe tener el permiso Editar vistas compartidas de Analytics establecido en Permitir. Para más información, consulte Concesión de permisos para acceder al servicio Analytics.

Consultas de ejemplo

Puede pegar la consulta Power BI siguiente directamente en la ventana Obtener datos: consulta en blanco. Para obtener más información, consulte Información general de informes de ejemplo mediante consultas de 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 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

Cadenas de sustitución

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

  • {organization} - Nombre de la organización
  • {project} - El nombre del proyecto de equipo u omite "/{project}" por completo para una consulta entre proyectos
  • {areapath} : la ruta de acceso del área. Formato de ejemplo: Project/Level1/Level2

Desglose de consultas

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

Elemento de consulta

Descripción