首页 > 解决方案 > 从迭代中获取所有项目

问题描述

我正在尝试从给定的迭代中获取所有工作项。我可以在其他字段上过滤 TaskType。但不是迭代路径。我在这里错过了什么吗?

var body = "{\"query\": \"Select [System.Id], [System.Title], [System.State],[System.IterationPath] From WorkItems Where [System.IterationPath] = 'GAC\\Sprint 10'\"}";
var json = await HTTP.POST("https://xxx.visualstudio.com/_apis/wit/wiql?api-version=5.1", body, personalaccesstoken);
return JsonConvert.DeserializeObject<WorkItemIdList>(json);

标签: azure-devopswiql

解决方案


我可以在其他字段上过滤 TaskType。但不是迭代路径。

下面的脚本是你想要的吗?

SELECT [System.Id], [System.Title], [System.WorkItemType], [System.State], [System.IterationPath] FROM workitems WHERE [System.IterationPath] = 'MerConsoleApp\Q4' AND [system.WorkItemType] = 'Bug'

这个 WIQL 可以过滤位于的Bug工作项。IterationPathMerConsoleApp\Q4

另外,我看到你正在从 api 应用这个 WIQL。您需要注意一件事,如果您从 rest api 运行 WIQL,您可能无法获得准确的工作项数据。

例如,由于我们在 中指定字段select,因此我们可以在从 UI 运行此 WIQL 时获得以下数据格式:

在此处输入图像描述

但是对于 rest api,我们将工作项的数据结构id + url定义并固定为. 这意味着您只能获得满意的工作项 id 及其 url,即使您在其中指定了[System.Id], [System.Title], [System.WorkItemType], [System.State]


推荐阅读