Kueri yang memiliki lingkup proyek dan organisasi

Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Dengan menggunakan Analytics untuk Azure DevOps, Anda dapat membuat kueri yang dilingkupkan ke proyek atau organisasi atau koleksi. Anda bisa menjalankan kueri ini langsung di browser Anda atau di dalam Power BI.

Kueri cakupan proyek membantu menjawab pertanyaan tentang satu proyek sedangkan kueri terlingkup organisasi dan koleksi memungkinkan Anda menjawab pertanyaan yang melintasi batas proyek. Kueri yang dibatasi oleh organisasi dan pengumpulan memerlukan izin pengguna yang lebih luas atau pembatasan cakupan yang hati-hati untuk memastikan bahwa kueri Anda tidak diblokir karena kurangnya izin.

Catatan

Layanan Analitik diaktifkan secara otomatis dan didukung dalam produksi untuk semua layanan dalam Azure DevOps Services. Integrasi Power BI dan akses ke umpan OData dari layanan Analytics kini tersedia secara umum. Anda dianjurkan untuk menggunakan umpan OData Analytics dan memberikan umpan balik.

Data yang tersedia bergantung pada versi. Versi terbaru yang didukung dari API OData adalah v2.0, dan versi pratinjau terbaru adalah v4.0-preview. Untuk informasi selengkapnya, lihat Pengelolaan Versi OData API.

Catatan

Layanan Analytics secara otomatis diinstal dan didukung dalam produksi untuk semua koleksi proyek baru untuk Azure DevOps Server 2020 dan versi yang lebih baru. Integrasi Power BI dan akses ke umpan OData dari layanan Analytics kini tersedia secara umum. Anda dianjurkan untuk menggunakan umpan OData Analytics dan memberikan umpan balik. Jika Anda meningkatkan dari Azure DevOps Server 2019, Anda dapat menginstal layanan Analytics selama peningkatan.

Data yang tersedia bergantung pada versi. Versi terbaru yang didukung dari API OData adalah v2.0, dan versi pratinjau terbaru adalah v4.0-preview. Untuk informasi selengkapnya, lihat Pengelolaan Versi OData API.

Prasyarat

Kategori Persyaratan
Tingkat-tingkat akses - Anggota proyek.
- Setidaknya akses Dasar .
Izin Secara default, anggota proyek memiliki izin untuk mengkueri Analytics 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.

Penting

Jika Anda tidak memiliki akses ke semua proyek dalam organisasi, terapkan filter proyek ke semua kueri Anda. Saat menarik data ke alat klien seperti Power BI atau Excel, gunakan sintaks jalur proyek untuk memastikan bahwa semua data Anda dibatasi oleh proyek tertentu. Gunakan kueri dengan cakupan organisasi atau cakupan koleksi hanya saat Anda perlu melaporkan dua proyek atau lebih.

Kueri cakupan proyek

Anda membuat kueri dengan memasukkan URL OData ke browser web yang didukung.

URL dasar untuk kueri OData tingkat proyek seperti yang diperlihatkan dalam sintaks berikut.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/

Dalam contoh yang disediakan, ganti {OrganizationName} dan {ProjectName} dengan nama organisasi dan proyek yang ingin Anda kueri.

Catatan

Contoh yang tersisa dalam artikel ini didasarkan pada URL Layanan Azure DevOps. Ganti URL Server Azure DevOps Anda untuk menggunakan contoh.

Mengembalikan jumlah item kerja

Misalnya, kueri cakupan proyek berikut mengembalikan jumlah item kerja untuk proyek tertentu.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems/$count

Misalnya, kueri proyek Fabrikam Fiber mengembalikan hitungan 7.126 item kerja. Item kerja yang dihapus tidak disertakan dalam hitungan.

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/WorkItems/$count

7126

Mengembalikan Jalur Area proyek

Demikian juga, string kueri berikut mengembalikan area untuk proyek tertentu:

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/Areas

Ini setara dengan filter berikut pada kueri cakupan organisasi:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/Areas?
  $filter=Project/ProjectName eq '{ProjectName}'

Misalnya, kueri proyek Fabrikam Fiber mengembalikan seluruh properti yang telah ditetapkan untuk Area Path karena dalam kueri ini tidak diterapkan operator $select.

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/Areas

