1.什么是工作流?工作流的核心对象是什么?activiti共操作数据多少张表?
工作流就是多个参与者,按照某种预定义的规则,传递业务信息,进行审核功能的一个框架。
工作流的核心对象是processEngine,通过调用service,操作数据库的多张表。
activiti操作数据共需要23张表。
2.工作流中不同service分别表示什么操作?
RepositoryService:流程定义和部署对象;
RuntimeService:执行管理,包括流程实例和执行对象(正在执行);
TaskService:任务相关的(正在执行);
HistoryService:历史管理;
IdentityService:activiti表的用户角色组。
3.流程实例和执行对象的区别?
流程实例:流程从开始到结束的最大分支,一个流程中流程实例只有一个;
执行对象:就是按照流程定义的规则执行一次的操作,一个流程中执行对象可以有多个。
4.流程变量在项目中的作用?
1:用来传递业务参数,目的就是审核人可以通过流程变量查看申请人的一些审核信息;
2:在连线的condition中设置流程变量,用来指定应该执行的连线${message='重要'};
3:使用流程变量指定个人任务和组任务的办理人#{userID}。
5.工作流与数据库表的关系
Activiti的后台有数据库的支持,所有的表都以ACT_开头,第二部分是表明表的用途的两个字母标记,规律如下:
ACT_RE_*:"RE"表示repository.这个前缀的表包含了流程定义和流程静态资源(图片,规则等)。
ACT_RU_*:"RU"表示runtime。表示运行时的表,包含流程实例,任务,变量,异步任务等运行中的数据。Activiti只在流程实例执
行过程中保存这些数据,在流程结束时就会
删除这些记录。这样运行时,表可以一直很小速度很快。
ACT_ID_*:"ID"表示identity。这些表包含身份信息,比如用户,组等。
ACT_HI_*:"HI"表示history。这些表包含历史数据,比如历史流程实例,变量,任务等。
ACT_GE_*:通用数据,用于不同场景下,如存放资源文件。
操作代码不同步骤涉及到的数据库表:
步骤一:部署对象(Deployment)
act_re_deployment:部署对象表
act_re_procdef:流程定义表
act_ge_bytearray:资源文件表
act_ge_property:主键生成策略表
步骤二:流程定义,启动流程实例(ProcessDefinition)
act_ru_execution:正在执行的执行对象表
act_hi_procinst:历史的流程实例表
act_ru_task:正在执行的任务表(只有当前活动是usertask节点,该表中才有数据)
act_hi_taskinst:历史的任务表(所有活动是usertask节点,该表中都有数据)
act_hi_actinst:历史的活动表(所有活动)
步骤三:流程变量
act_ru_variable:正在执行的流程变量表
act_hi_varinst:历史的流程变量表
步骤四:个人任务与组任务
act_ru_identitylink:正在执行的任务办理人
act_hi_identitylink:历史执行的任务办理人
步骤五:工作流的组织机构表
act_id_user:用户表
act_id_group:角色表
act_id_membership:用户角色关联表