本文共 2393 字,大约阅读时间需要 7 分钟。
工作流
是按照预定义的规则传递文档、信息或任务的过程,它会自动执行从而实现预期的业务目标。
工作流管理系统
被用来定义、管理、和执行工作流程。 1、工作流管理系统不是企业的业务系统,而是为企业的业务系统提供软件支撑环境。 2、工作流管理系统用来定义、管理和执行工作流程,其目标就是在自动化进行的业务过程中插入人工的执行和干预。 activiti是一个BPM业务流程管理框架,包括部署流程定义->启动流程实例->查看任务列表->办理任务
,在任务创建后,意味着流程会进入等待状态, 直到引擎接收了一个特定的消息, 这会触发流程穿过接收任务继续执行。
File - settings-plugins-Browse-Repositories
搜索 actiBPM
ProcessEngine
对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。
Activiti使用Mybatis3做持久化工作,在创建核心的流程引擎对象时会自动建表。如果程序正常执行,mysql会自动建库,然后创建24张表。Activiti使用到的表都是ACT_开头的。以下介绍关键表:
ACT_RE_* //流程定义存储。ACT_RU_* //流程执行记录,记录流程启动到结束的所有动作,流程结束后会清除相关记录。ACT_ID_* //用户记录,流程中使用到的用户和组。ACT_HI_* //流程执行的历史记录。ACT_GE_* //通用数据及设置。ACT_RE_DEPLOYMENT //部署记录。ACT_RE_PROCDEF //流程定义。ACT_RU_EXECUTION //流程执行记录。ACT_RU_TASK //执行的任务记录。ACT_RU_VARIABLE //执行中的变量记录。流程实例结束后流程变量保存。ACT_HI_PROCINST //流程实例。ACT_HI_TASKINST //任务实例。
在实际项目中对已完成任务的查看频率远不及对待办和可接任务的查看,所以在activiti采用分开管理,把正在运行的交给RuntimeService、TaskService管理,而历史数据交给HistoryService来管理。这样做的好处在于,加快流程执行的速度,因为正在执行的流程的表中数据不会很大。
RepositoryService // 仓库服务对象,管理流程定义,通过流程引擎获取Deployment // 从仓库服务中获取部署对象RuntimeService // 执行管理,包括启动、推进、删除流程实例等操作,是activiti的流程执行服务类。TaskService // 任务管理,是activiti的任务服务类。HistoryService // 历史管理(执行完的数据的管理)IdentityService // 组织机构管理FormService // 一个可选服务,任务表单管理ManagerService //ProcessDefinition // 流程定义类,获取资源文件等。ProcessInstance // 流程定义的实例。Execution // 没有并发的情况下,等同于ProcessInstance
1、一个流程中,执行对象可以存在多个,但是流程实例只能有一个。
2、当流程按照规则只执行一次的时候,流程实例就是执行对象。1、用来传递业务参数,目的就是审核人可以通过流程变量查看申请人的一些审核信息
2、在连线的condition中设置流程变量,用来指定应该执行的连线 3、使用流程变量指定个人任务和组任务的办理人#{userID}Exclusive Gateway排他网关
排他网关必须给一个流程变量,若没有符合条件的判断结果,就会走默认的连线。不给流程变量,会报错,因为无法判断。 排他网关和直接连线的最大区别:排他网关有个默认值,连线必须是每根先都得给条件。一个活动中可以指定一个或多个SequenceFlow(连线)
,Start中有一个,End中没有,其他活动中有1条或多条SequenceFlow。如果有多个,则需要使用流程变量设置codition的名称。${}
中间的内容要使用boolean类型的表达式,用来判断应该执行的连线。如${deptleaderapprove==‘false’}
流程定义文档有两部分:bpmn文件和流程图片
bpmn流程规则文件。在部署后,每次系统启动时都会被解析,把内容封装成流程定义放入项目缓存中。 Activiti框架结合这个xml文件自动管理流程,流程的执行就是按照bpmn文件定义的规则执行的,bpmn文件是给计算机执行用的。 流程定义记录:Id的值的生成规则为:{processDefinitionKey}:{processDefinitionVersion}:{generated-id}, 这里的generated-id是一个自动生成的唯一的数字idea的工作流插件支持的没有Eclipse那么好,创建好流程图leave.bpmn
,却看不到源码。但可以修改为leave.xml
文件,然后右键Diagrams–>Show BPMN 2.0 Designer
,然后导出为leave.png
即可
重点:流程定义管理CRUD,流程实例、任务的执行,流程变量,查看历史记录,连线,活动节点
转载地址:http://uyaxb.baihongyu.com/