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