我正在尝试以编程方式保存TFS工作项,但总是得到异常:
TF237124: Work Item is not ready to save
Run Code Online (Sandbox Code Playgroud)
现在,我理解这告诉我的是 - 工作项缺少必填字段或类似字段 - 我的代码通过调用来预测:
ArrayList ValidationResult = wi.Validate();
Run Code Online (Sandbox Code Playgroud)
在保存之前.但是,我的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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Dav*_*haw 15
您在更改工作项状态之前验证工作项.转换到新状态可以导致处理工作项模板操作/规则.这些可能会更改某些字段的值和/或向字段添加新规则,这会导致先前有效的数据无效.
从打开状态移动到关闭状态可能需要有人完成"查看"字段(例如) - 如果它是空的,则不能进行转换.
尝试在状态更改后进行验证并查看是否存在任何故障.
| 归档时间: |
|
| 查看次数: |
14182 次 |
| 最近记录: |