网站首页 > 博客文章 正文
环境:Springboot2.3.12.RELEASE + Activiti7.1.0.M6
本篇内容:主要介绍服务任务的使用。
简介
在Activiti中服务任务是如下节点
一般使用服务任务的可能不是很多吧,那这个服务任务具体可以用来做什么呢?
当上一个任务节点执行完以后,我们需要流程能够自动地执行一些其它的操作,比如记录日志功能等,自动执行完以后自动的进入一下一个任务节点。接下来我们就以记录日志的功能介绍ServiceTask是如何使用的。
流程设计
编写服务类
public class LogService implements JavaDelegate {
@Override
public void execute(DelegateExecution execution) {
System.out.println("开始记录日志") ;
}
}
服务类需要继承JavaDelegate接口
为ServiceTask节点配置服务类
方式1:
直接指定服务类
方式2:
设置委托表达式
方式3:
自定义Spring Bean对象中的方法
以上3个方法都是能够执行本地的服务方法。
流程代码
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.st.org">
<process id="st" name="st" isExecutable="true">
<startEvent id="startevent1" name="Start"></startEvent>
<userTask id="usertask1" name="办公用品申请" activiti:assignee="${userId}"></userTask>
<serviceTask id="servicetask1" name="生成申请日志" activiti:expression="${customService.log(execution)}"></serviceTask>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
<sequenceFlow id="flow2" sourceRef="usertask1" targetRef="servicetask1"></sequenceFlow>
<endEvent id="endevent1" name="End"></endEvent>
<userTask id="usertask2" name="部门经理" activiti:assignee="${jl}"></userTask>
<sequenceFlow id="flow3" sourceRef="usertask2" targetRef="endevent1"></sequenceFlow>
<sequenceFlow id="flow4" sourceRef="servicetask1" targetRef="usertask2"></sequenceFlow>
</process>
<!-- ... -->
</definitions>
启动流程
@GetMapping("/start")
public R startProcess(String processDefinitionId, String userId) {
Map<String, Object> variables = new HashMap<>() ;
variables.put("userId", userId) ;
// 启动流程实例(同时启动第一步任务,当前启动审批流程及填写审批单一步完成)
ProcessInstance instance = ps.startProcessInstanceAssignVariables(processDefinitionId, variables) ;
// 当前执行的任务节点是“员工请假”
// 设置下一步执行的人
variables.put("jl", "20000") ;
ps.executionTask(variables, instance.getId());
return R.success() ;
}
执行结果:
act_ru_task运行时任务节点表
通过了服务任务然后进入了部门经理节点
ServiceTask服务节点任务到此结束完毕
完毕!!!
求个关注谢谢
Springboot整合工作流引擎Activiti(五)之网关路由
ElasticSearch RESTful接口详细说明(一)
ElasticSearch RESTful接口详细说明(二)
猜你喜欢
- 2024-10-18 一套集成工作流+地图引擎的快速开源平台源码
- 2024-10-18 Spring Boot + Security + MyBatis + Thymeleaf + Activiti 快速开发平台
- 2024-10-18 基于Java的快速开发平台-低代码集成工作流-快速开发表单系统
- 2024-10-18 30分钟学会:springboot+mysql+camunda开源工作流引擎
- 2024-10-18 工作审批流系统,快速落地平台(工作流和审批流的区别)
- 2024-10-18 Spring Boot 整合 xxl-job(spring boot整合thymeleaf)
- 2024-10-18 「低代码平台」springboot+Activiti7多实例(会签)流程实现(一)
- 2024-10-18 可视化Java工作流引擎开发,10分钟完成一个业务流程发布
- 2024-10-18 springboot+activiti7之拖拽表单k-form-design整合
- 2024-10-18 Activiti 6.0 流程引擎从零开始(第一天) 1
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 357℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)