2010-05-17 4 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 

Я также попытался код ниже, пытаясь сохранить рабочий элемент, изменить государство закрыто, и сохранить его снова, но это не кажется, работает, либо - государство до сих пор Предложено, когда я открыть его под My Work Items TFS запрос:

 WorkItem.Save() 

     WorkItem.State = "Closed" 
     WorkItem.Fields("Closed By").Value = ClosedBy 
     WorkItem.Save() 

кто-нибудь еще пробовал такую ​​вещь и преуспела, или есть идеи для делать это? О, и это задача CMMI, которую я пытаюсь создать и закрыть. Интересно, пытаюсь ли я пропустить некоторые действия, требуемые CMMI, но я новичок в этом, и это просто догадка.

ответ

5

Я выяснил, как создавать и закрывать задачу CMMI TFS программно. Ключ должен был пройти через 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 «Редактор процесса».
Откройте «WIT-WorkItem Type» с сервера, используя визуальную студию.
Выберите WorkItem для изменения из списка Team Projects и отредактируйте рабочий процесс, удалив назначенное значение = None и изменив его на «Требуется».

Смежные вопросы