Activiti工作流面试相关知识!

1:什么是工作流,工作流的核心对象是什么,activiti共操作数据库多少张表
  * 工作流就是多个参与者,按照某种预定义的规则,传递业务信息,进行审核的功能一个框架(Activiti)
  * processEngine,调用Service,从而操作数据库的表
  * 23表

2:工作流中RepositoryService、RuntimeService、TaskService、HistoryService分别表示什么操作
RepositoryService:流程定义和部署对象
RuntimeService:执行管理,包括流程实例和执行对象(正在执行)
TaskService:执行任务相关的(正在执行)
HistoryService:历史管理
IdentityService:Activiti表的用户角色组

3:流程实例和执行对象的区别
 * 流程从开始到结束的最大分支,一个流程中,流程实例只有1个
 * 执行对象,就是按照流程定义的规则执行一次的操作,一个流程中,执行对象可以有多个

4:流程变量在项目中的作用
 * 1:用来传递业务参数,目的就是审核人可以通过流程变量查看申请人的一些审核信息
   2:在连线的condition中设置流程变量,用来指定应该执行的连线${message=='重要'}

   3:使用流程变量指定个人任务和组任务的办理人#{userID}

5:activiti工作流中,如果一个任务完成后,存在多条连线,应该如何处理?
  * 使用流程变量
  * 当一个任务完成之后,根据这几条连线的条件和设置流程变量,例如${流程变量的名称=='流程变量的值'},{}符号是boolean类型,判断走哪条连线
6:activiti工作流中,排他网关和并行网关都能执行什么功能
  排他网关:分支,通过连线的流程变量,判断执行哪条连线,如果条件不符合,会执行默认的连线离开,注意:只能执行其中的一个流程。
  并行网关:可以同时执行多个流程,直到总流程的结束。可以对流程进行分支和聚合,注意:流程实例和执行对象是不一样的

7:分配个人任务的三种方式
*直接给值,在Xxxx.bpmn文件中指定
*流程变量${流程变量的名称}或者#{}
*使用类 监听这个类(实现一个接口),指定任务的办理人(setAssgnee())

8:个人任务和组任务的查询一样吗?
  * 不一样
  * 都是用TaskService完成(TaskService.createTasQuery)
  * 个人任务(taskAssgnee),组任务(taskCandidateUser)
  * 数据库存放,个人任务(类型:参与),组任务(类型,参与,候选)

参考来源:http://blog.csdn.net/u013456370/article/details/50144849

posted @ 2017-09-21 17:01  周天子  阅读(9770)  评论(0编辑  收藏  举报