2014-09-28 47 views
1

我試圖做TFS到我的分貝自動同步一TFS集成.. 所有我米,窗口服務... 對於我已經編碼爲以下做...TFS集成

DataRow dr = dstSyncWorkItem.Tables["Workitems"].Rows[i]; 
String uri = ConfigurationManager.AppSettings["TfsUri"] + dr["ProCollectionName"]; 
Uri collectionUri = new Uri(uri); 
NetworkCredential myNetCredentials = new NetworkCredential(ConfigurationManager.AppSettings["TfsUsername"], ConfigurationManager.AppSettings["TfsPassword"]); 
ICredentials myCredentials = (ICredentials)myNetCredentials; 

TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(collectionUri, myCredentials); 
WorkItemStore workItemStore = tpc.GetService<WorkItemStore>(); 
Project teamProject = workItemStore.Projects[dr["Project"].ToString()]; 
WorkItemType workItemType = teamProject.WorkItemTypes[dr["Type"].ToString()]; 

WorkItem workItem = new WorkItem(workItemType); 
workItem.Title = dr["Title"].ToString(); 
workItem.Description = dr["Desc"].ToString(); 
workItem.Save(); 

與此以下錯誤將給予...

TF237124:工作項目還沒有準備好保存。

回答

3

您需要驗證工作項目,然後才能保存它。呼叫:

ArrayList validation = workItem.Validate(); 

這將確保您所做的任何更改是適當的,並讓你的工作項目規則基礎上的更改定義的任何附加的狀態變化。

如果驗證失敗,您必須正確處理它們。否則,您可以撥打:

workItem.Save(); 
+0

謝謝你的回答...愛德華。 – 2014-09-28 17:31:41

1

您還未填寫所有必填字段。雖然調用Validate()函數會給你一個錯誤列表,你需要填寫區域&迭代路徑。與標題一起,這些是唯一的OOB必填字段。

你不會在任何UI中看到它,因爲它們默認填充。如果你用「Iteration/myproject /」來填充它們,你應該通過。