연결된 작업 항목 목록 샘플 쿼리 및 보고서

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

이 문서에서는 다른 작업 항목에 연결된 작업 항목을 나열하는 보고서를 만드는 방법을 보여줍니다. 예를 들어 다음 보고서는 부모-자식 링크 유형을 사용하여 사용자 스토리에 연결된 기능 목록을 보여줍니다.

기능 및 사용자 스토리 테이블 보고서의 부모-자식 링크 스크린샷

링크 유형 및 작업 항목 연결에 대한 자세한 내용은 사용자 스토리, 문제, 버그 및 기타 작업 항목 링크를 참조 하세요.

다른 샘플 쿼리에는 다른 버그에 대한 중복 링크가 있는 버그 나열 및 다른 버그에 대한 중복 링크가 포함되지 않은 버그 나열이 포함됩니다.

참고 항목

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

필수 조건

  • 분석 데이터를 보고 서비스를 쿼리하려면 기본 액세스 이상의 프로젝트 멤버여야 합니다. 기본적으로 모든 프로젝트 멤버에는 분석을 쿼리하고 분석 뷰를 정의할 수 있는 권한이 부여됩니다.
  • 서비스 및 기능 사용 및 일반 데이터 추적 활동과 관련된 다른 필수 구성 요소에 대해 알아보려면 분석에 액세스하기 위한 사용 권한 및 필수 구성 요소를 참조 하세요.

샘플 쿼리

연결된 작업 항목을 필터링하는 방법을 보여주는 여러 쿼리가 제공됩니다. 이러한 모든 쿼리는 현재 데이터를 반환할 때 엔터티 집합을 지정 WorkItems 합니다.

참고 항목

필터 또는 보고서 용도로 사용 가능한 속성을 확인하려면 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/WorkItems?"
        &"$filter=WorkItemType eq 'Feature' "
            &"and State ne 'Closed' and State ne 'Removed' "
            &"and startswith(Area/AreaPath,'{areapath}') " 
        &"&$select=WorkItemId,Title,WorkItemType,State,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
                &"Links( "
                    &"$filter=LinkTypeName eq 'Child' "
                        &"and TargetWorkItem/WorkItemType eq 'User Story'; "
                    &"$select=LinkTypeName; "
                    &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
                &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

대체 문자열 및 쿼리 분석

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

  • {organization} - 조직 이름
  • {project} - 프로젝트 간 쿼리의 경우 팀 프로젝트 이름 또는 "/{project}"를 완전히 생략합니다.
  • {areapath} - 영역 경로입니다. 예제 형식: Project\Level1\Level2.

쿼리 분석

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

쿼리 파트

설명

$filter=WorkItemType eq 'Feature'

사용자 스토리를 반환합니다.

and State ne 'Closed' and State ne 'Removed'

상태가 닫힘 또는 제거됨으로 설정된 기능을 생략합니다.

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

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

&$select=WorkItemId,Title,WorkItemType,State,AreaSK

반환할 필드를 선택합니다.

&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath),

확장AssignedToIteration에 사용할 필드 및 Area 엔터티를 지정합니다.

Links(

엔터티를 Links 확장합니다.

$filter=LinkTypeName eq 'Child'

연결된 작업 항목을 자식 링크 형식의 항목으로만 필터링합니다. 다른 예로는 부모, 자식, 중복, 중복, 영향, 영향을 받습니다.

and TargetWorkItem/WorkItemType eq 'User Story';

연결된 사용자 스토리만 포함합니다.

$select=LinkTypeName;

LinkTypeName 반환할 속성을 선택합니다.

$expand=TargetWorkItem($select=WorkItemType, WorkItemId, Title, State)

반환할 연결된 작업 항목의 속성을 선택합니다.

)

절을 닫습니다 Links() .

