2009-10-15 2 views
0

Привет Я пытаюсь добавить новые рабочие элементы в репозиторий TFS с помощью API, но когда я проверяю рабочий элемент перед его сохранением, он возвращает ошибку. Раньше у меня были исключения относительно определений полей для ошибки, а именно: Симптом, Шаги к воспроизведению и Triage. (Код ошибки TF 26027). Ниже приведен фрагмент кода. Может ли кто-нибудь сказать мне, что здесь не так?Невозможно добавить новые рабочие элементы, используя TFS API

switch (workItemType) 
     { 
      case "Bug": 
       { 
        workItem.Title = values["Title"].ToString(); 
        workItem.State = values["State"].ToString(); 
        workItem.Reason = values["Reason"].ToString(); 
        workItem.Fields["Priority"].Value = values["Priority"].ToString(); 
        workItem.Fields["Severity"].Value = values["Severity"].ToString(); 
        //workItem.Fields["Triage"].Value = values["Triage"].ToString(); 
        workItem.Fields["Assigned To"].Value = values["Assigned To"].ToString(); 
        //workItem.Fields["Symptom"].Value = values["Symptom"].ToString(); 
        //workItem.Fields["Steps to Reproduce"].Value = values["Steps to Reproduce"].ToString(); 

        // Validate the Work Item fields. 
        ArrayList result = workItem.Validate(); 
        // If any invalid fields are returned, report an error. 
        if (result.Count > 0) 
         MessageBox.Show("An Error occurred while adding the Bug to the repository."); 
        else 
         workItem.Save(); 
       } 
       break; 
+0

Можете ли вы включить текст ошибки? – TJB

+0

Я получаю сообщение об ошибке «TF26027: Поле определения поля в файле определения типа рабочего элемента не существует. Добавьте определение для этого поля или удалите ссылку и повторите попытку». В чем проблема?? –

ответ

2

Чтобы найти доступные определения полей, вы можете итерация по коллекции (FieldDefinitions). Свойства Name и ReferenceName - это значения, которые вы можете индексировать в коллекцию.

+0

Это хорошая идея, всегда нужно перебирать и проверять, существует ли поле. Потому что, по крайней мере, здесь у нас много разных команд с настраиваемыми шаблонами. И вы никогда не знаете, из проекта, чтобы спроектировать, какие поля существуют или нет. Сохраняет много бросков исключений. – Alex

0

Просто прочитав сообщение об ошибке, похоже, что вы определяете поле «somefield» в своем рабочем элементе. Я думаю, что у вас есть старый код, висящий в другом месте, возможно, над фрагментом кода, который вы разместили, где вы определяете значение для workItem.Fields ["somefield"]

0

Старый вопрос, но, надеюсь, поможет кому-то. Имя поля "Repro Steps"

.Fields["Repro Steps"].Value