TFS Api 未在 Dev Azure 上的自定义流程模板中提供自定义状态
Posted
技术标签:
【中文标题】TFS Api 未在 Dev Azure 上的自定义流程模板中提供自定义状态【英文标题】:TFS Api not giving custom states in a customized Process Template on Dev Azure 【发布时间】:2021-08-20 13:09:41 【问题描述】:我在 Scrum 流程模板中添加了一个自定义状态,但在我基于该自定义流程模板创建一个新项目之前,API 不会提供新添加的状态。
每次我都必须创建项目作为解决此问题的解决方案。我可以做些什么来解决这个问题?
WorkItemStore workItemStore = this.tfsTeamProjectCollection.GetService<WorkItemStore>();
int projectConunt = workItemStore.Projects.Count;
for (int i = 0; i < projectConunt; i++)
WorkItemTypeCollection workItemTypeCollection = workItemStore.Projects[i].WorkItemTypes;
for (int j = 0; j < workItemTypeCollection.Count; j++)
string workitemType = workItemTypeCollection[j].Name;
for (int k = 0; k < workItemTypeCollection[j].FieldDefinitions.Count; k++)
Microsoft.TeamFoundation.WorkItemTracking.Client.FieldDefinition fieldDefinition =
workItemTypeCollection[j].FieldDefinitions[k];
if (filedRefName == fieldDefinition.ReferenceName)
List<string> allowedValues = new List<string>();
foreach (var allowedValue in fieldDefinition.AllowedValues)
allowedValues.Add(allowedValue.ToString());
WorkItemFieldsInfo workItemFieldInfo = workItemFieldsInfo.Find(st => st.Type == workitemType);
if (workItemFieldInfo == null)
workItemFieldsInfo.Add(new WorkItemFieldsInfo()
Type = workitemType,
AllowedValues = allowedValues
);
else
List<string> unionFields = workItemFieldInfo.AllowedValues.Union(allowedValues).ToList();
workItemFieldInfo.AllowedValues = unionFields;
break;
【问题讨论】:
【参考方案1】:我无法重现此问题。我在下面使用了rest api,它工作得很好。见here。
获取https://dev.azure.com/organization/_apis/work/processes/processId/workItemTypes/witRefName/states?api-version=6.1-preview.1
您可以使用下面的 rest api 获取 processid
获取https://dev.azure.com/organization/_apis/work/processes?api-version=6.1-preview.2
【讨论】:
我们使用的是 TFS api 而不是 REST api。 @ArsalanYounus 你能分享一下你用来获取状态的相关代码吗? 我在我的问题中添加了代码,它可以从所有收集项目的所有工作项类型中找到所有允许的值。 “filedRefName”是“System.State”。以上是关于TFS Api 未在 Dev Azure 上的自定义流程模板中提供自定义状态的主要内容,如果未能解决你的问题,请参考以下文章
VssResourceNotFoundException:API 资源位置 <GUID> 未在 tfs url 上注册 - c#
Tfs / Azure DevOps 客户端库合并 Azure DevOps 分支上的冲突解决
如何使用 API 创建跨 TFS 集合的 TFS/Azure DevOps 工作项查询并将其导出到 Wor/Excel/Outlook 等