我所遇到的activiti问题

         * 启动流程实例的同时,设置流程变量,使用流程变量的方式设置下一个任务的办理人 
         *     流程变量的名称,就是在task.bpmn中定义#{userID}的userID 
         *     流程变量的值,就是任务的办理人 
         */  

 Map variables = new HashMap();  
    variables.put("userId", "sureSand");  
    ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey("task",variables);

“`所有在启动流程实例的claim下一个任务时的userId就是上面启动流程实例的userId。
当然variables这个map还可以存放很多信息
@变量传递一定要在流程还没有到达这个任务节点的时候传递,否则当流程到达这个节点的时候,在传递变量就不行了。因为当前的节点设置的是下一个节点的变量值信息。
2.排他网关是通过完成任务时传入的流程变量(这里的流程变量其实是判断条件)来决定它将走哪条flow。
3.并行网关是基于外出和进入的顺序流的,既然并行就是一起进行所以不用判断条件。
a.分支(fork):并行后的所有外出顺序流,为每个顺序流都创建一个并发分支。
b.汇聚(join):所有到达并行网关,在此等待的进入分支,直到所有进入顺序流的分支都到达以后,流程就会通过汇聚网关。
4.activiti的几大常用service都比较好理解,但其中的identityservice比较难找到资料。首先文档地址介绍:
http://www.activiti.org/javadocs/org/activiti/engine/IdentityService.html
下面是关于identityservice用户与用户组的介绍与例子,
http://blog.csdn.net/cq1982/article/details/45560897的例子,解决了我的一些疑惑,在此感谢。
5.activiti的listener也是理解起来不是很容易的,我也找到了比较不错的介绍资料
http://blog.csdn.net/qq_30739519/article/details/51258447
6.有时启动activiti会碰到Version of activiti database (5.16) is more recent than the engine (5.12)的异常就是activiti的数据库版本高于流程引擎的版本,到数据库查看act_ge_property这个表,将5.15.1改为5.14.1,至于怎么改就和平常操作数据库一样的步骤就可以了。

你可能感兴趣的:(activiti)