Activiti是一个很有前途的业务流程引擎,许多组织已经开始使用activiti开发业务流程管理系统。
在我的情况下,我想使用activiti来开发满足特定业务需求的BPM系统。但是,activiti引擎功能仅涵盖了我业务需求的约70%。
我想添加的大多数业务要求都不是bpmn相关的。我决定通过解决方法来添加我的特定业务需求。
问题是,扩展Activiti流程引擎功能的首选方法是什么?
目前我有两个常规选项:
直接更改活动源代码。我应该直接编辑源代码实现类吗?那会更快,但这不会让升级到新版本更难吗?或者我应该扩展并包装一些实现类?这种选择不会导致意外行为吗?
使用activiti引擎作为依赖项,然后通过扩展和包装其某些实现类来添加新功能。另一种选择是使用完全独立的数据模型在活动引擎之外添加扩展。我不知道适应的首选方式是什么。
答案 0 :(得分:1)
快速选项可以找到一个解决方案并等到它在活动上。
另一种选择是寻找businessTask,它在Activiti中实现(http://activiti.org/userguide/#bpmnBusinessRuleTask)。这将使你“内部”活动和BPMN,这有利于成为标准。
如果您仍想扩展它,我认为不要弄乱代码更有意义。如果直接修改代码,升级到较新的Activiti版本将会很复杂。此外,您不会在已经由其他人测试过的代码中引入错误。
您没有说出您需要哪种要求,但我认为大多数人都认为应该可以使用BPMN。您还可以在activiti论坛中询问/寻找更具体的帮助。