activiti框架

本文深入探讨了Activiti流程引擎的使用方法,包括流程变量的传递、流程实例的开启、任务的查询与办理,以及与Spring框架的整合配置。通过具体代码示例,读者可以详细了解如何在实际项目中应用Activiti。

流程变量:流程变量所起到的作用是传递参数

设置流程的四种方式:①启动设置 ②任务完成设置 ③ runtimeService.setvars...() ④taskservice.setvars...()     

获取流程变量的两种方式:①runtimeService.getvars..,();  ②taskservice.getvars...()    

获取流程引擎:

public class ActivitiTest {
//方式一:ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
   //方式二:
public void test1() {
ProcessEngineConfiguration config = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResource(
"activiti-context.xml", "processEngineConfiguration");
ProcessEngine processEngine = config.buildProcessEngine();
}
}

部署流程开启流程实例,办理任务

/**
* 部署流程
*/
public void test2() {
RepositoryService repositoryService = processEngine
.getRepositoryService();
DeploymentBuilder deploymentBuilder = repositoryService
.createDeployment();
deploymentBuilder.addClasspathResource("test.bpmn");
deploymentBuilder.addClasspathResource("test.png");
Deployment deployment = deploymentBuilder.deploy();
}
/**
* 开启流程实例
*/
public void test3() {
ProcessInstance processInstance = processEngine.getRuntimeService()
.startProcessInstanceById("test:1:104");
String instanceId = processInstance.getProcessInstanceId();
System.out.println(instanceId);
}
/**
* 查询和办理任务
*/
public void test4() {
//查询任务
TaskQuery taskQuery = processEngine.getTaskService().createTaskQuery();
//添加查询条件
taskQuery.taskAssignee("user");
Task task = taskQuery.singleResult();
//办理任务
processEngine.getTaskService().complete(task.getId());
}

activiti与Spring的整合

<!-- 整合activity工作流框架 -->
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="dataSource"/>
<property name="transactionManager" ref="txManager"/>
<property name="databaseSchemaUpdate" value="true"/>
</bean>
<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
<property name="processEngineConfiguration" ref="processEngineConfiguration" />
</bean>
<bean id="repService" factory-method="getRepositoryService" factory-bean="processEngine"/>

 

### Activiti 框架概述 Activiti 是一种开源的工作流和业务流程管理 (BPM) 平台,基于 BPMN 2.0 标准构建。它允许开发者通过图形化的方式定义复杂的业务逻辑并将其集成到应用程序中[^1]。 #### 使用教程 ##### 安装与配置 要开始使用 Activiti,首先需要下载其库文件并将它们添加到项目的依赖项中。如果项目采用 Maven 构建,则可以在 `pom.xml` 文件中引入以下依赖: ```xml <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-basic</artifactId> <version>7.x.x</version> </dependency> ``` 完成依赖导入后,需初始化数据库表结构。可以通过运行 Activiti 提供的 SQL 脚本来创建必要的表[^2]。 ##### 创建第一个工作流 以下是实现简单审批流程的一个基本示例。此过程涉及设计 `.bpmn` 文件以及编写 Java 或 Spring 集成代码来启动流程实例。 - **`.bpmn` 文件** ```xml <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" targetNamespace="http://example.com/simple-process"> <process id="simpleProcess" name="Simple Process"> <!-- Start Event --> <startEvent id="start"/> <!-- User Task --> <userTask id="approveTask" name="Approve Request"/> <!-- End Event --> <endEvent id="end"/> <!-- Sequence Flow --> <sequenceFlow sourceRef="start" targetRef="approveTask"/> <sequenceFlow sourceRef="approveTask" targetRef="end"/> </process> </definitions> ``` 上述 XML 描述了一个简单的流程:从起点事件触发用户任务(批准请求),最后到达终点事件结束整个流程[^3]。 - **Java 启动代码** ```java import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; public class SimpleWorkflow { public static void main(String[] args) { // 获取默认的 Process Engine 实例 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); // 开始新流程实例 String processInstanceId = processEngine.getRuntimeService() .startProcessInstanceByKey("simpleProcess").getId(); System.out.println("Started new process instance with ID: " + processInstanceId); } } ``` 这段程序展示了如何利用 Activiti 的 API 来部署模型并启动一个新的流程实例[^4]。 #### 主要特性 1. **支持标准 BPMN 2.0**: Activiti 支持完整的 BPMN 2.0 规范,使得开发人员可以轻松地绘制复杂的企业级业务流程图。 2. **高性能引擎**: 经过优化的设计使其能够处理高并发场景下的大量事务操作而不会显著降低性能表现[^5]。 3. **灵活扩展能力**: 用户可以根据实际需求自定义行为节点或者插件机制来自由调整功能边界。 4. **多语言兼容性**: 不仅限于 Java 应用环境,在其他编程语言环境下也可以间接调用 RESTful 接口形式访问服务端资源[^6]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值