Bagikan melalui


Laporan sampel rollup kemajuan fitur

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Artikel ini memperlihatkan kepada Anda cara membuat laporan bilah bertumpuk untuk menampilkan kemajuan Fitur berdasarkan Cerita Pengguna anak yang telah selesai. Laporan menampilkan persentase selesai dengan rollup Titik Cerita untuk serangkaian Fitur aktif tertentu. Contoh ditunjukkan dalam gambar berikut.

Cuplikan layar laporan bagan batang bertumpuk Kemajuan Fitur.

Anda dapat melihat bagan bilah kemajuan serupa dari backlog Anda dengan menambahkan kolom rollup. Untuk mempelajari caranya, lihat Menampilkan kemajuan atau total rollup.

Catatan

Artikel ini mengasumsikan Anda telah membaca Gambaran Umum Laporan Sampel menggunakan Kueri OData dan memiliki pemahaman dasar tentang Power BI.

Prasyarat

  • Tingkat akses: Anda harus menjadi anggota proyek dengan akses Dasar atau yang lebih tinggi.
  • Izin: Secara default, anggota proyek memiliki izin untuk mengkueri Analitik dan membuat tampilan.
  • Untuk informasi selengkapnya tentang prasyarat lain mengenai pengaktifan layanan dan fitur serta aktivitas pelacakan data umum, lihat Izin dan prasyarat untuk mengakses Analitik.

Contoh kueri

Kemajuan fitur meminta WorkItems entitas untuk mendapatkan status kemajuan saat ini.

Catatan

Untuk menentukan properti yang tersedia untuk tujuan filter atau laporan, lihat Referensi metadata untuk Azure Boards. Anda dapat memfilter kueri atau mengembalikan properti menggunakan salah satu nilai di Property bawah nilai atau NavigationPropertyBinding Path yang EntityType tersedia dengan EntitySet. Masing-masing EntitySet sesuai dengan EntityType. Untuk informasi selengkapnya tentang jenis data dari setiap nilai, tinjau metadata yang disediakan untuk yang sesuai EntityType.

Meninjau kemajuan fitur berdasarkan jalur area

Anda bisa menempelkan kueri Power BI yang tercantum di bawah ini langsung ke jendela Dapatkan Kueri Kosong Data>. Untuk informasi selengkapnya, tinjau Gambaran Umum laporan sampel menggunakan kueri 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

String substitusi dan perincian kueri

Ganti string berikut dengan nilai Anda. Jangan sertakan {} tanda kurung dengan pengganti Anda. Misalnya jika nama organisasi Anda adalah "Fabrikam", ganti {organization} dengan Fabrikam, bukan {Fabrikam}.

  • {organization} - Nama organisasi Anda
  • {project} - Nama proyek tim Anda, atau hilangkan /{project} sepenuhnya, untuk kueri lintas proyek
  • {areapath} - Jalur Area Anda. Contoh format: Project/Level1/Level2.

Perincian kueri

Tabel berikut ini menjelaskan setiap bagian kueri.

Bagian kueri

Keterangan


$filter=WorkItemType eq 'Feature'

Mengembalikan Fitur.

and State ne 'Cut'

Hilangkan Fitur yang ditandai sebagai Potong.

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

Mengembalikan item kerja di bawah Jalur Area tertentu. Mengganti dengan Area/AreaPath eq '{areapath}' mengembalikan item di Jalur Area tertentu.
Untuk memfilter menurut Nama Tim, gunakan pernyataan Teams/any(x:x/TeamName eq '{teamname})'filter .

and Descendants/any()

Filter item kerja apa pun yang memiliki setidaknya satu atau turunan "apa pun". Menyertakan semua Fitur dengan setidaknya satu item kerja Anak. Untuk mendapatkan semua item kerja dengan turunannya, bahkan jika mereka tidak memilikinya, jalankan kueri tanpa Descendants/any() filter. Untuk menghilangkan Fitur yang tidak memiliki Cerita Pengguna anak, ganti dengan any(d:d/WorkItemType eq 'User Story').

Untuk semua item kerja dengan dan tanpa turunan:

$filter=endswith(Area/AreaPath,'suffix')
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)

Untuk semua item kerja dengan setidaknya satu turunan:

$filter=endswith(Area/AreaPath, 'suffix')and Descendants/any()
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)

&$select=WorkItemId, Title, WorkItemType, State

Pilih properti yang akan dikembalikan.

&$expand=Descendants(

Awal klausa perluas Descendants

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

Filter turunan. Hanya menyertakan Cerita Pengguna (hilangkan Tugas dan Bug).

/groupby((StateCategory),

Kelompokkan rollup menurut StateCategory. Untuk informasi selengkapnya tentang Kategori Status, lihat Bagaimana status alur kerja dan kategori status digunakan dalam Backlog dan Papan.

aggregate(StoryPoints with sum as TotalStoryPoints))

Jumlah agregat Titik Cerita.

)

Tutup Descendants() klausa.

Meninjau kemajuan fitur untuk tim

Kueri berikut sama dengan yang digunakan di atas, kecuali kueri tersebut difilter menurut Nama Tim daripada Jalur Area.

Anda bisa menempelkan kueri Power BI yang tercantum di bawah ini langsung ke jendela Dapatkan Kueri Kosong Data>. Untuk informasi selengkapnya, tinjau Gambaran Umum laporan sampel menggunakan kueri 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

Mengubah data dalam Editor Power Query

Kueri mengembalikan beberapa kolom yang perlu Anda perlukan sebelum Anda bisa menggunakannya untuk membuat laporan. Setiap entitas yang ditarik menggunakan pernyataan $expand OData mengembalikan rekaman dengan kemungkinan beberapa bidang. Perluas rekaman untuk meratakan entitas ke bidangnya.

Untuk laporan Kemajuan Fitur, Anda harus melakukan transformasi berikut:

  • Descendants Perluas kolom menjadi dua kolom: Descendants.StateCategory danDescendants.TotalStoryPoints
  • Terapkan transformasi Kolom Pivot pada Descendants.StateCategory kolom untuk memisahkan kategori Status individual
  • Ganti nilai null di semua kolom yang dipivot.
  • Tambahkan kolom kustom untuk mewakili persentase selesai. Kolom kustom akan menampilkan kesalahan jika ada kolom null di kolom Status yang dipivot.

Untuk mempelajari caranya, lihat bagian berikut ini di data Transform Analytics untuk menghasilkan laporan Power BI:

Catatan

Dalam contoh ini, nilai Status untuk Cerita Pengguna termasuk Diusulkan, Sedang Berlangsung, dan Selesai.

Tutup kueri dan terapkan perubahan Anda

Setelah Anda menyelesaikan semua transformasi data, pilih Tutup & Terapkan dari menu Beranda untuk menyimpan kueri dan kembali ke tab Laporan di Power BI.

Cuplikan layar opsi Editor Power Query Tutup dan Terapkan.

Membuat laporan bagan batang bertumpuk

  1. Di Power BI, pilih Laporan bagan batang bertumpuk di bawah Visualisasi.

    Cuplikan layar pilihan Visualisasi dan Bidang Power BI untuk laporan bagan batang bertumpuk Kemajuan Fitur.

  2. Tambahkan Title ke Sumbu-Y.

  3. Tambahkan PercentComplete ke Sumbu-X, klik kanan dan pilih Jumlah.

Contoh laporan ditampilkan.

Cuplikan layar contoh laporan bagan batang bertumpuk Kemajuan Fitur.