ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:1,006.71KB ,
资源ID:14999892      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14999892.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(activiti完整教程.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

activiti完整教程.docx

1、activiti完整教程1.activiti介绍Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss JBPM的项目架构师,它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。1.1工作流引擎ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据,监控和管理流程的运行。1.2BPMN业务流程建模与

2、标注(Business Process Model and Notation,BPMN),描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)2.准备环境2.1activiti软件环境1) JDK1。6或者更高版本2) 支持的数据库有:h2,mysql,oracle,mysql,db2等3) 支持activiti运行的jar包,可以通过maven依赖引入4) 开发环境为Eclipse3。7或者以上版本,myeclipse为8.6版本2。2安装流程设计器(eclipse插件)1)打开Help Install New Software Add

3、输入 Name: Activiti Designer Location: http:/activiti。org/designer/update/输入完成后,单击OK按钮等待下载完成后安装。安装完成后在菜单选项中会出现activiti的目录选项2.3 设置eclipse activit插件的画流程图 选项打开菜单Windows - Preferences Activiti -Save 下流程图片的生成方式勾选上Create process definition image when saving the diagram操作,勾选上这个操作后在画流程图后保存eclipse会自动生成对应的流程图片。

4、2.4 准备开发环境2。4.1 创建maven web项目,在maven中添加activiti依赖在eclipse左边工作栏右键New选择创建Maven Project项目,创建一个名为ActivitiTest的项目点击Finish完成。右键项目选择Properties,选择Project Facets 勾选上图中的选项,点击Apply,再点击OK然后将项目转换成web项目,右键项目选择Properties,在Project Facets中做如下勾选,然后点击Appy应用和OK确定然后右键项目Properties ,选择Deployment Assembly,将test相关目录Remove掉之

5、保留main下面需要发布的内容,如下图然后点击Appply和OK然后在pom。xml文件中添加以下依赖dependencies groupIdorg.activiti/groupId artifactIdactiviti-engine version5。21.0/version org.activiti/groupId artifactIdactiviti-spring version5.21。0/version groupIdorg。codehaus.groovy artifactIdgroovy-all/artifactId version2。4.3 groupIdorg.slf4j/gr

6、oupId slf4japi/artifactId 1。7。6/version /dependency dependency groupIdorg.slf4j/groupId artifactIdslf4j-jdk14 version1.7.6/version /dependency dependency groupIdjunit/groupId junit version3.8。1/version scopetest dependency groupIdmysql/groupId artifactIdmysql-connector-java version5。1。38 /dependenci

7、es然后在命令行下mvn compile 编译当前项目,将需要的包下载到本地仓库2.4.2 初始化数据库1)src/main/resource目录下创建activiti。cfg.xml文件,内容如下?xml version=”1。0 encoding=”UTF-8?beans xmlns=”http:/www。springframework.org/schema/beans xmlns:xsi=http:/www.w3。org/2001/XMLSchemainstance” xmlns:context=”http:/www.springframework.org/schema/context”

8、 xmlns:tx=http:/www.springframework.org/schema/tx xmlns:jee=”http:/www.springframework.org/schema/jee xmlns:aop=http:/www。springframework.org/schema/aop xsi:schemaLocation=http:/www.springframework.org/schema/beans http:/www.springframework。org/schema/beans/springbeans3。0.xsd http:/www.springframewo

9、rk.org/schema/context http:/www.springframework。org/schema/context/spring-context-3.0.xsd http:/www。springframework.org/schema/tx http:/www.springframework.org/schema/tx/springtx-3。0.xsd http:/www.springframework。org/schema/jee http:/www。springframework.org/schema/jee/spring-jee-3.0。xsd http:/www。sp

10、ringframework.org/schema/aop http:/www。springframework。org/schema/aop/spring-aop3.0。xsd property name=jdbcUsername” value=”root / property name=jdbcPassword” value=root” / property name=databaseSchemaUpdate” value=true”/ /bean jdbcUrl为你电脑数据库的urljdbcUsername为数据库用户名jdbcPassword为数据库密码2)在main/java目录下创建任

11、意目录和类编写创建activiti数据表方法public class CreateTable / 创建流程表 * / Test public void createTable() ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(”activiti.cfg.xml”) 。buildProcessEngine(); System。out。println(-processEngine:” + processEngine); 然后运行该测试方法,如

12、果运行成功,在数据库中应该会产生25张activiti的相关数据表2。4.3 activiti表说明下面是概括了几个常用的数据表流程部署相关表act_re_deployement 部署对象表act_rep_procdef 流程定义表act_ge_bytearray 资源文件表act_ge_prperty 主键生成策略表(对于部署对象表的主键ID)流程实例相关表act_ru_execution 正在执行的执行对象表(包含执行对象ID和流程实例ID,如果有多个线程可能流程实例ID不一样)act_hi_procinst 流程实例历史表act_hi_actinst 存放历史所有完成的任务Task 任务

13、相关表act_ru_task 代办任务表 (只对应节点是UserTask的)act_hi_taskinst 代办任务历史表 (只对应节点是UserTask的)act_hi_actinst 所有节点活动历史表 (对应流程的所有节点的活动历史,从开始节点一直到结束节点中间的所有节点的活动都会被记录)流程变量表act_ru_variable 正在执行的流程变量表act_hi_variable 流程变量历史表3。核心API3。1 ProcessEngine说明:1) 在Activiti中最核心的类,其他的类都是由他而来。2) 产生方式ProcessEngine processEngine = Proc

