Nilai item kerja turunan rollup ke laporan sampel induk
Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Rollup menyediakan dukungan untuk menampilkan jumlah item kerja atau jumlah Titik Cerita, Sisa Pekerjaan, atau bidang kustom item turunan lainnya. Artikel ini menyediakan beberapa contoh cara membuat laporan rollup tabular untuk Epik, Fitur, atau Cerita Pengguna yang berisi item kerja anak. Gambar berikut menunjukkan contoh Titik Cerita yang digulung untuk Fitur induknya.
Untuk informasi selengkapnya tentang rollup dan opsi untuk menampilkan rollup, lihat Menampilkan kemajuan rollup atau total di Azure Boards.
Catatan
Artikel ini mengasumsikan Anda membaca Gambaran Umum Laporan Sampel menggunakan Kueri OData dan memiliki pemahaman dasar tentang Power BI.
Prasyarat
- Akses: Menjadi anggota proyek dengan setidaknya akses Dasar .
- 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
Kueri berikut mengembalikan data dari entitas yang WorkItems
diatur untuk mendukung pembuatan laporan matriks rollup.
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
.
Rollup Story Menunjuk ke Fitur Cerita Pengguna anak berdasarkan Jalur Area
Salin dan tempel kueri Power BI berikut ini langsung ke jendela Dapatkan Kueri Kosong Data>. Untuk informasi selengkapnya, lihat 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 startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any()"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate($count as CountOfUserStories, 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 bug tertutup.
and startswith(Area/AreaPath,'{areapath}')
Mengembalikan item kerja di bawah Jalur Area tertentu, menggantikan Area/AreaPath eq '{areapath}'
item yang dikembalikan di Jalur Area tertentu.
Untuk memfilter menurut Nama Tim, gunakan pernyataan Teams/any(x:x/TeamName eq '{teamname})'
filter .
and Descendants/any()
Sertakan semua Fitur, bahkan fitur tanpa Cerita Pengguna. Ganti dengan "any(d:d/WorkItemType eq 'Cerita Pengguna')" untuk menghilangkan Fitur yang tidak memiliki Cerita Pengguna anak.
&$select=WorkItemId, Title, WorkItemType, State
Pilih bidang yang akan dikembalikan.
&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath),
Pilih bidang AssignedTo
properti yang dapat diperluas , Iteration
, Area
.
Descendants(
Descendants
Perluas klausa.
$apply=filter(WorkItemType eq 'User Story')
Filter turunan untuk hanya menyertakan Cerita Pengguna (menghilangkan tugas dan bug).
/aggregate($count as CountOfUserStories, StoryPoints with sum as TotalStoryPoints)
Untuk semua turunan yang cocok dengan klausa filter, hitung, dan jumlahkan StoryPoints
properti.
)
Tutup Descendants()
.
Rollup Story Menunjuk ke Fitur Cerita Pengguna anak berdasarkan Teams
Kueri berikut menunjukkan cara membuat pemfilteran laporan rollup berdasarkan nama tim daripada Jalur Area.
Salin dan tempel kueri Power BI berikut ini langsung ke jendela Dapatkan Kueri Kosong Data>. Untuk informasi selengkapnya, lihat 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=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate($count as CountOfUserStories, StoryPoints with sum as TotalStoryPoints)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Rollup Story Points ke Epik
Anda dapat menggulung cerita menunjuk ke Epik menggunakan kueri berikut.
Salin dan tempel kueri Power BI berikut ini langsung ke jendela Dapatkan Kueri Kosong Data>. Untuk informasi selengkapnya, lihat 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 'Epic'"
&" and State ne 'Cut'"
&" and startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any(d:d/WorkItemType eq 'User Story')"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate(StoryPoints with sum as TotalStoryPoints)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Tugas Rollup Sisa Pekerjaan dan Pekerjaan Selesai untuk Cerita Pengguna
Kueri berikut ini memperlihatkan cara menggulung Sisa Pekerjaan dan Pekerjaan Selesai yang ditetapkan ke Tugas anak ke Cerita Pengguna dalam hierarki. Kueri ini mengasumsikan bahwa Tugas ditetapkan sebagai anak dari Cerita Pengguna di Jalur Area yang ditentukan.
Salin dan tempel kueri Power BI berikut ini langsung ke jendela Dapatkan Kueri Kosong Data>. Untuk informasi selengkapnya, lihat 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 'User Story'"
&" and State ne 'Removed'"
&" and startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any()"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'Task')"
&"/aggregate(RemainingWork with sum as TotalRemainingWork, CompletedWork with sum as TotalCompletedWork)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Jumlah Bug Rollup ke Fitur
Kueri berikut menunjukkan cara menggulung jumlah Bug yang ditetapkan ke Fitur. Kueri ini mengasumsikan bahwa Bug didefinisikan sebagai anak dari Fitur di Jalur Area yang ditentukan.
Salin dan tempel kueri Power BI berikut ini langsung ke jendela Dapatkan Kueri Kosong Data>. Untuk informasi selengkapnya, lihat 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,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'Bug')"
&"/aggregate($count as CountOfBugs)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(Opsional) Mengganti nama kueri
Anda bisa mengganti nama label kueri default, Query1, menjadi sesuatu yang lebih bermakna. Cukup masukkan nama baru dari panel Pengaturan Kueri.
Memperluas kolom di Power BI
Klausa &$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath)
mengembalikan rekaman yang berisi beberapa bidang. Sebelum membuat laporan, Anda perlu memperluas catatan untuk meratakannya ke bidang tertentu. Dalam hal ini, Anda mungkin ingin memperluas rekaman berikut:
AssignedTo
AreaPath
IterationPath
Untuk mempelajari caranya, lihat Mengubah data Analitik untuk menghasilkan laporan Power BI.
(Opsional) Ganti nama bidang
Setelah memperluas kolom, Anda mungkin ingin mengganti nama satu atau beberapa bidang. Misalnya, Anda dapat mengganti nama kolom AreaPath
menjadi Area Path
. Untuk mempelajari caranya, lihat Mengganti nama bidang kolom.
Mengganti nilai null dalam bidang rollup
Jika item kerja tidak memiliki anak, nilai rollup mungkin null. Misalnya, Descendants.CountOfUserStories adalah "null" jika Fitur tidak memiliki Cerita Pengguna anak.
Untuk pelaporan yang lebih mudah, ganti semua null dengan nol dengan mengikuti langkah-langkah ini.
- Pilih kolom dengan mengklik header kolom.
- Pilih menu Transformasi .
- Pilih Ganti Nilai. Dialog Ganti Nilai muncul.
- Masukkan "null" di Nilai untuk Ditemukan.
- Masukkan "0" di Ganti Dengan.
- Pilih OK.
Ulangi untuk semua kolom rollup.
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.
Membuat laporan Tabel
Di Power BI, pilih laporan Tabel di bawah Visualisasi.
Tambahkan bidang berikut ke Kolom dalam urutan yang ditunjukkan:
WorkItemI
, pilih Jangan ringkas untuk menampilkan ID jika diperlukanWorkItemType
Title
State
Count of User Stories
Total Story Points
.
Contoh laporan ditampilkan.