Bağlantılı iş öğeleri için sorgu

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

İş öğelerini bağlantılar arasında sorgulamak, tipik gezinti özelliklerini kullanmaya çok benzer. Ancak bağlantıların kendileri varlıklardır, bu nedenle biraz daha karmaşıklık vardır.

Bağlantılı iş öğelerini sorgulamanın iki yolu vardır. Birincisi Üst/Alt hiyerarşi, ikincisi bağlantılar gezinti özelliğidir.

Bu makalede şunları öğreneceksiniz:

  • Hiyerarşik (üst-alt) bağlantılı iş öğeleri döndürmek için sorgu oluşturma
  • Hiyerarşik olmayan (ilgili, doğrudan) bağlı iş öğelerini döndürmek için sorgu oluşturma

Not

Analiz hizmeti, tüm Azure DevOps Services için üretimde otomatik olarak etkinleştirilir ve desteklenir. Power BI tümleştirmesi ve Analiz Hizmeti'nin OData akışına erişim genel olarak kullanılabilir. Bunu kullanmanızı ve bize geri bildirim göndermenizi öneririz. Kullanılabilir veriler sürüme bağlıdır. Desteklenen en son sürüm, v2.0en son önizleme sürümü ise sürümüdür v4.0-preview. Daha fazla bilgi için bkz . OData API sürümü oluşturma.

Not

Analytics hizmeti, Azure DevOps Server 2020 ve sonraki sürümleri için tüm yeni proje koleksiyonları için otomatik olarak yüklenir ve üretimde desteklenir. Power BI tümleştirmesi ve Analiz Hizmeti'nin OData akışına erişim genel olarak kullanılabilir. Bunu kullanmanızı ve bize geri bildirim göndermenizi öneririz. Azure DevOps Server 2019'dan yükselttiyseniz yükseltme sırasında Analytics hizmetini yükleyebilirsiniz.

Kullanılabilir veriler sürüme bağlıdır. Desteklenen en son sürüm, v2.0en son önizleme sürümü ise sürümüdür v4.0-preview. Daha fazla bilgi için bkz . OData API sürümü oluşturma.

Not

Analiz hizmeti, Azure DevOps Server 2019 için önizleme aşamasındadır. Bir proje koleksiyonu için etkinleştirebilir veya yükleyebilirsiniz . Power BI tümleştirmesi ve Analiz Hizmeti'nin OData akışına erişim Önizleme aşamasındadır. Bunu kullanmanızı ve bize geri bildirim göndermenizi öneririz.

Kullanılabilir veriler sürüme bağlıdır. Desteklenen en son sürüm, v2.0en son önizleme sürümü ise sürümüdür v4.0-preview. Daha fazla bilgi için bkz . OData API sürümü oluşturma.

Not

Bu makalede gösterilen örnekler, Azure DevOps Services URL'sini temel alır. Azure DevOps Server için, şirket içi sunucunun URL'sini değiştirmeniz gerekir.

https://{servername}:{port}/tfs/{OrganizationName}/{ProjectName}/_odata/{version}/

Üst-alt hiyerarşisi

Üst/Alt bağlantılar $expand aracılığıyla ilgili öğeleri, Üst ve Alt öğeleri kullanarak ekleyebilirsiniz.

Örnek: Üst öğeden alt sorguya

Öğenin alt öğeleriyle ilgili bilgileri döndürmek için Alt öğeler gezinti özelliğini kullanın.$expand Aşağıdaki kod parçacığı, Fabrikam Fiber projesinden iş öğesi kimliği 359'un alt öğelerini döndürmeyi ister.

İste

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)

Yanıt, epic 359'un çocukları olan 479 ve 480 özelliklerini döndürür.

Not

İş öğesi bağlantı bilgilerini isteyen çoğu OData sorgusu sonuçları döndürecek, aynı zamanda bir uyarı da döndürecektir. Uyarı, OData Analytics sorgu yönergelerinde açıklanan önerilen sorgu yönergelerini izlemeniz için bir anımsatıcıdır. Ancak, sağlanan sorgu örnekleri geçerlidir.

Response

@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"

Örnek: Alt öğeden üst sorguya

Seçeneğinde $expand Alt öğeleri Ebeveyn ile değiştirerek bir öğenin üst bilgisini alabilirsiniz.

Aşağıdaki sorgu, Fabrikam Fiber projesinden 1048 iş öğesi kimliğinin üst öğesini döndürmek için istekte bulunur.

İste

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

Yanıt, ürün kapsamı öğesi 1048'in üst öğesi olan 480 özelliğini döndürür.

Response

@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"

Üst/Alt öğe hiyerarşisine ek olarak, öğeler İlişkili veya Yinelenen gibi bağlantı türlerine sahip diğer öğelerle doğrudan ilişkilendirilebilir. Bağlantılar gezinti özelliği bu ilişkileri istemenizi sağlar.

Bir öğeyle ilişkili bağlantıları almak için Bağlantılar gezinti özelliğini kullanabilirsiniz $expand. Bu örnekte, 363 iş öğesiyle ilişkili tüm bağlantılar için SourceWorkItemId, TargetWorkItemId ve LinkTypeName alınır.

İste

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)

Response

{
    "@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"
        }
    }]
}

Örnek: Bağlı öğelerin ayrıntılarını isteme

TargetWorkItem veya SourceWorkItem gezinti özelliklerini kullanarak $expandbağlantılı iş öğelerinizin ayrıntılarını ekleyebilirsiniz. Bu örnekte, her bağlantı için hedef iş öğesinin WorkItemId, Title ve State bilgilerini alıyoruz.

İste

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))

Response

{
    "@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"
            }
        }]
    }]
}

Öğeler arasındaki belirli bir bağlantı türüyle de ilgileniyor olabilirsiniz. Yan $filter tümcesinde LinkTypeName özelliğini belirtin. Aşağıdaki sorgu örneği tüm İlgili bağlantıları genişletir ve 103 iş öğesi için diğer tüm bağlantı türlerini filtreler.

İste

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))

Response

{
    "@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"
            }
        }]
    }]
}

Sonraki adımlar