stepan_sib
@stepan_sib
head, hands, hard working, contracts

Реализация жизненного цикла документа (а-ля IBM Lotus Workflow)?

Всем доброго дня!
Положим, есть система документооборота, написанная на RoR. Но нет ключевой фишки - реализации жизненного цикла документов (создание - различные согласования различными пользователями - окончательное утверждение документа).

Пример:
  • Пользователь А создает новый документ (объект класса), заполняет его данными, сохраняет. Тут у него есть выбор - вернуться к редактированию или отправить документ на согласование сотруднику Б.
  • У сотрудника Б в свою очередь появляется доступ к документу. Он может внести правки, вернуть инициатору на согласование, или отправить дальше (например, сотруднику В).
  • И так далее - от юзера юзеру.

Вроде бы ничего особого... НО! Маршруты визирования документов бывают весьма сложные (например, параллельные ветви, когда док-т клонируется и клон какое-то время живет отдельно, до момента воссоединения, т.н. join).

У меня есть опыт работы с IBM Lotus, где есть инструмент Workflow, позволяющий реализовывать описанное выше. Можно рисовать блок-схемы и публиковать их в приложение.

Хочется того же самого на рельсах. Возможно, есть какой-то гем для этих целей?
И инструмент, который позволяет рисовать схемы и экспортировать в открытый формат (XML, JSON и т.д.), чтобы приложение на рельсах его обрабатывало?

Заранее премного благодарю!
  • Вопрос задан
  • 2487 просмотров
Решения вопроса 1
@vsuhachev
Рисовать - вряд ли, в таких случаях на руби обычно принято писать DSL. Гуглите гемы для реализации конечных автоматов (state machines)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ruddy22
@ruddy22
Спасение утопающих — дело рук самих утопающих
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы