В системе есть сущности: проект, таймшит, заявка на отсутствие и другие.
У сущности может быть жизненный цикл — это набор состояний и правил перехода между ними. Например, у таймшита есть состояния: «Черновик», «На согласовании», «Согласовано».
Пользователь может иметь права на изменение состояния, либо не иметь их.
Помимо жизненного цикла (не вместо него, а в дополнение) существует воркфлоу — процесс.
Процесс по своей логике автоматически меняет состояние сущности. Пример: процесс согласования переводит таймшит в состояние «На согласовании», создаёт задания для согласующих, а после согласования переводит его в состояние «Согласовано».
Можно ли изменить состояние вручную, если процесс уже запущен? Да. В этом случае процесс остановится, а его задания будут отменены.
В списках есть кнопка «Изменить состояние» — это массовая смена состояния, а не выполнение задания воркфлоу. Эти действия часто путают!
Задания воркфлоу дают неявные права на сущность. Например, даже если у пользователя нет явных прав на таймшит, но он отправлен ему на согласование, пользователь сможет его открыть.
Для работы с заданиями есть список «Задания на исполнение» (в разделе «Моя работа»).
Также существовали представления вроде «Таймшиты (входящие)» — это просто список сущностей, отфильтрованный по наличию задания воркфлоу для текущего пользователя.
Как устроено лицензирование?
Лицензия (продукт) — это право на просмотр и редактирование определённых сущностей и выполнение действий. Например, лицензия Timetta Finance даёт доступ к актам.
Помимо лицензии действует ролевая модель (наборы прав). Наличие лицензии — обязательное условие доступа, но не единственное.
Ранее лицензии проверялись в основном на уровне интерфейса и не слишком строго.
Проверка лицензий переносится на сторону сервера (backend). Контроль становится строже. Для большинства пользователей в повседневной работе ничего не изменится.
Наличие задания воркфлоу по-прежнему позволяет просматривать сущность даже без лицензии и без явных прав — но только при открытии по ссылке из задания. Например, в списке таймшитов пользователь увидит сущности только если:
есть лицензия Timetta Timesheets;
только те записи, на которые у него есть явные права (через наборы прав).
Рабочий сценарий остаётся прежним: руководитель или согласующий открывает список «Задания на исполнение», видит задачи (например, согласовать таймшит), открывает сущность и выполняет задание.
Но если у пользователя нет лицензии, он больше не сможет использовать представления типа «Таймшиты (входящие)» (и мы их удалили из системных, впрочем — можно вернуть вучную). Это и есть самый «тонкий момент» — пользователи могли привыкнуть к старому паттерну. Нужно лишь немного изменить привычный порядок действий и использовать другой список.
Меньше неопределённости. Есть один общий список «Задания на исполнение» — это задания воркфлоу, которые нужно выполнить. Такой To Do список.
В списке «Задания на исполнение» наконец появилось массовое выполнение заданий. Важно: это не массовая смена состояния. Если выбрать несколько заданий одной функции воркфлоу, на панели действий появятся доступные команды. Например, для таймшитов — «Согласовать» и «Отклонить».
Списки будут работать немного быстрее за счёт упрощённой проверки прав.