Запуск настроенных (не BPMN) определений процессов с помощью Activiti

Мы оцениваем Activiti как механизм обработки процессов, который заменит существующий механизм рабочего процесса собственной разработки. Мы очень впечатлены возможностями Activiti, особенно в отношении мультитенантности и REST WS.

Тем не менее, одной из самых больших проблем (и, вероятно, блокирующих) для внедрения Activiti будет то, как мы можем запускать или переносить наши существующие определения рабочего процесса.

Как я упоминал ранее, наше решение для управления рабочими процессами разработано в домашних условиях и не соответствует спецификациям BPMN. Существуют тысячи шаблонов. Мы не можем просто попросить наших клиентов переопределить свои шаблоны с помощью Activiti. Эти определения хранятся в собственном формате XML.

Глядя на уровень настройки шаблонов, было бы очень сложно перенести эти определения в формат BPMN.

Итак, предоставляет ли Activiti какие-либо крючки для запуска таких пользовательских шаблонов. Кроме того, поделитесь своими мыслями о переносе шаблонов из проприетарного формата в формат BPMN.

Я полагаю, что такой сценарий был бы обычным явлением, и другие люди столкнулись бы с тем же.

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


person Manchanda. P    schedule 27.03.2014    source источник


Ответы (1)


Одним из вариантов является реализация собственного проприетарного синтаксического анализатора XML и обработчиков синтаксических анализаторов. Посмотрите на org.activiti.engine.impl.bpmn.parser.BpmnParse и org.activiti.engine.impl.bpmn.parser.handler.AbstractBpmnParseHandler и его потомков.

Мы сделали это и работали нормально.

person fersmi    schedule 27.03.2014
comment
Спасибо Ферми. Под проприетарным синтаксическим анализатором и обработчиком XML я понимаю, что они использовались для анализа ваших пользовательских шаблонов. Пожалуйста, предложите, если я правильно понимаю. Моя основная путаница связана с сопоставлением пользовательских конструкций с конструкциями BPMN. Сталкивались ли вы с такой ситуацией и как вы с ней справились. - person Manchanda. P; 01.04.2014
comment
Синтаксический анализатор XML считывает каждый элемент xml и помещает его в соответствующий обработчик (AbstractBpmnParseHandler). Обработчик преобразует элемент в узел активности. Например, StartEventParseHandler добавляет StartEvent в определение процесса. Это способ, как сделать определение процесса для развертывания в базе данных из собственного формата XML. - person fersmi; 02.04.2014