#c# #tfs #tfs-workitem
#c# #tfs #tfs-workitem
Вопрос:
Я пытаюсь автоматически создать новый рабочий элемент после того, как я выбрал проект и один из его типов рабочих элементов. В целях тестирования я перебираю все проекты и все их типы рабочих элементов, чтобы создать для каждого типа рабочего элемента новый рабочий элемент. Я знаю, что есть обязательные поля, которые должны иметь значение, прежде чем пытаться сохранить этот рабочий элемент. Вот почему я пытаюсь установить значения «по умолчанию» для этого поля, но если я регистрирую ArrayList, который я получаю из .Метод Validate(), я вижу, что есть те же поля, что и раньше. Похоже, что мое распределение по полям игнорируется. В следующем примере у меня все еще было бы поле «GemeldetVon» внутри списка invalidFields в конце.
Кто-нибудь видит, что я делаю неправильно?
Вот мой фрагмент:
foreach (WorkItemType workItemType in workItemTypes)
{
WorkItem workitem = new WorkItem(workItemType);
workitem.Title = "OTRS-TFS-Connector Test-Workitem";
ArrayList requiredFields = workitem.Validate();
if (requiredFields != null) {
foreach(Field f in requiredFields) {
if (f.Name.Equals("GemeldetVon")) {
workitem.Fields["GemeldetVon"].Value = "some Value";
}
if...
}
}
}
ArrayList invalidFields = workitem.Validate();
Комментарии:
1. Это «workitem. Поля[«GemeldetVon»].Value = «некоторое значение»;» выполняется в цикле if? Каков статус поля в Validate()?
Ответ №1:
IIRC вы должны вызвать метод WorkItem.Open
or WorkItem.PartialOpen
перед установкой значений полей.
Ответ №2:
Теперь это сделано. Это было из-за недопустимых значений, которые я пытался присвоить. В моем примере поле требует пользователя в качестве значения, а не просто какой-то строки. Это работает, если я назначаю допустимые значения. Спасибо 🙂