您好,欢迎来到[码蚁之家]阅读室   笑话大全   编程问答   问答大全   移民之家   娱乐之家   范文之家   源码下载   电子书籍   软件下载   专题
ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 网络编程 >> 其他编程教程 >> Activiti工作流二之常用操作

Activiti工作流二之常用操作(1/4)

来源:网络整理     时间:2017-1-2 14:10:42     关键词:

本篇文章主要介绍了" Activiti工作流二之常用操作",主要涉及到方面的内容,对于其他编程教程感兴趣的同学可以参考一下: 前面介绍了Activiti工作流的基本操作,但是在实际应用过程中,往往不满足项目需求,因此还需要了解一些其他的功能比如:连线、排他网关、并行网管、流程变量、个人...

前面介绍了Activiti工作流的基本操作,但是在实际应用过程中,往往不满足项目需求,因此还需要了解一些其他的功能比如:连线、排他网关、并行网管、流程变量、个人任务及组任务的三种发布方式。

 下面将介绍Activiti工作流中的连线操作

首先需要构建一个流程实例并且部署到项目中去


 Activiti工作流二之常用操作
 可以看出这个流程实例和之前的有一些区别,就是连线上多了一下文字,要想让流程引擎通过连线来辨别走哪个流程需要在连线上加上对应的条件,比如${message=="不紧急"},然后再在完成任务的时候讲该信息封装到map中并传递给流程引擎

        @Test
	public void compileTask(){
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
		
		//任务ID
		String taskID = "302";
		
		//获得任务服务
		TaskService taskService = processEngine.getTaskService();
		
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("message", "不紧急");
		
		taskService.complete(taskID, map);
	}

 这样流程引擎就会将该任务分配给部门主管,通过对连线的设置可以手动的将任务分配给指定的人,但是在实际应用过程中,往往还需要一个默认执行的流程,这时候就需要排他网关

首先构建一个新的流程实例并且部署上去


 Activiti工作流二之常用操作
 在排他网关中,我们需要设置一个Default flow,里面填上需要默认执行连线的ID,且其它连线需要设置对应的Condition,在流程任务执行任务的过程中,当检测到没有一条连线符合我们需要执行的流程的条件时,排他网关会默认的将该任务分配给默认的连线,这里有几点需要注意:

1) 决策网关只会返回一条结果。当流程执行到排他网关时,流程引擎会自动检索网关出口,从上到下检索如果发现第一条决策结果为true或者没有设置条件的(默认为成立),则流出。

2) 如果没有任何一个出口符合条件,则抛出异常

3) 使用流程变量,设置连线的条件,并按照连线的条件执行工作流,如果没有条件符合的条件,则以默认的连线离开

接下来是并行网关,首先创建流程实例并且部署到项目上


 Activiti工作流二之常用操作
 当该流程启动之后,观察数据库中的表的数据

 首先观察ACT_RU_TASK表,这里面是我们需要执行的task


 Activiti工作流二之常用操作
 然后再看ACT_RU_EXECUTION表,这张表很重要,体现了并行网关的功能


 Activiti工作流二之常用操作
 接下来我们先完成付款和收款任务,然后再观察这两张表里面的数据

相关图片

相关文章