activiti实例,要求每段代码都有解释,包含完整的流程,提交,同意,驳回,完成

时间: 2023-07-29 19:11:14 浏览: 42
Activiti是一个广泛使用的开源工作流引擎,可以帮助开发人员在应用程序中实现流程管理和业务流程自动化。下面是Activiti实例中的代码和解释,包括完整的流程,提交,同意,驳回,完成: 1.创建Activiti流程引擎和数据库连接 ```java ProcessEngine processEngine = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration() .setJdbcDriver("com.mysql.jdbc.Driver") .setJdbcUrl("jdbc:mysql://localhost:3306/activitiDB?useUnicode=true&characterEncoding=utf-8") .setJdbcUsername("root") .setJdbcPassword("root") .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE) .buildProcessEngine(); ``` 此代码创建了一个Activiti流程引擎,同时配置了数据库连接信息。 2.定义流程模型和流程图 ```java BpmnModel model = new BpmnModel(); Process process = new Process(); model.addProcess(process); process.setId("myProcess"); // 添加开始事件 StartEvent startEvent = new StartEvent(); startEvent.setId("startEvent"); process.addFlowElement(startEvent); // 添加用户任务 UserTask userTask = new UserTask(); userTask.setId("userTask"); userTask.setName("Approve"); process.addFlowElement(userTask); // 添加结束事件 EndEvent endEvent = new EndEvent(); endEvent.setId("endEvent"); process.addFlowElement(endEvent); // 添加连线 process.addFlowElement(new SequenceFlow("startEvent", "userTask")); process.addFlowElement(new SequenceFlow("userTask", "endEvent")); // 将流程图写入文件 BpmnXMLConverter converter = new BpmnXMLConverter(); byte[] bpmnBytes = converter.convertToXML(model); String processName = "myProcess.bpmn20.xml"; FileOutputStream fos = new FileOutputStream(processName); fos.write(bpmnBytes); fos.close(); ``` 此代码定义了一个简单的流程模型,包括开始事件、用户任务和结束事件,并将流程图写入文件中。 3.部署流程定义 ```java RepositoryService repositoryService = processEngine.getRepositoryService(); Deployment deployment = repositoryService.createDeployment() .addClasspathResource("myProcess.bpmn20.xml") .deploy(); ``` 此代码部署了流程定义,将流程图部署到Activiti流程引擎中。 4.启动流程实例 ```java RuntimeService runtimeService = processEngine.getRuntimeService(); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess"); ``` 此代码启动了一个新的流程实例,并将流程实例与流程定义关联起来。 5.提交任务 ```java TaskService taskService = processEngine.getTaskService(); Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); taskService.complete(task.getId()); ``` 此代码提交了任务,将任务标记为完成,并将流程实例移动到下一个任务。 6.同意任务 ```java Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); taskService.setVariable(task.getId(), "approved", true); taskService.complete(task.getId()); ``` 此代码同意了任务,并将“approved”变量设置为true,表示任务已经被批准。 7.驳回任务 ```java Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); taskService.setVariable(task.getId(), "approved", false); taskService.complete(task.getId()); ``` 此代码驳回了任务,并将“approved”变量设置为false,表示任务已经被拒绝。 8.完成流程实例 ```java Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); taskService.complete(task.getId()); ``` 此代码完成了流程实例,并将流程实例标记为已完成。

相关推荐

最新推荐

recommend-type

Activiti如何动态获取流程图过程详解

主要介绍了Activiti如何动态获取流程图过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
recommend-type

activiti实现员工请假流程解析

主要介绍了activiti实现员工请假流程解析,本文通过实例代码图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
recommend-type

Activiti12流程跟踪任务节点和线高亮显示

Activiti12流程跟踪任务节点和线高亮显示,能标记流程所走过节点和线为红色,未走过的节点和线不标记,支持驳回和子流程。
recommend-type

Activiti6 中文 用户指南 操作手册 开发API

Activiti6 中文 用户指南 操作手册 开发API,适合入门级java开发人员使用Activiti。
recommend-type

Activiti连接达梦数据库.pdf

目前国内部分公司做的项目要求去ioe使用国产的替代方案。数据从异构数据库中迁移到达梦,应用中使用Activiti工作流在替换了数据库驱动后,无法直接使用,本文介绍如何适配达梦数据库
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB结构体与对象编程:构建面向对象的应用程序,提升代码可维护性和可扩展性

![MATLAB结构体与对象编程:构建面向对象的应用程序,提升代码可维护性和可扩展性](https://picx.zhimg.com/80/v2-8132d9acfebe1c248865e24dc5445720_1440w.webp?source=1def8aca) # 1. MATLAB结构体基础** MATLAB结构体是一种数据结构,用于存储和组织相关数据。它由一系列域组成,每个域都有一个名称和一个值。结构体提供了对数据的灵活访问和管理,使其成为组织和处理复杂数据集的理想选择。 MATLAB中创建结构体非常简单,使用struct函数即可。例如: ```matlab myStruct
recommend-type

详细描述一下STM32F103C8T6怎么与DHT11连接

STM32F103C8T6可以通过单总线协议与DHT11连接。连接步骤如下: 1. 将DHT11的VCC引脚连接到STM32F103C8T6的5V电源引脚; 2. 将DHT11的GND引脚连接到STM32F103C8T6的GND引脚; 3. 将DHT11的DATA引脚连接到STM32F103C8T6的GPIO引脚,可以选择任一GPIO引脚,需要在程序中配置; 4. 在程序中初始化GPIO引脚,将其设为输出模式,并输出高电平,持续至少18ms,以激活DHT11; 5. 将GPIO引脚设为输入模式,等待DHT11响应,DHT11会先输出一个80us的低电平,然后输出一个80us的高电平,
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。