activiti完整教程
Activiti6.0工作流使用说明文档V1.0

Activiti工作流使用说明文档V1.02019年8月9日目录一、模型设计器 (4)1.1任务 (5)1.1.1 用户任务 (5)1.1.2 服务任务 (5)1.1.3 脚本任务 (6)1.1.4 业务规则任务 (7)1.1.5 接收任务 (7)1.1.6 手动任务 (7)1.1.7 邮件任务 (8)1.1.8 Camel任务 (8)1.1.9 Mule任务 (8)1.1.10 决策任务 (9)1.2构造 (10)1.2.1 子流程 (10)1.2.2 事件子流程 (11)1.3泳道列表 (11)1.4分支 (12)1.4.1 排他分支 (12)1.4.2 并行分支 (12)1.4.3 包容分支 (13)1.4.4 事件分支 (13)1.5事件 (14)1.5.1 定时器事件 (14)1.5.2 信号事件 (14)1.5.3 消息事件 (16)1.5.4 错误事件 (16)1.5.5 边界事件 (17)1.5.6 中间事件 (18)1.5.7 开始事件 (18)1.5.8 结束事件 (18)1.6属性元素 (18)1.6.1 异步 (18)1.6.2 排他 (19)1.6.3 补偿 (19)1.6.4 中断任务 (20)1.6.5 分配 (21)1.6.6 到期时间 (22)1.6.7 表单 (22)1.6.8 表达式 (24)1.6.9 多实例 (25)1.7监听器配置 (28)1.7.1 执行监听器 (29)1.7.2 任务监听器 (30)1.7.3 事件监听器 (32)1.7.4 全局事件监听器 (33)二、workflow-service (34)2.1数据更新逻辑 (34)2.2方法表达式配置 (35)2.3自定义外置表单 (36)2.4事件监听器配置 (37)2.5方法调用说明 (37)三、常见问题 (37)一、模型设计器模型设计器项目qqdznyyglpt-workflow-designer主要完成自定义流程、表单设计,可以在模型设计器中完成整个功能的流转,但仅限与admin(密码默认为test)相同租户的用户可使用全功能,其他租户用户登录后只有流程设计、表单配置、决策表配置功能,无法在设计器进行流程执行。
Activiti6.0教程28张表解析(三)

Activiti6.0教程28张表解析(三)使⽤Activit的朋友都知道Activiti对应的有28张表,今天我们就来说下Activit中28张表对应的含义是什么?如何创建表?在Activiti中创建表有三种⽅式,我们依次来看下:⼀、通过硬编码的形式直接指定// 创建⼀个流程成引擎对像ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();// 设置数据库连接信息processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/db_activiti");processEngineConfiguration.setJdbcUsername("root");processEngineConfiguration.setJdbcPassword("");processEngineConfiguration.setDatabaseType("mysql");processEngineConfiguration.setDatabaseSchemaUpdate("update");// 设置⾃动创建表processEngineConfiguration.setDatabaseSchemaUpdate("true");// 在创建引擎对象的时候⾃动创建表ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();⼆、通过activit.cfg.xml配置⽂件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans.xsd"> <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/db_activiti?characterEncoding=utf8"/><property name="jdbcDriver" value="com.mysql.jdbc.Driver"/><property name="jdbcUsername" value="root"/><property name="jdbcPassword" value=""/><property name="databaseSchemaUpdate" value="true"/><property name="databaseType" value="mysql"></property></bean></beans>ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();三、使⽤配置⽂件,在资源⽬录下创建activiti-context.xml<!-- 创建流程引擎配置对象 --><bean id="ProcessEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration"><property name="jdbcDriver" value="com.mysql.jdbc.Driver"/><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/db_activiti"/><property name="jdbcUsername" value="root"/><property name="jdbcPassword" value=""/><property name="databaseSchemaUpdate" value="true"/></bean>代码⾥边读取加载配置⽂件String resource = "activiti-context.xml";String beanName = "ProcessEngineConfiguration";ProcessEngineConfiguration cf = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(resource, beanName); ProcessEngine processEngine = cf.buildProcessEngine();以上就是创建表的三种⽅式,接下来我们看创建好的表都有哪些?先上⼀张图,后⾯详细说。
activiti并发多实例子流程任务处理

