Запрос TFS для закрытия EPIC, но не закрыта какая-либо соответствующая функция, пользовательская история или задача

Мне нужен запрос TFS, чтобы получить EPIC в закрытом состоянии, но с любой связанной функцией, историей пользователя или задачей, которые не закрыты. Даже он должен работать, если функция закрыта, но история пользователя или задача не закрыты. История пользователя закрыта, но задача не закрыта.

Можно ли это сделать с помощью одного запроса TFS в TFS 2013?

Я могу получить закрытые функции, если история пользователя не закрыта (или) история пользователя закрыта, но задача все еще не закрыта с помощью запроса TFS.

Могу ли я сделать выше EPIC (Closed) -> Feature (<> Closed) -> User Story (<>Closed) -> Task (<>Closed) в одном запросе TFS?

3 ответа

Решение

Я могу получить данные, используя запрос ниже.

Использовал запрос типа "Рабочие элементы и прямые ссылки".

Рабочие элементы верхнего уровня: тип рабочего элемента "В", история пользователя, область и путь итерации. И состояние = закрыто

Фильтры для связанных рабочих элементов: тип рабочего элемента "В", пользовательская история, задача И состояние <> закрыто

Параметры фильтра: возвращать только элементы с совпадающими ссылками. Возвращать выбранные типы ссылок: дочерние.

Я могу получить данные для Feature (Closed) -> User Story (<> Closed) -> или Task (<> Closed) и User Story (Closed), но Task (<>Closed) & Feature(Any status).

Постараюсь использовать для большего количества уровней.

Нет, это невозможно.

Прежде всего, вам необходимо использовать запрос дерева (выбрав Дерево рабочих элементов) для просмотра многоуровневого вложенного списка рабочих элементов.

Чтобы найти связанных потомков, вам нужно сначала выбрать Сопоставить рабочие элементы верхнего уровня. Это ближайший запрос.

Однако, как вы уже отметили. Этот запрос оценит все дочерние рабочие элементы, закрыты они или нет. Вернет те дочерние рабочие элементы, которые не закрыты. Вроде

EPIC (Closed) -> Feature (<> Closed) -> или User Story (<>Closed) -> или Task (<>Closed)

Но на самом деле вам нужно:

EPIC (Closed) -> Feature (<> Closed) -> и User Story (<>Closed) -> и Task (<>Closed)

Если дочерний рабочий элемент всего дерева закрыт, дерево не возвращается.

Это недоступно в одном запросе TFS.

Также нет встроенного способа сделать это. Состояние рабочих элементов полностью не зависит от всех других рабочих элементов, включая связанные рабочие элементы.

Некоторый обходной путь, чтобы управлять этим в тот момент, когда:

  1. Со стороны сервера: вы можете добавить в tfs плагин, который изменяет рабочие элементы. Хорошим примером может служить TFSAggregator. Проблема с этим решением в том, что оно изменяет рабочий элемент только после того, как он был сохранен. Таким образом, пользователь по-прежнему сможет закрыть дочерний элемент, но сервер снова откроет его. Другими словами, вы не можете предотвратить закрытие, но можете снова открыть его сразу после обнаружения запрещенного действия.

  2. Используйте клиентский API для отслеживания отношений родитель-потомок. Например, EPIC Feature-> и User Story->Tasks. Если дочерний не закрыт, то не закрывайте родительский. Слой за слоем в дереве. Тот же код может быть полезен для вашей справки: закройте рабочий элемент, только если дочерние рабочие элементы закрыты

Другие вопросы по тегам