Воркфлоу это набор статусов и разрешенных переходов между ними. Задача всегда стоит в одном статусе воркфлоу своего типа задачи, и попасть в следующий может только по существующему переходу.
Статус и его категория
У статуса есть имя, которое видят пользователи, и категория, по которой продукт понимает, что этот статус значит. Категорий три:
| Категория | Что означает |
|---|---|
TODO | работа еще не начата |
IN_PROGRESS | работа идет |
DONE | работа завершена |
Имя статуса принадлежит компании: «В работе», «На ревью», «У заказчика» это все IN_PROGRESS. Категория нужна там, где продукту приходится рассуждать о статусах, которых он не знает: доски раскладывают колонки по категориям, а в QQL поле statusCategory отвечает на вопрос «что не закрыто» независимо от того, как компания назвала свои статусы.
Статусы живут на уровне компании, а не внутри одного воркфлоу: один и тот же «В работе» переиспользуется в разных процессах, и переименование меняет его везде сразу.
Переходы
Переход это именованная стрелка из одного статуса в другой. У перехода есть имя, которое видит пользователь на кнопке.
Правила, которые проверяются при сохранении процесса:
- переход обязан менять статус: стрелка из статуса в него же отклоняется;
- два перехода с одним именем между одной и той же парой статусов запрещены;
- все статусы должны быть достижимы из начального. Статус, в который нельзя попасть ни по одной цепочке переходов, это статус-ловушка наоборот, и процесс с таким статусом не сохранится.
Начальный статус выбирается явно: в нем рождается каждая новая задача этого процесса.
Черновик и публикация
Редактирование воркфлоу происходит в конструкторе и не влияет на живые задачи, пока черновик не опубликован. Публикация это одно действие, которое проверяет весь процесс целиком и применяет его.
Публикация требует права редактировать воркфлоу и указания версии, которую вы редактировали. Если пока вы работали, процесс опубликовал кто-то другой, ваша публикация будет отклонена как устаревшая, а не запишется поверх чужой.
Ревизии
Каждая публикация сохраняется как ревизия: полный снимок процесса на тот момент, с автором и временем. Ревизии доступны только на чтение и не редактируются.
Ревизия хранит не ссылку на текущие статусы, а сами статусы и переходы такими, какими они были опубликованы. Поэтому ревизия остается читаемой, даже если статус позже переименовали.
Возврат к прошлой ревизии
Вернуться к прошлой версии можно, и это происходит так:
- вы открываете нужную ревизию и загружаете ее в конструктор как черновик;
- конструктор говорит, какая версия сейчас живая и какой номер получит публикация;
- вы публикуете черновик, и он становится следующей версией.
Ничего не переписывается. Возврат к версии 3 создает версию 7, а не возвращает историю к трем записям. Это сделано намеренно: журнал процессов, который можно откатить, перестает быть доказательством того, что происходило.
Где используется
Рядом с воркфлоу продукт показывает, сколько проектов на нем работают, сколько задач в нем стоит и не является ли он умолчанием компании. Это ответ на вопрос, который иначе задают в чате: можно ли трогать этот процесс и кого это заденет.
Воркфлоу с задачами нельзя удалить мимоходом. Архивирование это отдельное действие, тоже с указанием версии.
Что видно в журнале
Создание процесса, каждая публикация, создание статуса и архивирование попадают в журнал изменений как отдельные записи с автором и временем. Публикация видна там же, где и все остальное, и ищется теми же фильтрами.