activiti并发多实例⼦流程任务处理⼀直在搞⼯作流(activiti),总结⼀下关于⼯作流(activiti)中同时并发处理多个⼦流程的操作⽅法。
先说下我要实现的业务:1、办公室发通知(在系统申报页⾯上,勾选科室,被选中的科室执⾏第⼆步)2、科室科员填报数据3、科室科长做审核(注意这⾥的科长审核是对应第⼆步的科室,本科科长去审核本单位填报完的任务)4、办公室编制⽴项书,汇总数据好,需求就先这样,这⾥主要是给讲解⼀下关于⼦流程的使⽤,所以其他的需求就不往上写了。
先看⼀眼画好后的流程图:可以看到任务发起时(启动流程实例时)就进⼊了⼦流程中,这⾥需要关⼼的是怎么才能⽣成多个⼦流程呢,请看:接下来我们对这个⼦流程进⾏配置:注:1、Collection:可以存放集合,集合中可以存任意值,⼯作流会根据你集合⾥的值个数,去⽣成对应的⼦流程, 例如:我这⾥存的是3个科室code,{0001,0002,0003},那么就会⽣成出3个⼦流程, 其实这⾥我简单说明⼀下,如果只传⼊1个值会⽣成4个流程实例, 传2个会⽣成出6个流程实例(多出的两个,⼀个是⼦流程subprocess的,⼀个是流程中第⼀个任务的),以此类推。
2、Element variable:顾名思义就是节点流程变量,⽤于在流程图中代替集合中表⽰当前⼦流程的变量(我这存的是科室code,所以表⽰的就是科室code)。
这个节点流程变量可以在当前⼦流程中任意的task中使⽤,例如⼦流程中的任务我就⽤到了这个变量,稍后会有图详细说明 3、Completion condition:顾名思义就是完成条件,这⾥写的表达式如果满⾜即可到(第三步:⽴项书编制)这个任务,关于这⾥的配置, 给⼤家推荐⼀个⽹址介绍:接下来继续配置,我的业务需求是选中的科室做填报,并且有这个科室的科长去审核,那么我们接着去配置具体的⽤户任务(userTask)这⾥简单讲⼀下我做的这个项⽬的权限控制,我这⾥是通过权限点去控制显⽰每个任务的待办的权限,假如张三有PM10000101权限点,他就能看到任务中配置了PM10000101的待办,因为我的系统是三级树权限控制,⽤户--⾓⾊--权限点(功能点),所以我在⼯作流Candiate groups中配置的是功能点,各位可以根据⾃⼰系统的需要去合理配置。
Activiti使用步骤(IDEA)

