2014-03-27 22 views
0

我们正在评估Activiti作为流程引擎来取代我们现有的家庭生产流程引擎。 Activiti的功能让我们印象深刻,特别是与多租户和REST WS相关的功能。使用Activiti运行定制(非BPMN)流程定义

然而,采用Activiti最大的挑战之一(也可能是封锁)将是 - 我们如何运行或迁移现有的工作流程定义。

正如我前面提到的,我们的工作流程解决方案是一种本土化的解决方案,并且不符合BPMN规范。那里有成千上万的模板。我们不能简单地要求我们的客户使用Activiti重新定义他们的模板。这些定义以专有的XML格式存储。

查看模板中的自定义级别,将这些定义迁移到BPMN格式将非常困难。

那么,Activiti是否提供了任何钩子来运行这样的自定义模板。或者,请分享您对将模板从专有格式迁移到BPMN格式的想法。

我想这样的场景很普遍,其他人也会面临同样的情况。

我知道我对这个查询非常含糊,但在这个阶段我没有具体的问题可以讨论。

回答

0

一个选项是实现您自己的专有XML解析器和解析器处理程序。看看org.activiti.engine.impl.bpmn.parser.BpmnParse and org.activiti.engine.impl.bpmn.parser.handler.AbstractBpmnParseHandler及其后代。

我们做到了,工作得很好。

+0

谢谢fersmi。通过专有的XML解析器和处理程序,我明白它们被用来解析您的自定义模板。如果我的理解是正确的,请提出建议。我的主要困惑源于自定义构造映射到BPMN构造。你有没有遇到过这种情况,你是如何处理它的。 –

+0

XML解析器读取每个xml元素并将其放到适当的处理程序(AbstractBpmnParseHandler)中。处理程序将元素转换为activiti节点。例如StartEventParseHandler添加StartEvent来处理定义。这是一种方法,如何使用自己的XML格式来部署到数据库的流程定义。 – fersmi

相关问题