工作流主要解决的主要问题是:为了实现某个业务,利用计算机在多个参与者之间按照预定规则自动传递文档,信息或任务。
工作流管理联盟(WFMC)对工作流给出定义为:工作流是指一类能够完全自动执行的经营过程,根据一系列过程规则,将文档、信息或任务在不同的执行者之间进行传递与执行。
BPMN(Business Process Model AndNotation)- 业务流程模型和符号 是由BPMI开发的一套标准的业务建模符号,使用BPMN提供的符号可以创建业务流程。
Activiti是一个工作流引擎(其实就是一堆jar包API),业务系统访问(操作)activiti的接口,就可以方便的操作流程相关数据,这样就可以把工作流环境与业务系统的环境集成在一起。
.bpmn文件就是业务流程定义文件,通过xml定义业务流程
activiti部署业务流程定义(.bpmn文件)
activiti执行把流程定义内容存储在数据库中
org.activiti
activiti-bpmn-model
${activiti.version}
org.activiti
activiti-bpmn-converter
${activiti.version}
org.activiti
activiti-json-converter
${activiti.version}
org.activiti
activiti-bpmn-layout
${activiti.version}
org.activiti.cloud
activiti-cloud-services-api
${activiti.version}
mysql
mysql-connector-java
5.1.40
调用activiti的工具类,生成activiti需要的数据库表。
直接使用activiti提供的工具类processEngines,会默认读取classpath下的activiti.cfg.xml文件,读取其中数据库配置,创建processEngine,在创建ProcessEngine时会自动创建表。
//创建
ProcessEngine processEngine=configuration.buildProcessEngine();
processEngine.close();
act_re:“RE”表示repository。这个前缀的表包含了流程定义和流程静态资源(图片,规则,等等);
act_ru:“RU”表示runtime,这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据,Activiti只在流程实例执行过程中保存这些数据,结束时会删除记录。
act_hi:“HI”表示history,这些表包含历史数据,比如历史流程实例,变量,任务等
act-Ge:“GE”表示general,通用数据,用于不同场景下;
act_evt_log
保存流程定义图片和xml。Serializable(序列化)的变量,即保存多有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他流程无关的文件也一起部署在该表中,会造成一些错误(可能导致流程定义无法删除)。
用于保存流程审核的批注信息。一般我们审批任务时,都会填写审批意见、审批时间、审批人等信息
type_:意见类型记录,为comment时为处理意见,类型:event(事件),comment(意见)
action:行为类型,为addcomment时,为处理意见
message:处理意见,用于存放流程产生的信息,比如审批意见
full_msg:全部信息。
流程的引擎配置类:(ProcessEngineConfiguration),通过ProcessEngineConfiguration可以创建工作流引擎ProcessEngine,常见的方法如下两种:
1、StandaloneProcessEngineConfiguration
使用StandaloneProcessEngineConfigurationActiviti可以单独运行,来创建ProcessEngine,Activiti会自己处理事务。配置文件方式:通常在activiti.cfg.xml配置文件中定义一个id为 processEngineConfiguration 的bean,见环境搭建模块,就是使用这种方式进行配置的。
2、SpringProcessEngineConfiguration
通过org.activiti.spring.SpringProcessEngineConfiguration 与Spring整合。
service名称 | service作用 | 功能描述 |
---|---|---|
RepositoryService | activiti的资源管理类 | activiti的资源管理类,提供了管理和控制流程发布包和流程定义的操作。使用工作流建模工具设计的业务流程图需要使用此service将流程定义文件的内容部署到计算机 |
RuntimeService | activiti的流程运行管理类 | Activiti的流程运行管理类,可以从这个类中获取很多关于流程执行相关的信息 |
TaskService | activiti的任务管理类 | Activiti的任务管理类,可以这个类中获取任务的信息 |
HistoryService | activiti的历史管理类 | activiti的历史管理类,可以查询历史信息,执行流程时,引擎会保存很多数据,比如获取实例启动时间,任务的参与者,完成任务的时间,每个实例的执行路径,这个服务主要通过查询功能来获得这些数据。 |
ManagerService | activiti的引擎管理类 | activiti的引擎管理类,提供了对activiti流程引擎的管理和维护功能,这些功能不能在工作驱动的应用程序中使用,主要对于activiti系统的日常维护。 |