Activiti使⽤步骤(IDEA)⼀.Activiti7体系架构通过加载activiti.cfg.xml⽂件得到ProcessEngineConfiguration对象,通过ProcessEngineConfiguration对象可以得到ProcessEngine对象得到该对象后,可以通过流程引擎对象ProcessEngine来得到各种Service,每⼀种Service接⼝有每个⽤途RepositoryService activiti 的资源管理类RuntimeService activiti 的流程运⾏管理类TaskService activiti 的任务管理类HistoryService activiti 的历史管理类ManagerService activiti 的引擎管理类⼆.Activiti使⽤步骤1.流程定义使⽤Activiti Designer⼯具创建流程图新建⼀个BPMNFile流程图,可更改该流程图的ID 和每个任务环节的执⾏⼈,流程图就是⼀个xml⽂件,每⼀个流程需要⽣成⼀张流程图保存, ⾸先将.bpmn⽂件改为.xml⽂件 然后右键该xml⽂件Diagrams--->show BPMN 2.0 Designer就能⽣成⼀张流程图, 将流程图导出保存到项⽬对应⽬录即可,然后将xml改回bpmn即可2.流程部署需要将流程部署到Activiti当中,代表当前有该流程/*** 流程部署* `act_ge_bytearray` 流程定义的资源信息,包含bpmn和png流程⽂件信息* `act_re_deployment` 流程部署信息,包含流程名称,ID,Key等* `act_re_procdef` 流程定义信息*/@Testpublic void deployment() {//获取ProcessEngine对象默认配置⽂件名称:activiti.cfg.xml 并且configuration的Bean实例ID为processEngineConfiguration ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//获取RepositoryService对象进⾏流程部署RepositoryService repositoryService = processEngine.getRepositoryService();//进⾏部署,将对应的流程定义⽂件⽣成到数据库当中,作为记录进⾏保存Deployment deployment = repositoryService.createDeployment().addClasspathResource("bpmn/holiday.bpmn") //加载流程⽂件.addClasspathResource("bpmn/holiday.png").name("请假流程") //设置流程名称.key("holidayKey").deploy(); //部署//输出部署信息System.out.println("流程名称:" + deployment.getName());System.out.println("流程ID:" + deployment.getId());System.out.println("流程Key:" + deployment.getKey());}3.创建流程实例流程定义相当于类流程实例相当于类的实例(对象)/*** 启动流程实例* `act_hi_actinst` 已开始和执⾏完毕的活动信息* `act_hi_identitylink` 历史参与者信息* `act_hi_procinst` 流程实例信息* `act_hi_taskinst` 历史任务实例* act_ru_execution 任务执⾏信息* act_ru_identitylink 当前任务参与者* `act_ru_task` 任务信息*/@Testpublic void startInstance() {//获取ProcessEngine对象默认配置⽂件名称:activiti.cfg.xml 并且configuration的Bean实例ID为processEngineConfiguration ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//获取到RuntimeService对象RuntimeService runtimeService = processEngine.getRuntimeService();//创建流程实例ProcessInstance holiday = runtimeService.startProcessInstanceByKey("myProcess_1");//红字是流程图的key值//输出实例信息System.out.println("流程部署ID:" + holiday.getDeploymentId());System.out.println("流程实例ID:" + holiday.getId());System.out.println("活动ID:" + holiday.getActivityId());}执⾏效果:`act_hi_actinst` 已开始和执⾏完毕的活动信息`act_hi_identitylink` 历史参与者信息`act_hi_procinst` 流程实例信息`act_hi_taskinst` 历史任务实例* act_ru_execution 任务执⾏信息* act_ru_identitylink 当前任务参与者* `act_ru_task` 任务信息4.⽤户查询代办任务/*** 查看代办任务*/@Testpublic void getTask() {//获取ProcessEngine对象默认配置⽂件名称:activiti.cfg.xml 并且configuration的Bean实例ID为processEngineConfigurationProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//获取⼀个TaskService对象TaskService taskService = processEngine.getTaskService();//查询代办业务 createTaskQuery查询任务 taskCandidateOrAssigned查询任务执⾏者 processDefinitionKey:查询流程/*** taskCandidateOrAssigned匹配规则:1.Assigned 2.配置bpmn⽂件中定义的值* taskAssignee匹配规则:1.Assigned*//*List<Task> list = taskService.createTaskQuery().taskCandidateOrAssigned("lisi").processDefinitionKey("holiday").list();*/List<Task> list = taskService.createTaskQuery().taskAssignee("zhangsan").processDefinitionKey("myProcess_1").list();//分页:List<Task> list = taskService.createTaskQuery().taskAssignee("zhangsan").processDefinitionKey("holiday").listPage(i,j);for (Task task : list) {System.out.println("任务名称:" + task.getName());System.out.println("任务执⾏⼈:" + task.getAssignee());System.out.println("任务ID:" + task.getId());System.out.println("流程实例ID:" + task.getProcessInstanceId());}}5.⽤户进⾏任务处理/*** 任务处理:当所有任务处理完毕,对应当前流程实例信息删除,但是可以在历史中查看到该信息*/@Testpublic void completeTask() {//获取ProcessEngine对象默认配置⽂件名称:activiti.cfg.xml 并且configuration的Bean实例ID为processEngineConfiguration ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//获取⼀个TaskService对象TaskService taskService = processEngine.getTaskService();//任务处理plete("2505");}先查看代办任务,再调⽤ plete(); ⽅法传⼊代办ID任务就被处理掉了上⼀步zhangsan被处理掉了,没有了代办任务,再查找zhangsan的下⼀步,lisi的代办任务发现lisi有了代办任务,数据库表也更新了处理完所有流程后ru表就为空了,数据都保存到了hi历史表6.流程结束7.当业务流程结束后通过历史可以查看到已经⾛完的流程/*** 查看历史任务*/@Testpublic void getHistory() {//获取ProcessEngine对象默认配置⽂件名称:activiti.cfg.xml 并且configuration的Bean实例ID为processEngineConfiguration ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//获取HistoryService接⼝HistoryService historyService = processEngine.getHistoryService();//获取历史任务HistoricActivityInstanceQuery historicActivityInstanceQuery = historyService.createHistoricActivityInstanceQuery();//获取指定流程实例的任务historicActivityInstanceQuery.processInstanceId("2501");//获取任务列表List<HistoricActivityInstance> list = historicActivityInstanceQuery.list();for (HistoricActivityInstance ai : list) {System.out.println("任务节点ID:"+ai.getActivityId());System.out.println("任务节点名称:"+ai.getActivityName());System.out.println("流程实例ID信息:"+ai.getProcessDefinitionId());System.out.println("流程实例ID信息:"+ai.getProcessInstanceId());System.out.println("==============================");}}。
activiti子流程的使用

activiti子流程的使用什么是子流程在activiti工作流引擎中,子流程是一个在主流程中被嵌入的可重复使用的流程。
子流程通常用于处理一些复杂的业务逻辑或者需要重复执行的任务。
为什么使用子流程使用子流程可以使主流程更加简洁和清晰,将复杂的业务逻辑拆分成小的任务单元,提高流程的可读性和可维护性。
此外,子流程还可以被其他流程调用,实现流程的模块化开发。
如何使用子流程使用activiti中的子流程需要以下几个步骤:1.定义子流程:首先,在流程设计器中定义一个子流程,包括子流程的任务节点、连接线和变量等。
2.在主流程中引用子流程:在主流程的某个任务节点中,添加一个子流程任务节点,并引用定义好的子流程。
3.设置子流程的输入和输出变量:在主流程中,可以通过设置子流程任务节点的输入和输出变量来控制子流程的执行和返回结果。
例如,可以将主流程中的某个变量传递给子流程,然后由子流程处理后返回给主流程。
4.执行流程:最后,利用activiti的API,启动流程实例,触发流程的执行。
子流程任务节点会被执行,子流程中定义的任务和逻辑会被执行,直到子流程结束并且返回结果给主流程。
子流程的注意事项•子流程是一个相对独立的流程,可以包含多个任务节点和处理逻辑。
但是,子流程的执行权总是控制在主流程中的子流程任务节点中。
•在子流程中可以使用任何activiti支持的任务节点、网关和事件节点等。
•主流程在引用子流程时,需要通过设置输入和输出变量来与子流程进行数据传递和交互。
•子流程的执行可以是串行的或并行的,具体取决于子流程中的任务节点类型和网关条件等设置。
•子流程的执行可以被主流程中的监听器和事件监听器等进行控制和干预。
示例以下是一个使用子流程的activiti流程图示例:主流程- 任务1- 任务2- 子流程1- 子任务1- 子任务2- 任务3在这个示例中,主流程包含了任务1、任务2、子流程1和任务3四个任务节点。
子流程1是一个子流程任务节点,包含了两个子任务节点。
IDEA教程之Activiti插件图文详解

IDEA教程之Activiti插件图⽂详解⽬录⼀、安装Activiti插件1.搜索插件2.开始安装3.安装进度4.安装完成5.查看结果⼆、使⽤Activiti1.创建BPMN⽂件2.绘制流程图3.导出图⽚4.解决中⽂乱码问题最新idea2020安装部署超详细教程本⽂作者:Spring_ZYL版权声明:本⽂版权归作者所有,转载请注明出处⼀、安装Activiti插件1.搜索插件点击菜单【File】-->【Settings...】打开【Settings】窗⼝。
点击左侧【Plugins】按钮,在右侧输出"actiBPM",点击下⾯的【Search in repositories】链接会打开【Browse Repositories】窗⼝。
2.开始安装进⼊【Browse Repositories】窗⼝,选中左侧的【actiBPM】,点击右侧的【Install】按钮,开始安装。
3.安装进度4.安装完成安装完成后,会提⽰【Restart IntelliJ IDEA】,重启IDEA即可完成安装。
5.查看结果打开【Settings】窗⼝,在【Plugins】中可看到安装的【actiBPM】插件,表⽰安装成功。
⼆、使⽤Activiti1.创建BPMN⽂件点击菜单【File】-->【New】-->【BpmnFile】输⼊⽂件名称,点击【OK】按钮会出现如下绘制界⾯2.绘制流程图⿏标左键拖拽右侧图标,将其拖下左侧界⾯上,同样的⽅式再拖拽其他图标⿏标移⾄图标的中⼼会变成⿊⽩⾊扇形,拖拽到另⼀图标,即可连接双击图标,可修改名称3.导出图⽚右击bpmn⽂件,选择【Refactor】-->【Rename】,修改其扩展名为.xml,点击【Refactor】接着右击此xml⽂件,选择【Diagrams】-->【Show BPMN 2.0 Diagrams...】,打开如下界⾯点击上图中【Export to file】图标,弹出【Save as image】窗⼝,点击【OK】即可导出png图⽚4.解决中⽂乱码问题在IDEA的安装⽬录,在下⾯两个⽂件中加上-Dfile.encoding=UTF-8重启IDEA,乱码问题解决最新idea2020安装部署超详细教程懂得懂的到此这篇关于IDEA教程之Activiti插件图⽂详解的⽂章就介绍到这了,更多相关IDEA Activiti插件内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
idea中activiti7 bpmn visualizer

在IntelliJ IDEA中使用Activiti 7的BPMN Visualizer,你可以按照以下步骤进行:1. 安装Activiti插件:打开IntelliJ IDEA。
点击顶部菜单栏的"File" -> "Settings"(或者在Mac上是"IntelliJ IDEA" -> "Preferences")。
在左侧菜单中选择"Plugins"。
在右上角点击"Marketplace"。
在搜索框中输入"Activiti",然后找到"Activiti BPMN Designer" 插件。
点击"Install" 安装插件,然后重启IDEA。
2. 创建或打开BPMN文件:在IDEA中,你可以通过"File" -> "New" -> "Other" -> "Activiti" -> "BPMN 2.0 Process" 来创建一个新的BPMN文件。
或者,你也可以直接打开已有的BPMN文件。
3. 使用BPMN Visualizer:在编辑BPMN文件时,你应该能在右侧看到"BPMN Visualizer" 窗口,显示你的流程图。
如果没有看到这个窗口,你可以通过右键点击BPMN文件的编辑区域,选择"Activate BPMN Visualization" 来打开它。
4. 设计和编辑流程图:使用工具栏中的元素来添加活动、网关、事件等元素到你的流程图中。
通过拖拽和连接元素来定义流程的路径和逻辑。
请注意,Activiti 7 已经更名为Alfresco Process Services (APS) ,并且其插件和支持可能会有所不同。
activiti部署与流程删除相关

activiti部署与流程删除相关Activiti是一个流程引擎,它提供了一套完整的流程管理解决方案。
Activiti的部署和流程删除是Activiti流程管理的重要功能之一、本文将详细介绍Activiti部署和流程删除的相关内容。
一、Activiti部署Activiti的部署是指将流程定义和流程资源发布到Activiti引擎中,以便后续可以使用这些定义来创建和执行流程实例。
Activiti支持多种方式的部署,包括手动部署和自动部署。
1.手动部署手动部署是指将流程定义和流程资源手动上传到Activiti引擎中。
手动部署需要通过Activiti的API或者管理界面来完成,具体步骤如下:(1)创建一个流程定义文件,通常使用BPMN2.0规范进行定义;(2)将流程定义文件上传到Activiti引擎中,可以使用Activiti提供的API或者管理界面进行上传;(3)部署成功后,Activiti会生成一个Deployment对象,该对象包含了部署相关的信息,如部署ID、部署时间等。
2.自动部署自动部署是指将流程定义和流程资源自动发布到Activiti引擎中。
Activiti提供了多种自动部署的方式,包括基于文件、基于类路径和基于数据库等。
具体步骤如下:(1)将流程定义文件放置在指定的目录下,或者将流程定义文件打包成一个jar包;(2)配置Activiti引擎,指定自动部署的方式和相关参数;(3)启动Activiti引擎后,它会自动扫描指定目录下的流程定义文件或者jar包,并将其发布到引擎中;(4)自动部署成功后,可以通过Activiti的API或者管理界面查看相关的部署信息。
二、流程删除流程删除是指将已经部署到Activiti引擎中的流程定义和流程实例删除。
Activiti提供了多种方式的流程删除,包括删除部署、删除流程实例和级联删除等。
1.删除部署删除部署是指将已经部署的流程定义和流程资源从Activiti引擎中删除。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.a ctiviti介绍Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。
Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss JBPM的项目架构师,它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。
1.1工作流引擎ProcessEngine对象,这是Activiti工作的核心。
负责生成流程运行时的各种实例及数据,监控和管理流程的运行。
1.2BPMN业务流程建模与标注(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输入Name: Activiti DesignerLocation: http://activiti。
org/designer/update/输入完成后,单击OK按钮等待下载完成后安装。
安装完成后在菜单选项中会出现activiti的目录选项2.3 设置eclipse activit插件的画流程图选项打开菜单Windows —-〉Preferences ——〉Activiti -->Save 下流程图片的生成方式勾选上Create process definition image when saving the diagram操作,勾选上这个操作后在画流程图后保存eclipse会自动生成对应的流程图片。
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掉之保留main下面需要发布的内容,如下图然后点击Appply和OK然后在pom。
xml文件中添加以下依赖〈dependencies><dependency>〈groupId>org.activiti〈/groupId〉〈artifactId>activiti-engine</artifactId>〈version>5。
21.0</version〉</dependency><dependency〉〈groupId>org.activiti〈/groupId>〈artifactId〉activiti-spring</artifactId>〈version〉5.21。
0〈/version></dependency><dependency><groupId〉org。
codehaus.groovy</groupId>〈artifactId〉groovy-all〈/artifactId>〈version>2。
4.3</version〉〈/dependency〉〈dependency>〈groupId>org.slf4j〈/groupId〉<artifactId>slf4j—api</artifactId〉<version>1。
7。
6〈/version>〈/dependency〉〈dependency>〈groupId〉org.slf4j〈/groupId>〈artifactId〉slf4j-jdk14</artifactId>〈version>1.7.6〈/version>〈/dependency>〈dependency>〈groupId>junit〈/groupId><artifactId>junit</artifactId>〈version〉3.8。
1</version〉<scope〉test</scope></dependency>〈dependency>〈groupId>mysql〈/groupId〉<artifactId〉mysql-connector-java</artifactId>〈version>5。
1。
38</version〉〈/dependency></dependencies〉然后在命令行下mvn compile 编译当前项目,将需要的包下载到本地仓库2.4.2 初始化数据库1)src/main/resource目录下创建activiti。
cfg.xml文件,内容如下<?xml version=”1。
0"encoding=”UTF-8"?〉<beans xmlns=”http://www。
/schema/beans" xmlns:xsi="http://www.w3。
org/2001/XMLSchema—instance”xmlns:context=”http://ww /schema/context”xmlns:tx="/schema/tx"xmlns:jee=”http:///schema/jee"xmlns:aop="http://www。
/schema/aop"xsi:schemaLocation="/schema/beans http://www.springframework。
org/schema/beans/spring—beans—3。
0.xsd/schema/context http://www.springframework。
org/schema/context/spring-context-3.0.xsd http://www。
/schema/tx/schema/tx/spring—tx-3。
0.xsdhttp://www.springframework。
org/schema/jee http://www。
/schema/jee/spring-jee-3.0。
xsdhttp://www。
/schema/aop http://www。
springframework。
org/schema/aop/spring-aop—3.0。
xsd"〉<bean id=”processEngineConfiguration”class=”org.activiti。
engine.impl.cfg。
StandaloneProcessEngineConfiguration"〉〈property name="jdbcDriver"value=”com。
mysql.jdbc。
Driver"/〉〈property name=”jdbcUrl”value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf8”/>〈property name="jdbcUsername”value=”root"/〉〈property name="jdbcPassword”value="root”/>〈property name="databaseSchemaUpdate”value="true”/> </bean〉</beans>jdbcUrl为你电脑数据库的urljdbcUsername为数据库用户名jdbcPassword为数据库密码2)在main/java目录下创建任意目录和类编写创建activiti数据表方法public class CreateTable {/*****创建流程表* */@Testpublic void createTable() {ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFro mResource(”activiti.cfg.xml”)。
buildProcessEngine();System。
out。
println("—-——-—processEngine:” + processEngine);}}然后运行该测试方法,如果运行成功,在数据库中应该会产生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 任务相关表act_ru_task 代办任务表(只对应节点是UserTask的)act_hi_taskinst 代办任务历史表(只对应节点是UserTask的)act_hi_actinst 所有节点活动历史表(对应流程的所有节点的活动历史,从开始节点一直到结束节点中间的所有节点的活动都会被记录)流程变量表act_ru_variable 正在执行的流程变量表act_hi_variable 流程变量历史表3。