Всем доброго дня!
Положим, есть система документооборота, написанная на RoR. Но нет ключевой фишки - реализации жизненного цикла документов (создание - различные согласования различными пользователями - окончательное утверждение документа).
Пример:
- Пользователь А создает новый документ (объект класса), заполняет его данными, сохраняет. Тут у него есть выбор - вернуться к редактированию или отправить документ на согласование сотруднику Б.
- У сотрудника Б в свою очередь появляется доступ к документу. Он может внести правки, вернуть инициатору на согласование, или отправить дальше (например, сотруднику В).
- И так далее - от юзера юзеру.
Вроде бы ничего особого... НО! Маршруты визирования документов бывают весьма сложные (например, параллельные ветви, когда док-т клонируется и клон какое-то время живет отдельно, до момента воссоединения, т.н. join).
У меня есть опыт работы с IBM Lotus, где есть инструмент Workflow, позволяющий реализовывать описанное выше. Можно рисовать блок-схемы и публиковать их в приложение.
Хочется того же самого на рельсах. Возможно, есть какой-то гем для этих целей?
И инструмент, который позволяет рисовать схемы и экспортировать в открытый формат (XML, JSON и т.д.), чтобы приложение на рельсах его обрабатывало?
Заранее премного благодарю!