activiti工作流引擎

2023-03-15 03:48:27 来源:网络

activiti工作流引擎

解决activiti流程部署时报错:not a valid value for 'NCName'

项目中使用了activiti作为工作流引擎,为了使用更加方便,自己开发了一套流程设置功能。先构建 BpmnModel 对象,再使用 RepositoryService 提供的deploy方法动态部署到activiti中。

功能开发完成后,开发本地测试和一轮测试之前都是OK的。然后前几日,在回归测试的时候,出现了某些用户可以成功部署,某些用户无法成功部署的“奇怪”现象。观察后台无法部署的后台错误日志:

这个报错的意思大概是:

于是想着百度看看 NCName 是什么类型,有什么约束。然后似乎没有一篇能说明白。试探了多次,发现:

为了证实想法,借助谷歌终于弄清楚了。 NCName只能以下划线(_)或字母开头,只能包含中划线(-)、下划线、字母和数字 ,我们的流程ID是按 单位ID+'_'+部门ID 规则拼接的,而单位ID是随机生成的字符串,所以有的是以数字开头的就无法部署。最终,我们更改了单位ID的 生成规则,保证是字母开头(多么简单粗暴的solution...)。

activiti和jbpm工作流引擎哪个比较好

Activiti5与jbpm4,底层都是使用流程虚拟机(PVM),而jbpm5以后则使用Drools Flow作为底层架构,目前Activiti6上市,同样也已经移除了PVM。技术只适不适合,并没有好坏之分,Activiti与jbpm均支持BPMN规范,jbpm与JBoss的项目整合使用的话,具有先天的优势,在这点看来,使用jbpmn更好。而jbpm采用的是LGPL开源协议,Activiti采用了宽松的Apache License2.0协议,从开源的角度来说,使用Activiti更好。参考自《疯狂工作流讲义第2版(Activiti6)》第1章。

免责声明:内容来自网络,若侵犯您的权利,请在一个月内通知我们,会及时删除 @轻流