TFS 2010工作项尚未准备好保存,但没有验证项

2024-01-06

我试图以编程方式保存 TFS 工作项,但总是遇到异常:

TF237124: Work Item is not ready to save

现在,我明白这告诉我什么了 - 工作项缺少必填字段或类似字段 - 并且我的代码通过调用来预测这一点:

ArrayList ValidationResult = wi.Validate(); 

保存之前。但是,我的 ArrayList 在此调用之后不包含任何元素。

我尝试使用相同的凭据登录到 TFS Web 界面,并以这种方式创建工作项,效果很好。

如何发现我的工作项无法保存的原因?这是我的代码:

// get a reference to the team project collection (authenticate as generic service account)
        using (var tfs = new TfsTeamProjectCollection(tfsuri, new System.Net.NetworkCredential("My_User", "password")))
        {
            tfs.EnsureAuthenticated();
            var workItemStore = GetWorkItemStore(tfs);

             // create a new work item
             WorkItem wi = new WorkItem(GetWorkItemType(type, workItemStore));
             {
                //Values are supplied as a KVP - Field Name/Value
                foreach (KeyValuePair<string,string> kvp in values)
                {
                   if (wi.Fields.Contains(kvp.Key))
                   {
                      wi.Fields[kvp.Key].Value = kvp.Value;
                   }
                }   

                ValidationResult = wi.Validate();                       
              }

              if (ValidationResult.Count == 0)
              {
                 wi.State = wi.GetNextState("Microsoft.VSTS.Actions.Checkin");
                 wi.Save();
                 return wi.Id;
              }
              else
              { 
                 return 0;
              }
            }
        }

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

从打开状态转变为关闭状态might要求某人填写“评论”字段(例如) - 如果它为空,则无法传输。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TFS 2010工作项尚未准备好保存,但没有验证项 的相关文章