activiti是基于bpmn4.0进行开发的,我们可以界面化的进行流程的定义,之后将其进行发布。那么一个流程就可以进行流程的实例化了。
在eclipse先安装activiti editor插件利于我们图形化的进行操作,如下图所示,我使用AE图形化的创建了一个流程,命名为:test.bpmn,如下图所示。
这样一个流程就定义好了。在activiti中如果我们要使用这个流程,那么首先我们就需要将其部署到对应的activiti中。这样我们才能通过其提供的接口查询到这个流程定义(ProcessDifinitaion),之后根据流程定义去实例化一个流程(ProcessInstance)
流程的发布:
流程发布前我们得先配置好数据库等,从而获得流程配置引擎(再次不再累述,很多地方都能知道怎么配置),如下图所示:
如上图所示,流程的发布其实就是一个资源的存储,当我们存储的资源是bpmn或者bpmn20.xml的时候,它默认为这是一个流程定义资源,存储的时候回去解析,之后在流程定义表中也去插入数据。
流程发布之后(如上发布了test.bpmn流程),即可使用流程
(1)查询流程定义(ProcessDefinition)
使用的还是activiti的RepositoryService组件来查询出我们的实例:
这是根据流程定义的key值来获取ProcessDefinition,当然还有根据流程定义的ID等等来获取流程定义实例的,请自行参考接口。
(2)获得流程实例(ProcessInstance)
使用activiti另一个组件runtimeService即可开启一个流程实例:
当流程实例开启的时候,其默认已经在执行了其第一个任务。
结束语:
activiti:activiti就是一种工作流引擎,他又自身对工作流程的管理,它使得我们只需要去关心每一个task需要做什么业务逻辑,而流程如何处理、执行则交由activiti自身管理。它是一个抽象、零散的东东。如上所示:
task1-->task2-->task3,有1-->3则有activiti自身管理,task1要干什么(具体的业务逻辑)由我们来完成,当完成一个任务的时候我们只需要告诉activiti,这个任务完成了,它自然到了下一个任务去。。。
下篇将讲解activiti中task的流程。