我正在尝试将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
}
提前致谢, 贾米尔
答案 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?。