您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 工作范文 > Activiti工作流详解完整教程
Activiti教程详解完整教程1.Activiti介绍Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人TomBaeyens是JBossJBPM的项目架构师,它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。1.1工作流引擎ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据,监控和管理流程的运行。1.2BPMN业务流程建模与标注(BusinessProcessModelandNotation,BPMN),描述流程的基本符号,包括这些图元如何组合成一个业务流程图(BusinessProcessDiagram)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)打开HelpInstallNewSoftwareAdd输入Name:ActivitiDesignerLocation:输入完成后,单击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确定然后右键项目Properties,选择DeploymentAssembly,将test相关目录Remove掉之保留main下面需要发布的内容,如下图然后点击Appply和OK然后在pom.xml文件中添加以下依赖dependenciesdependencygroupIdorg.Activiti/groupIdartifactIdActiviti-engine/artifactIdversion5.21.0/version/dependencydependencygroupIdorg.Activiti/groupIdartifactIdActiviti-spring/artifactIdversion5.21.0/version/dependencydependencygroupIdorg.codehaus.groovy/groupIdartifactIdgroovy-all/artifactIdversion2.4.3/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion1.7.6/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-jdk14/artifactIdversion1.7.6/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion3.8.1/versionscopetest/scope/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.38/version/dependency/dependencies然后在命令行下mvncompile编译当前项目,将需要的包下载到本地仓库2.4.2初始化数据库1)src/main/resource目录下创建Activiti.cfg.xml文件,内容如下?xmlversion=1.0encoding=UTF-8?beansxmlns=:xsi=:context=:tx=:jee=:aop=:schemaLocation=://://://://://://://://://=processEngineConfigurationclass=org.Activiti.engine.impl.cfg.StandaloneProcessEngineConfigurationpropertyname=jdbcDrivervalue=com.mysql.jdbc.Driver/propertyname=jdbcUrlvalue=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8/propertyname=jdbcUsernamevalue=root/propertyname=jdbcPasswordvalue=root/propertyname=databaseSchemaUpdatevalue=true//bean/beansjdbcUrl为你电脑数据库的urljdbcUsername为数据库用户名jdbcPassword为数据库密码2)在main/java目录下创建任意目录和类编写创建Activiti数据表方法publicclassCreateTable{/*****创建流程表**/@TestpublicvoidcreateTable(){ProcessEngineprocessEngine=ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(Activiti.cfg.xml).buildProcessEngine();System.out.println(------processEngine:+processEngine);}}然后运行该测试方法,如果运行成功,在数据库中应该会产生25张Activiti的相关数据表2.4.3Activiti表说明下面是概括了几个常用的数据表流程部署相关表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任务相关表act_ru_task代办任务表(只对应节点是UserTask的)act_hi_taskinst代办任务历史表(只对应节点是UserTask的)act_hi_actinst所有节点活动历史表(对应流程的所有节点的活动历史,从开始节点一直到结束节点中间的所有节点的活动都会被记录)流程变量表act_ru_variable正在执行的流程变量表act_hi_variable流程变量历史表3.核心API3.1ProcessEngine说明:1)在Activiti中最核心的类,其他的类都是由他而来。2)产生方式ProcessEngineprocessEngine=ProcessEngines.getDefaultProcessEngine();3)可以产生RepositoryServiceRepositoryServicerepositoryService=processEngine.getRepositoryService();4)可以产生RuntimeServiceRuntimeServiceruntimeService=processEngine.getRuntimeService();5)可以产生TaskServiceTaskServicetaskService=processEngine.getTaskService();各个Service的作用RepositoryService管理流程定义RuntimeService执行管理,包括启动,推进,删除流程实例等操作TaskService任务管理3.2RepositoryServiceActiviti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片该service可以用来删除部署的流程定义。3.3RuntimeService是Activiti的流程执行服务类,可以从这个服务类中获取很多关于流程执行的相关的信息。3.4TaskService是Activiti的任务服务类。可以从这个类中获取任务的相关信息,如当前正在执行的个人待办和用户组待办任务。3.5Histor
本文标题:Activiti工作流详解完整教程
链接地址:https://www.777doc.com/doc-6125483 .html