2014-01-29 6 views
0

Я пытаюсь построить запрос tfs, который вернет только самые верхние элементы, которые мне назначены. Примеры:TFS Query: получить только самые верхние элементы, назначенные мне

  • пользовательские истории (США) присваивается мне и содержит задачи, которые назначены мне => запрос возвращает только США
  • США назначен кто-то другой, но она содержит задачи, которые Назначенный мне => запрос возвращает задачу
  • США присвоенная мне, но задачи возложены на кого-то еще => запроса возвращает США

I STRU чтобы выяснить, как получить доступ к родительскому объекту задачи или, возможно, это даже не правильный подход. Я работаю с VS и TFS 2010. Идеи?

[EDIT] Другой идеей было бы написать wiql запрос, который находит все элементы, назначенные мне и чем чеки, если ссылка имеет некоторые свойства, но IAM не уверен в этом. В TFS2013 должно быть что-то похожее («сначала выполнить рабочие элементы верхнего уровня»), если только это не просто вариант сортировки.

ответ

1

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

  • плоский список

WORKITEMTYPE = и AssignedTo пользовательские истории = @ME

  • Рабочие элементы и прямые ссылки

WORKITEMTYPE = Задача И AssignedTo = @ME

Фильтры для связанных элементов работы:

WORKITEMTYPE = И AssignedTo пользовательские истории <> @ME

Возврат все рабочие элементы верхнего уровня

В первом запросе будут перечислены все пользовательские истории, присвоенные вы, независимо от того, что-то связано или нет. Во втором запросе будет отображаться все Задача, назначенные вам, но не связанная с ним UserStory, назначенная вам.

[EDIT]

Другим вариантом может быть объединение обоих запросов, но я не могу проверить это в моей среде:

  • Рабочие элементы и прямые ссылки

(WorkItemType = Task OR WorkItemType = User Story) AND AssignedTo = @ME

Фильтры для связанных wo гк пункты:

WORKITEMTYPE = пользовательские истории и AssignedTo <> @ME

Возврат все главные рабочие элементы уровня

Это список всех пользовательских историй и задач, которые назначены для вас, но не имеют родителей Связанная с пользователем история.

[EDIT2]

<?xml version="1.0" encoding="utf-8"?><WorkItemQuery Version="1"><TeamFoundationServer>http://tfs:8080/tfs/DefaultCollection</TeamFoundationServer><TeamProject>Test</TeamProject><Wiql>SELECT [System.Id], [System.Links.LinkType], [System.WorkItemType], [System.Title], [System.AssignedTo], [System.State] FROM WorkItemLinks WHERE ([Source].[System.TeamProject] = @project AND ([Source].[System.WorkItemType] = 'Task' OR [Source].[System.WorkItemType] = 'UserStory') AND [Source].[System.AssignedTo] = @me) And ([System.Links.LinkType] &lt;&gt; '') And ([Target].[System.WorkItemType] = 'UserStory' AND [Target].[System.AssignedTo] &lt;&gt; @me) ORDER BY [System.Id] mode(MayContain)</Wiql></WorkItemQuery> 
+0

это не совсем то, что я ищу, может быть, wiql запрос будет лучше –

+0

Вы хотите запустить WIQL в коде? Потому что я не знаю другого места, где его можно использовать. Я добавил третий запрос, который мог бы решить вашу проблему. – MikeR

+0

Фактически, если вы сохраняете запрос в файл, вы заметите, что он содержит базовый код wiql между тегами . Таким образом, вы можете создать любой запрос Wiql и запустить его, чтобы вы не ограничивались редактором vs query. –

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

  • Нет связанных вопросов^_^