Activiti工作流入门详解完整教程.docx
- 文档编号:24275842
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:11
- 大小:19.60KB
Activiti工作流入门详解完整教程.docx
《Activiti工作流入门详解完整教程.docx》由会员分享,可在线阅读,更多相关《Activiti工作流入门详解完整教程.docx(11页珍藏版)》请在冰豆网上搜索。
Activiti工作流入门详解完整教程
输入Name:
ActivitiDesigner
Location:
:
//Activiti.org/designer/update/
输入完成后,单击OK按钮等待下载完成后安装。
安装完成后在菜单项选择项中会出现Activiti
2.3设置eclipseactivit插件的画流程图选项
翻开菜单Windows-->Preferences-->Activiti-->Save下流程图片的生成方式
勾选上Createprocessdefinitionimagewhensavingthediagram操作,勾选上这个操作后在画流程图后保存eclipse会自动生成对应的流程图片。
2.4准备开发环境
2.4.1创立mavenweb工程,在maven中添加Activiti依赖
在eclipse左边工作栏右键New选择创立MavenProject工程,创立一个名为ActivitiTest的工程
点击Finish完成。
右键工程选择Properties,选择ProjectFacets勾选上图中的选项,点击Apply,再点击OK
然后将工程转换成web工程,右键工程选择Properties,在ProjectFacets中做如下勾选,然后点击Appy应用和OK确定
然后右键工程
然后点击Appply和OK
2.4.2初始化数据库
Activiti.cfg.xml,内容如下
xmlversion="1.0"encoding="UTF-8"?
>
//springframework.org/schema/beans"xmlns: xsi=": //w3.org/2001/XMLSchema-instance" xmlns: context=": //springframework.org/schema/context"xmlns: tx=": //springframework.org/schema/tx" xmlns: jee=": //springframework.org/schema/jee"xmlns: aop=": //springframework.org/schema/aop" xsi: schemaLocation= : //springframework.org/schema/aop: //springframework.org/schema/aop/spring-aop-3.0.xsd"> class="org.Activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> mysql: //localhost: 3306/test? useUnicode=true&characterEncoding=utf8"/> jdbcUrl为你电脑数据库的url jdbcUsername为数据库用户名 编写创立Activiti publicclassCreateTable{ /**** *创立流程表 **/ @Test publicvoidcreateTable(){ ProcessEngineprocessEngine=ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("Activiti.cfg.xml") .buildProcessEngine(); System.out.println("------processEngine: "+processEngine); } } Activiti的相关数据表 2.4.3Activiti表说明 下面是概括了几个常用的数据表 流程部署相关表 act_re_deployement部署对象表 act_rep_procdef流程定义表 act_ge_prperty主键生成策略表〔对于部署对象表的主键ID〕 流程实例相关表 act_ru_execution正在执行的执行对象表〔包含执行对象ID和流程实例ID,如果有多个线程可能流程实例ID不一样〕 act_hi_procinst流程实例历史表 act_hi_actinst存放历史所有完成的任务 Task任务相关表 act_ru_task代办任务表〔只对应节点是UserTask的〕 act_hi_taskinst代办任务历史表〔只对应节点是UserTask的〕 act_hi_actinst所有节点活动历史表〔对应流程的所有节点的活动历史,从开始节点一直到结束节点中间的所有节点的活动都会被记录〕 流程变量表 act_ru_variable正在执行的流程变量表 act_hi_variable流程变量历史表 3.核心API 3.1ProcessEngine 说明: 1)在Activiti中最核心的类,其他的类都是由他而来。 2)产生方式 ProcessEngineprocessEngine=ProcessEngines.getDefaultProcessEngine(); 3〕可以产生RepositoryService RepositoryServicerepositoryService=processEngine.getRepositoryService(); 4)可以产生RuntimeService RuntimeServiceruntimeService=processEngine.getRuntimeService(); 5)可以产生TaskService TaskServicetaskService=processEngine.getTaskService(); 各个Service的作用 RepositoryService 管理流程定义 RuntimeService 执行管理,包括启动,推进,删除流程实例等操作 TaskService 任务管理 3.2RepositoryService Activiti 该service可以用来删除部署的流程定义。 3.3RuntimeService 是Activiti 3.4TaskService 是Activiti的任务效劳类。 可以从这个类中获取任务的相关信息,如当前正在执行的个人待办和用户组待办任务。 3.5HistoryService 是Activiti的查询历史信息的类,在一个流程执行完成后,这个对象为我们提供查询历史信息,可以跟踪流程实例对应所有待办节点的运行情况。 3.6ProcessDefinition 3.7ProcessInstance 代表流程定义的执行实例,当一个部署的流程图启动后,该流程只有一条流程实例数据,但是它的流程任务可以有多个,每个任务对应流程图中相应的流程节点。 4.入门HelloWorld程序 4.1 点击ActivitiTest 在当前工程右键选择ActivitiDiagram流程图输入流程图名称HelloWorld,然后点击OK, 在控制面板的右边栏有相关的画图图标操作 其中一个流程必须包含一个开始节点和一个结束节点,结束节点可以有多个。 然后使用StartEvent,UserTask,EndEvent画出下面的流程图,然后用Connection中的SequenceFlow连线连接起来。 4.2创立流程图,如下列图 4.3指定流程图名称,ID和UserTask的处理人 1〕选中第一个节点,在General中的name属性中输入当前节点的名称,在Mainconfig中的Assignee中输入该节点的处理人,然后以此类推将3个节点的值设置完成。 , 2〕然后在流程图旁边的空白出点击一下,输入流程的ID和Name值,然后保存 4.4将流程图部署到Activiti的数据表中 启动完成后在act_re_deployment流程部署表和act_re_procdef流程定义表中会有对应的数据信息. 4.5启动流程实例 其中runtimeService.startProcessInstanceByKey("HelloWorldKey");中的HelloWorldKey对应流程图中的ID值,在数据表中对应act_re_procdef流程定义表中的key字段 启动完流程后在act_ru_execution表中会产生一条数据,这条数据为当前流程正在执行的任务,其中act_id_字段的值对应流程图节点的ID值 在act_ru_task表中会产生一条任务数据,execution_id_对应act_ru_execution主键,proc_inst_id_为流程实例ID,name_值为流程节点名称,assignee_字段为该待办当前的处理人 4.6查询待办任务 指定查询张三的待办,可以查询出待办为第一个节点的处理任务。 4.7完成待办任务 其中taskId对应act_ru_task表的主键ID,因为当前待办任务为第一个节点提交申请,当执行完这个待办后下一条待办数据将会流转到审批【部门经理】那,然后以此类推可以将部门经理和总经理的待办任务全部查询和执行完成。 5.查询和删除流程定义 1〕查询流程定义 2)删除流程定义 6.流程变量操作 6.1设置流程变量 1〕设置流程变量有多种方式,可以在流程启动,和任务执行的时候设置 a.启动流程的时候设置 b.通过taskService或者runtimeService设置 提示: 如果设置的流程变量值是一个对象类型,这个对象必须实现序列化Serializable操作,并且要为该对象类指定一个版本ID 6.2获取流程变量 见工程操作 7.流程连线 在画流程图的时候可以对流程的连线设置表达式,然后在执行的时候设置流程变量值,然后Activiti会根据对应的值走对应的节点 点击一条连线,在Mainconfig中的Condition属性值中设置${message=='同意'},另外一条线设置为${message=='不同意'},然后在代码中设置对应流程变量值。 见工程操作 8.排他网关 如下列图,其中黑色的叉叉对应eclipse画流程图图标中的ExclusiveGateWay图标 然后对每条线的Condition属性指定对应的表达式,然后在执行任务时候设置对应的流程变量 Activiti会根据变量的值来判断对应连线中的表达式走对应的流程节点路线。 见工程操作 9.并行网关 十字图标对应图标中的ParallelGateway 并行网关不需要指定连线的表达式,当流程流转到并行任务时会出发多个任务,当多个任务完成后在会将流程流转到下一个节点 见工程操作 10.个人任务的三种指定方式 10.1在Assignee中指定任务具体的处理人 10.2在Assignee中指定任务的处理人或角色变量 当指定Assignee为一个变量值后需要在代码中设置对应的处理人,比方在启动的时候设置userId的值 在工程中可以将起草人的处理变量设置为userId,审批人的处理变量设置为appUserId,然后通过业务模块和登录人来获取对应模块的审批人。 10.3为任务节点设置一个监听类来设置当前节点的处理人 如果设置了监听类就不需要在设置Assignee的值 1〕创立一个监听器类,需要实现TaskListener接口 2)点击任务节点,选择Listener选项卡,点击New,将Event的值改为create 然后选择创立的TaskListenerImpl实现类 然后当任务到达该节点后Activiti会触发监听实现类的notify 11.组任务的三种指定方式 11.1在任务节点中设置Candidateuser候选人 11.2在Candidateuser中设置一个变量作为处理人 然后通过启动或者执行流程向下传递的时候设置该流程变量值 11.3通过监听类来设置待办处理人 如果设置了监听类就不需要在设置Assignee的值 和个人任务的监听类一样实现TaskListener接口,然后设置CandidateUser的值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Activiti 工作流 入门 详解 完整 教程