现在的位置: 首页 > 综合 > 正文

Activiti学习(一)

2018年05月14日 ⁄ 综合 ⁄ 共 948字 ⁄ 字号 评论关闭

        我第一次处理业务,很难搞懂理解流程引擎是怎么回事,对业务了解最多的方面,也就是能看懂流程图,但是具体把业务和流程引擎关联起来,真的是做一步卡一步啊,我以一个初学的角度来给大家介绍一下我怎么理解Activiti。
      采用流程引擎无非就是更加有条理的管理业务,通过流程图可以清楚地看清业务之间的关系。但是业务和流程怎么关联到一块呢?或者说怎么在业务中运用activiti流程引擎呢?

一、先来说一下activiti运行过程:

1.画一个流程图,通过Eclipse 插件:http://activiti.org/designer/update/ 。

2.部署一个流程:

        在activiti数据中表act_ru_prodefin 和act_ru_deploye表中会多一条记录,代表你刚刚部署的流程。以后你每次需要你所发布的这个流程的时候,就会在这里找他们的定义,相当于java定义了一个类。

3.启动一个流程:

        在业务需要走哪个流程的时候,你就可以根据你的需要,在已经部署过的流程中找到你需要的流程,这个过程相当于java类的实例化,这时表act_ru_execution表中回多一条记录(就是你刚才启动的流程),在这条记录你可以找到关联act_ru_prodefin表中定义的流程。

4.流程启动后,这个流程就运行起来了,当你完成一个任务时,流程会自动往后执行。

二 、Activiti和 业务相关联:

        每启动一个流程,都会在ac_ru_execution表中生成一条记录,一直到流程结束,才从表中消失。这样我们每次启动流程的时候可以获取流程的ID,在和业务关联的表中添加一个字段用来保存这个ID,这样业务和表就关联起来了。

三、任务的派发、接收、完成。

       在启动流程的时候,activiti引擎会自动把获取的任务保存到表act_ru_task中,我们可以通过 实例化 activiti 给我们提供的TaskService对象(taskService)来获取任务。
       把任务派发给某人可以使用Task 的assign()方法;
      接收任务可以通过Task 的claim()方法;
     完成任务可以调用Task 的complete()方法;当一个任务完成时,会自动从act_ru_task表中删除。

抱歉!评论已关闭.