参考了这篇文档的思路:
http://man1900.iteye.com/blog/650580
把流程简单的写一下:
- 获取到当前流程的ProcessDefinitionImpl (注意:这里面使用到实现的方法,光采用接口无法实现功能)
可以通过ProcessInstance获取到ProcessDefinitionId,通过ProcessDefinitionQuery获取到ProcessDefinitionImpl(自己进行转换) - 通过ProcessDefinitionImpl,获取到需要跳转的2个节点,用ActivityImpl对象(通过ProcessDefinition的findActivity方法,通过Activity的name获取ActivityImpl对象)
从跳转的start的ActivityImpl,生成一个transitionImpl(调用ActivityImpl的createOutgoingTransition方法)
然后设置这个transitionImp的名字,以及调用setDestination(destActivity),
最后把这个transitionImpl设置进start的ActivityImpl中(调用start的ActivityImpl的addOutgoingTransition)
这样就动态的生成了一个连接 - 在系统中进行这个跳转就可以了;
executionService.signalExecutionById(taskId, 新建跳转的名字);