流程定义图:

Activiti实践之第一个程序之HelloWorld

一、部署流程定义:

     Activiti实践之第一个程序之HelloWorld

这里我们使用到RepositoryService类部署流程定义,加载流程图资源的方式有三种:

1、使用addClasspathResource(),在类路径下加载资源,注意每次只能加载一个文件。

2、使用addZipInputStream()方式加载资源,如下图:

Activiti实践之第一个程序之HelloWorld

3、使用addInputStream()方式加载资源,如下图:

Activiti实践之第一个程序之HelloWorld

在这里值得一说的是:

//从classpath根目录下加载指定名称的文件

this.getClass().getClassLoader().getResourceAsStream("helloworld.bpmn")    

//  从当前包下加载指定名称的文件

this.getClass().getResourceAsStream("helloworld.bpmn")                             

//从classpath根目录下加载指定名称的文件

this.getClass().getResourceAsStream("/helloworld.bpmn")                             

二、启动流程。

Activiti实践之第一个程序之HelloWorld

这里我们使用到的是runtimeService类,使用流程定义的key来启动流程,key对应的是helloworld.bpmn文件中id属性值。使用key值启动的好处是:当key相同的时候默认按照最新版本的流程定义启动。

三、查询个人任务。

Activiti实践之第一个程序之HelloWorld

在helloworld.bpmn文件中指定“部门经理审批”节点中的Assignee(办理人)的属性值为:李四。

四、完成任务。

Activiti实践之第一个程序之HelloWorld

任务Id为查询个人任务时获取到的任务ID。

根据流程定义,“部门经理审批之后下一个流程节点是总经理审批”重复三、四步骤,Assignee修改为王五。

至此,完成整个流程。


转载于:https://my.oschina.net/fuyung/blog/475708

相关文章: