다음을 통해 공유


번다운 샘플 쿼리 및 보고서 릴리스

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

번다운 및 번업 보고서는 시간이 지남에 따라 완료되는 작업의 양을 보여 줍니다. 다음 이미지는 사용자 스토리 수와 스토리 포인트 합계를 모두 보여 줍니다.

Power BI 릴리스 번다운 클러스터형 세로 막대형 차트 보고서의 스크린샷

번다운 차트는 차트의 기간 동안 작업을 계획하는 경우에만 의미가 있습니다. 그렇지 않은 경우 스프린트 단위로 계획하는 경우 표준 번다운이 표시되지 않습니다. 이러한 경우 번업 차트는 시간이 지남에 따라 진행 상황을 확인하는 것이 더 합리적입니다.

Important

  • 영역 경로를 삭제하거나 반복 경로를 다시 구성하면 되돌릴 수 없는 데이터가 손실됩니다. 예를 들어 영역 경로가 변경된 팀의 번다운 및 번업 위젯 차트, 스프린트 번다운 및 속도 차트는 정확한 데이터를 표시하지 않습니다. 기록 추세 차트는 각 작업 항목에 대해 시간에 정의된 대로 영역 경로반복 경로를 참조합니다. 삭제된 후에는 이러한 경로에 대한 기록 데이터를 검색할 수 없습니다.
  • 작업 항목에서 더 이상 사용되지 않는 영역 및 반복 경로만 삭제할 수 있습니다.

번다운 및 번업에 대한 자세한 내용은 번다운 또는 번업 위젯 구성 및 번다운 및 번업 지침을 참조하세요.

참고 항목

이 문서에서는 OData 쿼리를 사용하여 샘플 보고서 개요를 읽고 Power BI에 대한 기본적인 이해를 가지고 있다고 가정합니다 .

필수 조건

  • 액세스: 최소한 기본 액세스 권한이 있는 프로젝트의 멤버여야 합니다.
  • 사용 권한: 기본적으로 프로젝트 멤버는 분석을 쿼리하고 뷰를 만들 수 있는 권한이 있습니다.
  • 서비스 및 기능 사용 및 일반 데이터 추적 활동과 관련된 기타 필수 구성 요소에 대한 자세한 내용은 Analytics에 액세스하기 위한 사용 권한 및 필수 구성 요소를 참조 하세요.

샘플 쿼리

이 섹션의 쿼리는 기록 데이터를 기반으로 작업 항목의 번다운 차트를 생성하는 방법을 보여 줍니다. 이러한 모든 쿼리는 엔터티 집합을 WorkItemSnapshot 지정합니다.

참고 항목

필터 또는 보고서 용도로 사용 가능한 속성을 확인하려면 Azure Boards에 대한 메타데이터 참조를 참조 하세요. 에서 사용할 수 있는 값 또는 아래 값을 Property 사용하여 쿼리를 EntityType 필터링하거나 NavigationPropertyBinding Path 속성을 반환할 수 있습니다 EntitySet. 각각 EntitySet 은 .에 EntityType해당합니다. 각 값의 데이터 형식에 대한 자세한 내용은 해당 EntityType값에 대해 제공된 메타데이터를 검토하세요.

시작 및 종료 날짜부터 영역 경로의 사용자 스토리 번다운

다음 쿼리는 릴리스 태그로 태그가 지정된 작업 항목을 기반으로 릴리스에 대한 사용자 스토리의 기록 데이터를 반환하는 방법을 보여줍니다.

참고 항목

태그 필터링을 기반으로 하는 보고서의 경우 릴리스 또는 번다운/번업 시작 날짜가 시작될 때 태그를 작업 항목에 할당해야 합니다. 그렇지 않으면 작업 항목이 반환된 데이터에 포함되지 않습니다.

다음 Power BI 쿼리를 복사하여 데이터>빈 쿼리 가져오기 창에 직접 붙여넣습니다. 자세한 내용은 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

대체 문자열 및 쿼리 분석

다음 문자열을 값으로 바꿉니다. 대괄호를 대체에 {} 포함하지 마세요. 예를 들어 조직 이름이 "Fabrikam"{organization}Fabrikam{Fabrikam}인 경우 .

  • {organization} - 조직 이름
  • {project} - 프로젝트 간 쿼리의 경우 팀 프로젝트 이름 또는 "/{project}"를 완전히 생략합니다.
  • {areapath} - 영역 경로입니다. 예제 형식: Project\Level1\Level2
  • {tag} - 릴리스를 나타내는 태그입니다. 태그가 지정된 {tagname} 모든 작업 항목이 보고서에 포함됩니다.
  • {startdate} - 다음 형식 YYYY-MM-DDZ으로 번다운 보고서를 시작할 날짜입니다. 예: 2022-04-01Z 2022-4월-01을 나타냅니다. 따옴표를 묶지 마세요.
  • {enddate} - 번다운 보고서를 종료할 날짜입니다.

쿼리 분석

다음 표에서는 쿼리의 각 부분을 설명합니다.

쿼리 파트

설명

