Activiti学习笔记7 — ReceiveTask机器自动任务的使用
2024-10-07 21:22:55
一、 创建流程规则,如下图
二、发布流程
/**
* 2、发布一个流程
*/
@Test
public void testDeployProcess() {
RepositoryService repositoryService = processEngine.getRepositoryService();
DeploymentBuilder builder = repositoryService.createDeployment();
// 加载发布资源
builder.name("机器自动执行流程测试") // 设置流程显示别名
.addClasspathResource("receiveTask.bpmn") // 设置流程规则文件
.addClasspathResource("receiveTask.png"); // 设置流程规则的图片
// 发布流程
builder.deploy();
}
三、启动流程,并自动执行任务
/**
* 3、启动流程,并自动执行任务
*/
@Test
public void testStartProcess() {
// 获取服务对象的实例
RuntimeService runtimeService = processEngine.getRuntimeService(); String processDefinitionKey = "receiveTask";
// 自动执行与Key相对应的流程的最高版本
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey); String processInstanceId = processInstance.getId(); logger.info("Id:" + processInstance.getId()); //获取当前流程下Execution对象
Execution e1 = runtimeService
.createExecutionQuery()
.processInstanceId(processInstanceId) //每个流程的唯一标识
.activityId("汇总当天销售额") //每个活动的唯一标识
.singleResult();
Assert.assertNotNull(e1);
//自动逻辑的绑定-汇总当天销售额,进行一堆逻辑后,得到金额money
Double money = 888888.88d;
//把金额放入变量中
runtimeService.setVariable(e1.getId(), "销售额", money);
logger.info("汇总后当天的销售额是: " + money); //推动流程流转
runtimeService.signal(e1.getId()); //判断当前流程,是否仪在一个节点ID是“发短信给老板”的活动节点
Execution e2 = runtimeService
.createExecutionQuery()
.processInstanceId(processInstanceId) //每个流程的唯一标识
.activityId("发短信给老板") //每个活动的唯一标识
.singleResult();
Assert.assertNotNull(e2);
Double m = (Double) runtimeService.getVariable(e2.getId(), "销售额");
logger.info("老板,今天的销售额是:" +m); //推动流程流转
runtimeService.signal(e2.getId()); //检查结束状态
ProcessInstance pInstance = runtimeService
.createProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
Assert.assertNull(pInstance);
logger.info("机器自动任务流程成功执行!");
}
四、执行后的结果如下:
[INFO][2015-12-01 17:34:46,411][com.mcs.activiti.test.TestReceiveTask]Id:60001
[INFO][2015-12-01 17:34:46,570][com.mcs.activiti.test.TestReceiveTask]汇总后当天的销售额是: 888888.88
[INFO][2015-12-01 17:34:46,625][com.mcs.activiti.test.TestReceiveTask]老板,今天的销售额是:888888.88
[INFO][2015-12-01 17:34:46,783][com.mcs.activiti.test.TestReceiveTask]机器自动任务流程成功执行!
最新文章
- mount img
- SQL Server时间粒度系列----第4节季、年时间粒度详解
- 基于NodeJS的全栈式开发
- vscode调试HTML
- centos7 安装 notejs
- 字符串匹配的Boyer-Moore算法 详解 加 C# 实现
- eclipse运行时编码设置
- JSON解析和XML解析
- xcode 不值钱的动画UIButton
- 【LeetCode】144. Binary Tree Preorder Traversal
- exgcd求解同余方程的最小正整数解 poj1061 poj2115
- 【转载】systemctl命令完全指南
- Exception in Spark
- 20180226xlVbaGetStockData
- cookie session ORM 操作
- WIN7 下IIS7的rewrite伪静态功能设置方法
- 淘宝 code 使用
- flag -- 诡异的memcache标记
- Android 四大组件之 Activity(二)
- shell基础(八)-循环语句
热门文章
- csdn左侧个人栏目美化,css英文颜色大全,跑马灯效果,点击转到qq联系,点击转到发送邮件。
- IdentityServer4认证服务器集成Identity&;配置持久化数据库
- qemu源码分析
- error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include ";stdafx.h";”?
- 面向对象(五)——isinstance与issubclass、反射、内置方法
- centos7简单安装配置mariadb
- [USACO06JAN]牛的舞会The Cow Prom
- javascript中的insertBefore方法
- java中多线程产生死锁的原因以及解决意见
- kubeadm生成的token重新获取