Contoh berikut menunjukkan data yang dikembalikan untuk satu Jalur Area.

ProjectSK	"56af920d-393b-4236-9a07-24439ccaa85c"
AreaSK	"26be05fd-e68a-4fcb-833f-497f6bee45f2"
AreaId	"26be05fd-e68a-4fcb-833f-497f6bee45f2"
AreaName	"Service Delivery"
Number	55373
AreaPath	"Fabrikam Fiber\\Service Delivery"
AreaLevel1	"Fabrikam Fiber"
AreaLevel2	"Service Delivery"
AreaLevel3	null
AreaLevel4	null
AreaLevel5	null
AreaLevel6	null
AreaLevel7	null
AreaLevel8	null
AreaLevel9	null
AreaLevel10	null
AreaLevel11	null
AreaLevel12	null
AreaLevel13	null
AreaLevel14	null
Depth	1

Penggunaan opsi $expand

Saat menggunakan kueri cakupan proyek dengan $expand opsi, Anda tidak diharuskan menyediakan filter lain.

Misalnya, filter cakupan proyek berikut:

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems?
  $expand=Parent

Difilter secara otomatis untuk memberlakukan keamanan:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=ProjectName eq '{ProjectName}'
  &$expand=Parent($filter=ProjectName eq '{ProjectName}')

Kueri yang dilingkup organisasi

URL Dasar untuk kueri tingkat organisasi seperti yang ditunjukkan:

https://analytics.dev.azure.com/{OrganizationName}/_odata/v1.0

Saat menggunakan kueri dengan lingkup organisasi dengan opsi $expand, Anda harus menyediakan filter tambahan.

Misalnya, kueri dengan cakupan organisasi berikut menggunakan $expand untuk mengambil sub-item dari semua item kerja.

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=Project/ProjectName eq '{ProjectName}'
  &$expand=Children

Ini memerlukan filter lain untuk memverifikasi bahwa anak-anak terbatas pada proyek yang ditentukan:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=Project/ProjectName eq '{ProjectName}'
  &$expand=Children($filter=Project/ProjectName eq '{ProjectName}')

Mengembalikan induk dari semua item kerja

Kueri berikut menggunakan opsi $expand untuk mengambil induk dari semua item kerja.

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=Project/ProjectName eq '{ProjectName}'
  &$expand=Parent

Ini memerlukan filter lain untuk memverifikasi bahwa elemen induk terbatas pada proyek yang ditentukan.

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=Project/ProjectName eq '{ProjectName}'
  &$expand=Parent($filter=Project/ProjectName eq '{ProjectName}')

Tanpa filter tambahan, permintaan gagal jika induk item kerja mereferensikan item kerja dalam proyek tempat Anda tidak memiliki akses Baca.

Pembatasan keamanan tingkat proyek

Analitik memiliki beberapa batasan lagi pada sintaks kueri yang terkait dengan keamanan tingkat proyek.

Filter any atau all berlaku untuk entitas dasar pada $expand. Untuk filter berdasarkan proyek, kami secara eksplisit mengabaikan filter saat menggunakan $expand:

Misalnya, kueri berikut:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=ProjectName eq '{ProjectName}'
  &$expand=Children($filter=Project/ProjectName eq '{ProjectName}')

Ditafsirkan sebagai:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=ProjectName eq '{ProjectName}'
  &$expand=Children

Dan gagal jika Anda tidak memiliki akses ke semua proyek.

Untuk mengatasi pembatasan, Anda perlu menambahkan ekspresi tambahan di $filter:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=ProjectName eq '{ProjectName}' and Children/any(r: r/ProjectName eq '{ProjectName}')
  &$expand=Children

Penggunaan $level hanya didukung jika Anda memiliki akses ke semua proyek dalam koleksi atau saat menggunakan kueri cakupan proyek:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $expand=Children($levels=2;$filter=ProjectName eq '{ProjectName}')

Analitik tidak mendukung referensi lintas tingkat untuk proyek menggunakan $it klausa. Sebagai contoh, kueri berikut mengacu pada item kerja induk ProjectName menggunakan nama samaran $it, yang tidak didukung:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $expand=Links(
    $expand=TargetWorkItem;
    $filter=TargetWorkItem/Project/ProjectName eq $it/Project/ProjectName)

Langkah selanjutnya