$apply=filter(WorkItemType eq 'User Story'

번다운에 사용자 스토리를 포함합니다.

and StateCategory ne 'Completed'

완료된 항목을 필터링합니다. 상태 범주에 대한 자세한 내용은 백로그 및 보드에서 워크플로 상태 및 상태 범주를 사용하는 방법을 참조 하세요.

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

대체되는 특정 영역 경로 '{areapath}'아래에 사용자 스토리만 포함합니다.
팀 이름으로 필터링하려면 filter 문을 Teams/any(x:x/TeamName eq '{teamname})'사용합니다.

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

보고서에 {tagname}으로 태그가 지정된 모든 작업 항목을 포함할 릴리스를 나타내는 태그 레이블을 지정합니다.

and DateValue ge {startdate}

지정된 날짜 또는 그 이후에 번다운을 시작합니다. 예: 2019-04-01Z 는 2019-4월-01을 나타냅니다.

and DateValue le {enddate}

지정된 날짜 또는 그 이전에 번다운을 시작합니다. {startdate}와 동일한 형식입니다.

)

Close filter() 절입니다.

/groupby (

Start groupby() 절입니다.

(DateValue, State, Area/AreaPath),

그룹화 기준 DateValue (추세에 사용됨) 및 보고하려는 모든 필드

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

스토리 포인트의 사용자 스토리 및 합계를 집계합니다.

)

Close groupby() 절입니다.

팀의 사용자 스토리 번다운

다음 쿼리는 영역 경로가 아닌 팀 이름으로 필터링된 번다운 데이터를 반환합니다.

다음 Power BI 쿼리를 복사하여 데이터>빈 쿼리 가져오기 창에 직접 붙여넣습니다. 자세한 내용은 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

매주 금요일 스냅샷으로 사용자 스토리 번다운

주간 스냅샷을 사용하면 Power BI로 끌어오는 데이터의 양이 줄어들고 쿼리 성능이 향상됩니다.

다음 Power BI 쿼리를 복사하여 데이터>빈 쿼리 가져오기 창에 직접 붙여넣습니다. 자세한 내용은 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

영역 및 반복 경로를 기반으로 하는 번다운 사용자 스토리

일부 조직에서는 반복 경로를 사용하여 릴리스에 대한 스토리를 표시합니다. 예를 들어 MyProject\Release1반복 경로가 있을 수 있습니다. 다음 쿼리는 반복 경로별로 사용자 스토리를 선택하는 방법을 보여 있습니다.

다음 Power BI 쿼리를 복사하여 데이터>빈 쿼리 가져오기 창에 직접 붙여넣습니다. 자세한 내용은 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

사용자 지정 필드 값이 있는 번다운 사용자 스토리

일부 조직에서는 사용자 지정 필드를 사용하여 릴리스에 대한 사용자 스토리를 표시합니다. 예를 들어 마일스톤이라는 필드가 있을 수 있습니다. 이 쿼리는 사용자 정의 필드별로 사용자 스토리를 선택하는 방법을 보여줍니다.

쿼리와 {releasevalue} 쿼리를 모두 {customfieldname} 바꿔야 합니다. 사용자 지정 필드의 이름을 확인하려면 Azure Boards, 사용자 지정 속성에 대한 메타데이터 참조를 참조하세요. 예를 들어 Custom_Milestone사용자 지정 속성 이름으로 바꿉 {customfieldname} 습니다.

다음 Power BI 쿼리를 복사하여 데이터>빈 쿼리 가져오기 창에 직접 붙여넣습니다. 자세한 내용은 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

(선택 사항) 쿼리 이름 바꾸기

기본 쿼리 레이블인 Query1의 이름을 좀 더 의미 있는 것으로 바꿀 수 있습니다. 쿼리 설정 창에서 새 이름을 입력하기만 하면 됩니다.

Power BI 쿼리 메뉴 옵션, 쿼리 이름 바꾸기 스크린샷

Power Query 편집기 열 확장

보고서를 만들기 전에 여러 필드가 포함된 레코드를 반환하는 열을 확장해야 합니다. 이 경우 다음 레코드를 확장하려고 합니다.

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

작업 항목을 확장하는 방법을 알아보려면 분석 데이터 변환을 참조 하여 Power BI 보고서를 생성합니다.

쿼리를 닫고 변경 내용 적용

모든 데이터 변환을 완료한 후 홈 메뉴에서 닫기 및 적용 을 선택하여 쿼리를 저장하고 Power BI의 보고서 탭으로 돌아갑니다.

Power Query 편집기 닫기 및 적용 옵션의 스크린샷

클러스터형 세로 막대형 차트 만들기

  1. Power BI의 시각화에서 클러스터형 세로 막대형 차트 선택합니다.

    릴리스 번다운 클러스터형 세로 막대형 차트 보고서에 대한 Power BI 시각화 및 필드 선택 스크린샷

  2. X축추가하고 DateValue 마우스 오른쪽 단추를 클릭하고 선택DateValue하지 않고Date Hierarchy

  3. Y축추가 Count 합니다.

  4. Y축추가 TotalStoryPoints 합니다.

예제 보고서는 스토리와 합계 또는 스토리 포인트의 수에 대한 번다운을 표시합니다.

Power BI 샘플 릴리스 번다운 클러스터형 세로 막대형 차트 보고서의 스크린샷.