14、essEngines。getDefaultProcessEngine();3)可以产生RepositoryService RepositoryService repositoryService =processEngine.getRepositoryService();4) 可以产生 RuntimeServiceRuntimeService runtimeService = processEngine。getRuntimeService();5) 可以产生TaskServiceTaskService taskService =processEngine。getTaskService();各个S

15、ervice的作用RepositoryService管理流程定义RuntimeService执行管理,包括启动,推进,删除流程实例等操作TaskService任务管理3.2 RepositoryServiceActiviti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片该service可以用来删除部署的流程定义.3.3 RuntimeService是activiti的流程执行服务类,可以从这个服务类中获取很多关于流程执行的相关的信息。3。4 TaskService是activiti的任务服务类。可以从这个类中获取任务的相关信息,如当前正在执行的个人待办和用户组待办任务

16、。3.5 HistoryService是activiti的查询历史信息的类,在一个流程执行完成后,这个对象为我们提供查询历史信息,可以跟踪流程实例对应所有待办节点的运行情况.3。6 ProcessDefinition流程定义类,可以从这里获得资源文件等.3.7 ProcessInstance代表流程定义的执行实例,当一个部署的流程图启动后,该流程只有一条流程实例数据,但是它的流程任务可以有多个,每个任务对应流程图中相应的流程节点.4.入门HelloWorld程序4。1创建流程图方法点击ActivitiTest项目,在src/main/java目录下创建一个diagrams目录用来存放流程图在当

17、前项目右键选择Activiti Diagram流程图输入流程图名称HelloWorld,然后点击OK,在控制面板的右边栏有相关的画图图标操作其中一个流程必须包含一个开始节点和一个结束节点,结束节点可以有多个。然后使用StartEvent, UserTask,EndEvent画出下面的流程图,然后用Connection中的SequenceFlow连线连接起来。4.2创建流程图,如下图4。3 指定流程图名称,ID和UserTask的处理人1)选中第一个节点,在 General中的name属性中输入当前节点的名称,在Main config中的Assignee中输入该节点的处理人,然后以此类推将3个节

18、点的值设置完成。,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表中会产生一条数据,这条数据为当前流程正

19、在执行的任务,其中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,因为当前待办任务为第一个节点提交申请,当执行完这个待办后下一条待办数据将会流转到审批【部门经理】那,然后以此类推可以将部门经理和总经理的待办任务全部查询和执

20、行完成。5.查询和删除流程定义1)查询流程定义2) 删除流程定义6.流程变量操作6。1 设置流程变量1)设置流程变量有多种方式,可以在流程启动,和任务执行的时候设置a.启动流程的时候设置b。 通过taskService或者runtimeService设置提示:如果设置的流程变量值是一个对象类型,这个对象必须实现序列化Serializable操作,并且要为该对象类指定一个 版本ID6。2 获取流程变量见工程操作7.流程连线在画流程图的时候可以对流程的连线设置表达式,然后在执行的时候设置流程变量值,然后activiti会根据对应的值走对应的节点点击一条连线,在Main config中的Condit

21、ion属性值中设置$message=同意,另外一条线设置为message=不同意,然后在代码中设置对应流程变量值。见工程操作8。排他网关如下图,其中黑色的叉叉对应eclipse画流程图图标中的ExclusiveGateWay图标 然后对每条线的Condition属性指定对应的表达式,然后在执行任务时候设置对应的流程变量activiti会根据变量的值来判断对应连线中的表达式走对应的流程节点路线.见工程操作9.并行网关十字图标对应图标中的ParallelGateway并行网关不需要指定连线的表达式,当流程流转到并行任务时会出发多个任务,当多个任务完成后在会将流程流转到下一个节点见工程操作10。个人

22、任务的三种指定方式10。1 在Assignee中指定任务具体的处理人10。2 在Assignee中指定任务的处理人或角色变量当指定Assignee为一个变量值后需要在代码中设置对应的处理人,比如在启动的时候设置userId的值在工程中可以将起草人的处理变量设置为userId,审批人的处理变量设置为appUserId,然后通过业务模块和登录人来获取对应模块的审批人.10.3 为任务节点设置一个监听类来设置当前节点的处理人如果设置了监听类就不需要在设置Assignee的值1)创建一个监听器类,需要实现TaskListener接口2) 点击任务节点,选择Listener选项卡,点击New ,将Eve

23、nt的值改为create然后选择创建的TaskListenerImpl实现类然后当任务到达该节点后activiti会触发监听实现类的notify方法11.组任务的三种指定方式11。1 在任务节点中设置Candidate user 候选人设置的候选处理人用英文输入法的逗号隔开,当任务到达该节点后,设置的候选人其中任何一个人都可以处理当前待办,处理完成后待办结束。11。2 在Candidate user中设置一个变量作为处理人然后通过启动或者执行流程向下传递的时候设置该流程变量值11。3 通过监听类来设置待办处理人如果设置了监听类就不需要在设置Assignee的值和个人任务的监听类一样实现TaskListener接口,然后设置CandidateUser的值

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2