【问题标题】:Set TFS new workItem state programmatically以编程方式设置 TFS 新工作项状态
【发布时间】:2016-08-29 14:21:19
【问题描述】:

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

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

(TF237124:工作项尚未准备好保存)。 字段:“状态”字段的状态为 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
                }

提前致谢, 贾米尔

【问题讨论】:

标签: c# tfs


【解决方案1】:

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

validate() 方法将返回一个无效字段的数组列表。

ArrayList 结果= wi.Validate();

【讨论】:

  • 现在我在实际保存我的工作项目之前进行验证,但是由于错误,该项目没有得到。该错误是因为我将新的工作项状态直接设置为“已批准”,因为它只允许一个可能的值“草稿”。不幸的是,这是我的要求,因为我正在从一个已经处于“已批准”状态的不同来源迁移我的工作项目。
【解决方案2】:

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

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

从打开状态移动到关闭状态可能需要某人填写“评论”字段(例如) - 如果它是空的,则无法转换。

在状态改变后尝试验证,看看是否有任何失败。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      您可以将您的帐户添加到“项目收集服务帐户”中,然后启用bypass rule,这允许您在不遵守工作项规则的情况下保存和更改工作项值。详情参考这个问题:How to change workflow state of the newly created TFS work item through API?

      【讨论】:

        猜你喜欢
        • 2013-07-10
        • 2018-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-29
        • 2011-02-20
        • 1970-01-01
        • 2012-10-02
        相关资源
        最近更新 更多