아래에 나열된 Power BI 쿼리를 데이터> 비어 있는 쿼리 가져오기 창에 직접 붙여넣을 수 있습니다. 자세한 내용은 OData 쿼리를 사용하는 샘플 보고서의 개요를 검토 하세요.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'User Story' "
            &"and State ne 'Closed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
        &"&$select=WorkItemId,Title,WorkItemType,State,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
                &"Links( "
                    &"$filter=LinkTypeName eq 'Related' "
                        &"and TargetWorkItem/WorkItemType eq 'User Story'; "
                    &"$select=LinkTypeName; "
                    &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
                &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Teams에서 필터링된 연결된 사용자 스토리 반환

다음 쿼리는 영역 경로가 아닌 팀 이름으로 필터링하는 것을 제외하고 이 문서의 이전에 사용한 쿼리와 동일합니다.

아래에 나열된 Power BI 쿼리를 데이터> 비어 있는 쿼리 가져오기 창에 직접 붙여넣을 수 있습니다. 자세한 내용은 OData 쿼리를 사용하는 샘플 보고서의 개요를 검토 하세요.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'User Story' "
            &"and State ne 'Closed' "
            &"and (Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
                &"Links( "
                    &"$filter=LinkTypeName eq 'Related' "
                        &"and TargetWorkItem/WorkItemType eq 'User Story'; "
                    &"$select=LinkTypeName; "
                    &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
                &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

아래에 나열된 Power BI 쿼리를 데이터> 비어 있는 쿼리 가져오기 창에 직접 붙여넣을 수 있습니다. 자세한 내용은 OData 쿼리를 사용하는 샘플 보고서의 개요를 검토 하세요.

let
    Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'Bug' "
            &"and State ne 'Closed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and Links/any(x:x/LinkTypeName eq 'Duplicate' and x/TargetWorkItem/WorkItemType eq 'Bug') "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
            &"Links( "
                &"$filter=LinkTypeName eq 'Duplicate' "
                &"and TargetWorkItem/WorkItemType eq 'Bug'; "
                    &"$select=LinkTypeName; "
                &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
            &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

아래에 나열된 Power BI 쿼리를 데이터> 비어 있는 쿼리 가져오기 창에 직접 붙여넣을 수 있습니다. 자세한 내용은 OData 쿼리를 사용하는 샘플 보고서의 개요를 검토 하세요.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'Bug' "
                &"and State ne 'Closed' "
                &"and startswith(Area/AreaPath,'{areapath}') "
                &"and not (Links/any(x:x/LinkTypeName eq 'Duplicate' and x/TargetWorkItem/WorkItemType eq 'Bug')) "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

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

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

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

Power Query 편집기 데이터 변환

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

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

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

(선택 사항) 필드 이름 바꾸기

열을 확장한 후에는 하나 이상의 필드 이름을 바꿀 수 있습니다. 예를 들어 열 AreaPathArea Path의 이름을 .로 바꿀 수 있습니다. 데이터 테이블 뷰에서 이름을 바꾸거나 나중에 보고서를 만들 때 이름을 바꿀 수 있습니다. 방법을 알아보려면 열 필드 이름을 바꿉니다.

이 예제에서는 다음 필드의 이름이 바뀌었습니다.

원래 필드 이름 이름 바꾸기
Links.TargetWorkItem.ID 대상 ID
LinksLinkTypeName 연결 유형
Links.TargetWorkItem.State 대상 상태
Links.TargetWorkItem.Title 대상 제목

쿼리를 닫고 변경 내용 적용

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

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

연결된 작업 항목을 나열하는 테이블 보고서 만들기

  1. Power BI의 시각화에서 테이블 보고서를 선택합니다.

    부모-자식 링크 목록 테이블 보고서에 대한 Power BI 시각화 및 필드 선택 스크린샷

  2. 열에 표시된 순서대로 다음 필드를 추가합니다.

    • ID, 마우스 오른쪽 단추로 클릭하고 요약 안 함 선택
    • State(상태)
    • 제목
    • 대상 ID, 마우스 오른쪽 단추로 클릭하고 요약 안 함 선택
    • 링크 유형
    • 대상 상태
    • 대상 제목

보고서 예제가 표시됩니다.

기능 및 사용자 스토리 테이블 보고서의 샘플 부모-자식 링크 스크린샷