2010-07-19 1 views
3

У меня есть несколько рабочих элементов, которые содержат настраиваемое поле под названием «Reference ID» , можно ли запросить с помощью wiql в этом настраиваемом поле. В настоящее время я использую следующий подход:Можно ли запросить рабочее поле пользовательского поля в TFS SDK

// Еогеасп проект в TFS

// образуют wiql

WorkItemCollection workItemCollection = workItemStore.Query(
        " SELECT [System.Id], [System.WorkItemType]," + 
        " [System.State], [System.AssignedTo], [System.Title] " + 
        " FROM WorkItems " + 
        " WHERE [System.TeamProject] = '" + tfsProject.Name + 
        "' ORDER BY [System.WorkItemType], [System.Id]"); 

// запустить цикл против результирующего набора

// если workitem.Fields ["Reference ID"] = необходимое значение

// Выполнение некоторых задач на этом рабочем месте

Этот подход занимает довольно много времени, так как существует более 1000 результатов.

мой вопрос: есть возможность добавлять пользовательские поля также в качестве условия фильтра в приведенном выше запросе

ответ

2

Да. Вы используете имя поля, связанное с элементом. Вы можете получить это с помощью Process Explorer (TFS Power Tools) и открыть WorkItemType.

Вот пример, который мы используем сегодня

Select Id from WorkItems where ([xxx.Ticket.OriginalTicketID] = '12345'); 
+1

В качестве альтернативы вы можете просто навести указатель на поле в редакторе рабочих элементов, и вы должны увидеть подсказку с именем поля. Вы можете использовать это имя поля в своем WIQL-запросе. –

+0

Правда. Я больше поклонник использования внутреннего имени, лично ... но, конечно, вы правы. Оба будут работать. – Robaticus

+0

@Robaticus, вы имеете в виду «Редактор процессов» в меню инструментов. –

0

Конечно, просто добавьте имя настраиваемого поля.

0

Если у вас нет доступа к TFS Power Tools или его возможности установить, вы также можете использовать свойство DisplayForm объекта Work Item.

myItem = Workitem.GetWorkItem("12345") 
myItem.DisplayForm 

DisplayForm возвращает XML, содержащий все Имена полей и Свойства. Вы можете посмотреть XML по метке и получить соответствующее поле ControlName.

myItem.Fields.Item("Custom.FieldName")