以编程方式设置TFS new workItem状态

时间:2016-08-25 11:25:01

标签: c# tfs

我正在尝试将tfs新工作项状态值设置为“已批准”并收到错误。

我在实际保存我的工作项目之前验证,但由于错误,该项目未获得。错误是因为我将新工作项状态直接设置为“已批准”,因为它只允许一个可能的值“草稿”。不幸的是,这是我的要求,因为我正在从已经处于“已批准”状态的其他来源迁移我的工作项。

(TF237124:工作项尚未准备好保存)。 字段:“State”字段的状态为InvalidListValue

tfsWorkItem.Fields["System.State"].Value = "Approved";
                var invalidFields = tfsWorkItem.Validate();
                if (null == invalidFields || 0 == invalidFields.Count)
                {                        
                    tfsWorkItem.Save(); //Never comes here because of invalidFields
                }

提前致谢, 贾米尔

4 个答案:

答案 0 :(得分:0)

您必须在保存之前验证WorkItem。

validate()方法将返回无效字段的arraylist。

ArrayList result = wi.Validate();

答案 1 :(得分:0)

原文:https://stackoverflow.com/a/8359044/4846465

您正在验证工作项目,然后才能更改其状态。转换到新状态可以导致处理工作项模板操作/规则。这些可能会更改某些字段的值和/或向字段添加新规则,这会导致先前有效的数据无效。

从开放状态转为关闭状态可能需要有人完成"评论"字段(例如) - 如果它是空的,则它不能转换。

尝试在状态更改后进行验证并查看是否有任何失败。

答案 2 :(得分:0)

查看工作项模板定义XML。在TRASITIONS部分中,只有来自=“”的转换才是有效的起始状态(to =“Some state”中的值)。只能有一个有效的起始状态。

答案 3 :(得分:0)

您可以将您的帐户添加到"项目收集服务帐户"然后启用bypass rule,允许您保存和更改工作项值而不遵守工作项规则。有关详细信息,请参阅此问题:How to change workflow state of the newly created TFS work item through API?