2010-05-17 54 views
2

我在嘗試從保存在Excel工作表中的舊版問題跟蹤系統中將項目導入到Team Foundation Server中。我成功地遍歷了Excel文件的行,並且可以創建新的工作項目,但它們始終處於建議狀態。如果我嘗試將狀態更改爲Closed,然後調用工作項的Validate方法,則會在State屬性上收到驗證錯誤 - InvalidListValue {4}。如何以編程方式關閉TFS工作項目

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所要求的某些活動,但我對此很陌生,這只是一個猜測。

回答

5

我想出瞭如何以編程方式創建和關閉TFS CMMI任務。關鍵是要通過CMMI流程,可以在http://msdn.microsoft.com/en-us/library/bb668962.aspx找到,在每次更改後更改狀態並保存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() 
0

另一種方式來解決,這是對intsall「流程編輯器」。
使用visual studio從服務器中打開「WIT-WorkItem類型」。
選擇要從團隊項目列表更改的WorkItem,並通過刪除assignedto = None並將其更改爲「Required」來編輯工作流。

相關問題