我正在尝试将存储在Excel工作表中的旧版问题跟踪系统中的项目导入Team Foundation Server。我成功遍历Excel文件的行,我可以创建新的工作项,但它们始终处于Proposed状态。如果我尝试将状态更改为Closed,然后为工作项调用Validate方法,则会在State属性上收到验证错误 - InvalidListValue {4}。
Dim MyProj As Project = store.Projects("MyProject")
Dim WIT As WorkItemType = MyProj.WorkItemTypes("Task")
Dim WorkItem As WorkItem = WIT.NewWorkItem()
WorkItem.Title = Title
WorkItem.Description = Description
WorkItem.History = History
WorkItem.State = "Closed"
WorkItem.Fields("Assigned To").Value = AssignedTo
WorkItem.Fields("Priority").Value = Priority
WorkItem.Fields("Closed By").Value = ClosedBy
我也尝试过以下代码,尝试保存工作项,将状态更改为关闭状态,然后再次保存,但这似乎也不起作用 - 当我打开状态时仍然建议状态我的工作项目TFS查询:
WorkItem.Save()
WorkItem.State = "Closed"
WorkItem.Fields("Closed By").Value = ClosedBy
WorkItem.Save()
有没有其他人尝试过这样的事情并取得了成功,或者有这样做的想法?哦,这是我正在尝试创建和关闭的CMMI任务。我想知道我是否试图跳过CMMI要求的某些活动,但我是新手,这只是猜测。
答案 0 :(得分:5)
我想出了如何以编程方式创建和关闭TFS CMMI任务。关键是要经过CMMI流程,可以在http://msdn.microsoft.com/en-us/library/bb668962.aspx找到,在每次更改后更改State属性并保存WorkItem。
... WorkItem creation tasks
WorkItem.Fields("Assigned To").Value = AssignedTo
WorkItem.Fields("Priority").Value = Priority
'This first Save creates a WorkItem in the Proposed state'
WorkItem.Save()
WorkItem.State = "Active"
Errors = WorkItem.Validate()
WorkItem.Save()
WorkItem.State = "Resolved"
WorkItem.Fields("Resolved By").Value = ClosedBy
WorkItem.Fields("Resolved Reason").Value = "Just because"
Errors = WorkItem.Validate()
WorkItem.Save()
WorkItem.State = "Closed"
WorkItem.Fields("Closed By").Value = ClosedBy
Errors = WorkItem.Validate()
WorkItem.Save()
答案 1 :(得分:0)
您应该使用TFS集成平台。
答案 2 :(得分:0)
解决这个问题的另一种方法是使用“Process Editor” 使用visual studio从服务器打开“WIT-WorkItem Type” 从Team Projects列表中选择要更改的WorkItem,并通过删除assignedto = None并将其更改为“Required”来编辑工作流。