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) 
* 数据库存放,个人任务(类型:参与),组任务(类型,参与,候选)

猜你喜欢

转载自blog.csdn.net/dreamhai/article/details/80570037