Activiti6教程三
这一节主要介绍Activiti中API中的一些名词官方文档简介中主要包含以下几个API这几个接口的用处已经介绍的很清楚了,但是使用这些API我们必须要了解到activiti的一些定义,我们结合流程图来说,我们定义一个业务流程我们查看API时会发现很多接口都需要传入processInstanceId比如RumtimeService下addParticipant...
这一节主要介绍Activiti中API中的一些名词
官方文档简介中主要包含以下几个API
这几个接口的用处已经介绍的很清楚了,但是使用这些API我们必须要了解到activiti的一些定义,我们结合流程图来说,我们定义一个业务流程
-
我们查看API时会发现很多接口都需要传入processInstanceId
比如RumtimeService下
addParticipantUser(String processInstanceId, String userId) 接口,这个接口代表将这个任务指派给潜在用户(通俗一点就是这个用户有完成这个任务的权限),processInstanceId代表着一个流程的id一个流程只有唯一的一个ID举个例子我发起一个请假流程,那么这个流程就有一个唯一对应的processInstanceId,那么我就可以根据这个id获取到这个流程的ProcessInstance ,ProcessInstance这个对象里面包含着我开启这个流程的具体信息比如什么时候开启的,谁开启的,流程的名字是什么,所有的任务Task都是和ProcessInstance做挂钩的,(可以这样理解,有了流程实例才有流程任务,如果流程都没开启何来任务?)
-
TaskId
代表着任务节点的ID,以上图来说,当任务进行到T1,T2,T3时我们怎么跟踪里面的信息?答案是我们需要一个id,这个ID就是taskId,它是任务的唯一标识,在TaskService中大量使用到了TaskId
-
executionId
这个executionId主要用来跟踪流程的状态,如果你进行debug调试的时候就会发现activiti的模型是以很多execution来表示的,比如上图中的连线,开始和结束节点,任务节点都可以用execution来表示,execution代表了流程图中每一个元素,而其的标识就用executionId来标识,这样我们就可以清楚的知道流程进行到哪里(哪个execution)
-
ProcessInstance
activiti中流程实例对象,代表着一个流程实例
-
Task
任务流程对象,对应以上示例图中的T1,T2,T3标签,在BPMN图中往往用User Task这个图标来表示,在实际业务中往往代表着一个要处理的任务,比如审批通过等
-
Query
如果你查看上述截图中的核心api,会发现大多API中 都存在一个create...Query的方法,如RuntimeService中的createProcessInstanceQuery()方法,他产生了一个ExecutionQuery对象,这个对象是封装了对应的查询api,采用了流式编程,如
runtimeService.createProcessInstanceQuery().startedBefore(new Date(new Date().getTime()-24*60*60*1000)).startedAfter(new Date()).list();
这个是获取正在进行的流程,且流程开始时间是昨天到今天的流程列表,这个行代码返回的是ProcessInstance对象,这个我们可以通过createProcessInstanceQuery方法看出来,同理createExecutionQuery最后返回的就是Execution对象,所有查询接口最后必须已list()方法或者singleResult()结尾,它代表的这次查询是返回的是列表,还是单个对象,正如前面所说由于采用流式编程的方式每次执行方法如上述的startBefore()方法后都会返回一个Query对象,只有执行singleResult()或者list()方法后才可将其转换回所查询的对象,我们可以通过idea点击进入list()方法看到里面的代码就很清楚它的运作方式了
-
TaskListener
顾名思义,任务监听器,作用在task节点,实际中可能作用在User Task标签中多一些,此接口为任务监听器,执行实现这个接口后,可以把这个接口挂载到任务下完成,对任务的监听,比如任务开始,或者完成后要执行什么,我们点击编辑器中的T1节点然后就会在下面发现一个
选项,点进去输入你编写监听器类的全路径即可
更多推荐
所有评论(0)