Kueri untuk item kerja tertaut
Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Mengkueri item kerja di seluruh tautan sama seperti menggunakan properti navigasi umum. Tautan itu sendiri adalah entitas, jadi ada beberapa kompleksitas ekstra.
Ada dua cara untuk mengkueri item kerja tertaut. Yang pertama adalah hierarki Induk/Anak, dan yang kedua adalah properti navigasi Tautan.
Dalam artikel ini Anda akan mempelajari:
- Cara membuat kueri untuk mengembalikan item kerja tertaut hierarkis (induk-turunan)
- Cara membuat kueri untuk mengembalikan item kerja yang ditautkan secara non-hierarkis (terkait, langsung)
Catatan
Layanan Analitik diaktifkan secara otomatis dan didukung dalam produksi untuk semua Layanan Azure DevOps. Integrasi dan akses Power BI ke umpan OData Dari Layanan Analitik umumnya tersedia. Kami mendorong Anda untuk menggunakannya dan memberi kami umpan balik.
Data yang tersedia bergantung pada versi. Versi terbaru yang didukung adalah v2.0
, dan versi pratinjau terbaru adalah v4.0-preview
. Untuk informasi selengkapnya, lihat Penerapan 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 dan akses Power BI ke umpan OData Dari Layanan Analitik umumnya tersedia. Kami mendorong Anda untuk menggunakannya dan memberi kami umpan balik. Jika Anda meningkatkan dari Azure DevOps Server 2019, maka Anda dapat menginstal layanan Analytics selama peningkatan.
Data yang tersedia bergantung pada versi. Versi terbaru yang didukung adalah v2.0
, dan versi pratinjau terbaru adalah v4.0-preview
. Untuk informasi selengkapnya, lihat Penerapan versi OData API.
Catatan
Layanan Analitik sedang dalam pratinjau untuk Azure DevOps Server 2019. Anda dapat mengaktifkan atau menginstalnya untuk koleksi proyek. Integrasi dan akses Power BI ke umpan OData Layanan Analitik ada di Pratinjau. Kami mendorong Anda untuk menggunakannya dan memberi kami umpan balik.
Data yang tersedia bergantung pada versi. Versi terbaru yang didukung adalah v2.0
, dan versi pratinjau terbaru adalah v4.0-preview
. Untuk informasi selengkapnya, lihat Penerapan versi OData API.
Catatan
Contoh yang diperlihatkan dalam artikel ini didasarkan pada URL Layanan Azure DevOps. Untuk Azure DevOps Server, Anda perlu mengganti URL untuk server lokal.
https://{servername}:{port}/tfs/{OrganizationName}/{ProjectName}/_odata/{version}/
Hierarki induk-anak
Anda dapat menyertakan item yang terkait melalui tautan Induk/Anak dengan menggunakan $expand
properti Induk dan Anak.
Contoh: Kueri induk ke anak
Untuk mengembalikan informasi tentang anak item, gunakan $expand
pada properti navigasi Anak .
Cuplikan kode berikut meminta untuk mengembalikan anak-anak item kerja ID 359 dari proyek Fabrikam Fiber.
Permintaan
https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?$filter=WorkItemId eq 359&$select=WorkItemId, Title, WorkItemType, State&$expand=Children($select=WorkItemId,Title, WorkItemType, State)
Respons mengembalikan fitur 479 dan 480, yang merupakan anak dari epik 359.
Catatan
Sebagian besar kueri OData yang meminta informasi tautan item kerja akan mengembalikan hasil tetapi juga peringatan. Peringatan adalah pengingat untuk mengikuti panduan kueri yang direkomendasikan yang dijelaskan dalam panduan kueri OData Analytics. Namun, contoh kueri yang disediakan valid.
Respons
@odata.context "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,Title,WorkItemType,State,Children(WorkItemId,Title,WorkItemType,State))"
vsts.warnings@odata.type "#Collection(String)"
@vsts.warnings
0 "VS403508: Using the Parent, Children, Descendants or Revision properties in a filter or expand is not recommended. Details on recommended query patterns are available here: https://go.microsoft.com/fwlink/?linkid=861060."
value
0
WorkItemId 359
Title "Phase 1 - Customer access and engagement 5"
WorkItemType "Epic"
State "In Progress"
Children
0
WorkItemId 480
Title "Customer Phone - Phase 1"
WorkItemType "Feature"
State "In Progress"
1
WorkItemId 479
Title "Customer Web - Phase 1"
WorkItemType "Feature"
State "In Progress"
Contoh: Kueri turunan ke induk
Dengan mengganti Anak dengan Induk dalam $expand
opsi , Anda dapat mengambil leluhur item.
Kueri berikut meminta untuk mengembalikan induk item kerja ID 1048 dari proyek Fabrikam Fiber.
Permintaan
https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/WorkItems?$select=WorkItemId,Title,State&$expand=Parent($select=WorkItemId,Title,WorkItemType, State)&$filter=WorkItemId eq 1048
Respons mengembalikan fitur 480, yang merupakan induk dari item backlog produk 1048.
Respons
@odata.context "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,Title,WorkItemType,State,Parent(WorkItemId,Title,WorkItemType,State))"
vsts.warnings@odata.type "#Collection(String)"
@vsts.warnings
0 "VS403508: Using the Parent, Children, Descendants or Revision properties in a filter or expand is not recommended. Details on recommended query patterns are available here: https://go.microsoft.com/fwlink/?linkid=861060."
value
0
WorkItemId 1048
Title "Support reset"
WorkItemType "Product Backlog Item"
State "New"
Parent
WorkItemId 480
Title "Customer Phone - Phase 1"
WorkItemType "Feature"
State "In Progress"
Kueri untuk tautan non-hierarkis
Selain hierarki Induk/Anak, item dapat terkait langsung dengan item lain dengan jenis tautan seperti Terkait atau Duplikat. Properti navigasi Tautan memungkinkan Anda meminta hubungan ini.
Contoh: Meminta tautan item
Untuk mengambil tautan yang terkait dengan item, Anda bisa $expand
menggunakan properti navigasi Tautan . Dalam contoh ini SourceWorkItemId, TargetWorkItemId, dan LinkTypeName diambil untuk semua tautan yang terkait dengan item kerja 363.
Permintaan
https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?$select=WorkItemId,Title,WorkItemType,State&$filter=WorkItemId%20eq%20363&$expand=Links($select=SourceWorkItemId,TargetWorkItemId,LinkTypeName)
Respons
{
"@odata.context": "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,Title,WorkItemType,State,Links(SourceWorkItemId,TargetWorkItemId,LinkTypeName))",
"value": [{
"WorkItemId": 363,
"Title": "Welcome back page",
"WorkItemType": "Product Backlog Item",
"State": "Done",
"Links": [{
"SourceWorkItemId": 363,
"TargetWorkItemId": 400,
"LinkTypeName": "Related"
}, {
"SourceWorkItemId": 363,
"TargetWorkItemId": 470,
"LinkTypeName": "Tested By"
}, {
"SourceWorkItemId": 363,
"TargetWorkItemId": 501,
"LinkTypeName": "Related"
}, {
"SourceWorkItemId": 363,
"TargetWorkItemId": 1079,
"LinkTypeName": "Tested By"
}
}]
}
Contoh: Meminta detail item tertaut
Anda dapat menyertakan detail item kerja yang ditautkan dengan menggunakan $expand
properti navigasi TargetWorkItem atau SourceWorkItem . Dalam contoh ini, kami mengambil WorkItemId, Judul, dan Status item kerja target untuk setiap tautan.
Permintaan
https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?$select=WorkItemId,Title,WorkItemType,State&$filter=WorkItemId%20eq%20103&$expand=Links($select=SourceWorkItemId,TargetWorkItemId,LinkTypeName;$expand=TargetWorkItem($select=WorkItemId,Title,State))
Respons
{
"@odata.context": "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,Title,WorkItemType,State,Links(SourceWorkItemId,TargetWorkItemId,LinkTypeName,TargetWorkItem(WorkItemId,Title,State)))",
"value": [{
"WorkItemId": 103,
"Title": "Feature Y",
"WorkItemType": "Feature",
"State": "New",
"Links": [{
"SourceWorkItemId": 103,
"TargetWorkItemId": 48,
"LinkTypeName": "Child",
"TargetWorkItem": {
"WorkItemId": 48,
"Title": "Story 15",
"State": "Resolved"
}
}, {
"SourceWorkItemId": 103,
"TargetWorkItemId": 50,
"LinkTypeName": "Child",
"TargetWorkItem": {
"WorkItemId": 50,
"Title": "Story 17",
"State": "Active"
}
}, {
"SourceWorkItemId": 103,
"TargetWorkItemId": 55,
"LinkTypeName": "Child",
"TargetWorkItem": {
"WorkItemId": 55,
"Title": "Story 22",
"State": "New"
}
}, {
"SourceWorkItemId": 103,
"TargetWorkItemId": 112,
"LinkTypeName": "Related",
"TargetWorkItem": {
"WorkItemId": 112,
"Title": "Some issue",
"State": "Active"
}
}]
}]
}
Contoh: Tautan dari jenis tertentu
Anda mungkin juga tertarik pada jenis tautan tertentu di antara item. Tentukan properti LinkTypeName dalam $filter
klausa. Contoh kueri berikut memperluas semua tautan Terkait dan memfilter semua jenis tautan lainnya untuk item kerja 103.
Permintaan
https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?$select=WorkItemId,Title,WorkItemType,State&$filter=WorkItemId eq 103&$expand=Links($select=SourceWorkItemId,TargetWorkItemId,LinkTypeName;$filter=LinkTypeName eq 'Related';$expand=TargetWorkItem($select=WorkItemId,Title,State))
Respons
{
"@odata.context": "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,Title,WorkItemType,State,Links(SourceWorkItemId,TargetWorkItemId,LinkTypeName,TargetWorkItem(WorkItemId,Title,State)))",
"value": [{
"WorkItemId": 103,
"Title": "Feature Y",
"WorkItemType": "Feature",
"State": "New",
"Links": [{
"SourceWorkItemId": 103,
"TargetWorkItemId": 112,
"LinkTypeName": "Related",
"TargetWorkItem": {
"WorkItemId": 112,
"Title": "Some issue",
"State": "Active"
}
}]
}]
}
Langkah berikutnya
Artikel terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk