一。流程引擎API
org.jbpm.api.ProcessEngine是jbpm4所有的Service API 之源。
既所有的Service API(服务接口)都从ProcessEngine中获取。
ProcessEngine由配置文件获取
RepositoryService repositoryService = processEngine.getRepositoryService();
ExecutionService executionService = processEngine.getExecutionService();
TaskService taskService = processEngine.getTaskService();
HistoryService historyService = processEngine.getHistoryService();
ManagementService managementService = processEngine.getManagementService();
IdentityService identityService = processEngine.getIdentityService();
并且是线程安全的,可以保存在静态变量中。所有的线程和请求都可以使用同一个ProcessEngine对象。
二。其余API
1.那么在看看其他6个Api是如何获取的:
RepositoryService repositoryService = processEngine.getRepositoryService();
ExecutionService executionService = processEngine.getExecutionService();
TaskService taskService = processEngine.getTaskService();
HistoryService historyService = processEngine.getHistoryService();
ManagementService managementService = processEngine.getManagementService();
IdentityService identityService = processEngine.getIdentityService();
2.RepositoryService 了解
流程资源服务接口,提供对流程定义的部署,查询,删除等操作。
我的通俗理解:流程资源服务接口就是提供流程定义接口。
真的不喜欢官方文档的专业‘文字游戏’术语
如:
/***
* test deploy
*/
public void testDeploy(){
RepositoryService repository = processEngine.getRepositoryService();
//发布流程定义
String deploymentId = repository.createDeployment().addResourceFromClasspath("helloword.jpdl.xml").deploy();
//查看流程定义
List<ProcessDefinition> list = repository.createProcessDefinitionQuery().list();
for(ProcessDefinition pd:list){
System.out.println(pd.getId());
}
//删除流程定义
repository.deleteDeploymentCascade(deploymentId);
System.out.println(repository.createProcessDefinitionQuery().list().size());
}
3.ExecutionService了解
流程执行服务接口,提供启动流程实例,执行推进,设置流程变量等操作
我的通俗理解:流程执行服务接口就是提供操作流程实例接口。
String id = request.getParameter("id");
ExecutionService executionService = processEngine
.getExecutionService();
ProcessInstance processInstance = executionService
.findProcessInstanceById(id);
//启动流程实例
ProcessInstance pi = executionService.startProcessInstanceByKey("helloword");
//执行等待流程
pi = executionService.signalExecutionById(pi.getId());
//终止流程实例
executionService.endProcessInstance(pi.getId(), "cancle");
//删除流程实例
executionService.deleteProcessInstanceCascade(pi.getId());
设置流程变量操作
Map map = new HashMap();
map.put("owner", session.getAttribute("username"));
executionService.startProcessInstanceById(request
.getParameter("id"), map);
//查看流程实例
List<ProcessInstance> piList = executionService.createProcessInstanceQuery().list();
List<ProcessInstance> list = execution.createProcessInstanceQuery().list();
for(ProcessInstance pi2 :list){
System.out.println(pi2.getId());
}
4.TaskService 了解
人工任务服务接口。提供对任务的创建,提交,查询,保存,删除等操作
使用TaskService 对已经启动的流程查看任务列表(个人)
TaskService taskService = processEngine.getTaskService();
String username = (String) session.getAttribute("username");
List<Task> taskList = taskService.findPersonalTasks(username);
使用TaskService完成任务
ProcessEngine processEngine = Configuration.getProcessEngine();
TaskService taskService = processEngine.getTaskService();
Map map = new HashMap();
map.put("day", day);
map.put("reason", reason);
taskService.completeTask(taskId, map);
说明:
//根据指定的任务ID完成任务。
taskService.completeTask(taskId)
//根据指定的任务ID,同时设定变量来完成任务。
taskService.completeTask(taskId, map)
//指定outcome,下一步转移路径,完成任务。
taskService.completeTask(taskId,outcome)
//指定outcome,下一步转移路径,,同时设定变量来完成任务。
taskService.completeTask(taskId, out,map)
API允许设置变量,这里可以是MAP或者其他变量,这些在任务完成前将作为流程变量同步到流程实例中,
可以根据TaskId,和在MAP设置的KEY获取变量
eg:
taskService.getVariable(taskId, "owner")
5.HistoryService 了解
流程历史服务的借口,提供对流程历史库(已完成 的流程实例归档)中历史流程,历史活动实例等记录的查询操作
6.ManagementService 了解
流程管理控制服务接口
7.IdentityService 了解
身份认证服务接口 。提供对流程用户,用户组,成员关系的服务。
分享到:
相关推荐
OPPO 推搜广多业务多场景的统一预估引擎实践 (1).pdf
HR人事管理系统源码 项目描述 人事管理,对用户,部门,职位,进行管理 运行环境:jdk7+tomcat7+mysql+IntelliJ IDEA+maven 使用技术:spring+spring mvc+mybatis+ligerUI+jquery+metronic+jsp
内容概要:本文档详细介绍了《量化投资与风险管理》课程的背景、学习目标、课堂规则和课程考核方式。特别关注理论课程的学习,其中包括三次课后作业,主要考察学生的格式规范、内容全面性和答案正确性。实验部分则由多次作业组成,重点考查因子的有效性、数据处理能力和实验报告的质量,还要求学生能够独立设计因子并对其进行详尽分析。此外,实验课程还包括最终的成绩验收答辩。 适合人群:适用于正在参加《量化投资与风险管理》课程的学生或希望深入理解和掌握量化投资方法的研究者。 使用场景及目标:帮助参与者明确每个教学环节的任务指标及评判准则,提高实验技能,确保能按时按质完成各项任务。 阅读建议:建议仔细研读每条考核细则,注意实验报告的具体要求(如数据处理流程)和最终答辩所需材料。同时关注实验过程中可能出现的问题及其解决思路,有助于提升实践能力并获取更好的评价结果。
1、ioDraw 是免费的在线作图软件,用于制作流程图、思维导图、甘特图、白板手绘图、mermaid流程图、海报设计、折线图、柱状图、拓扑图、组织结构图、UML、ER和时序图、平面设计图、电子电路图等,无需注册即可使用 2、替代Visio的免费软件,无使用限制 3、适合程序员、白领、系统架构师、项目经理、平面设计师、产品经理使用 4、v3.1.0变更日志: 新增将文件保存到百度网盘。 新增对macOS的支持。 修复第三方平台文件列表页显示问题。
资源简介:计算机网络 - 思科模拟器 - Cisco Packet Tracer 令牌.zip 一、资源概述 本资源是一个压缩包(.zip格式),内含用于注册或激活思科(Cisco)Packet Tracer模拟器的令牌(Token)。Cisco Packet Tracer是一款由思科公司开发的网络模拟软件,它允许用户在没有实际硬件的情况下,通过模拟的网络环境进行网络配置、故障排除和实验。这款软件是学习计算机网络技术、CCNA(思科认证网络工程师)考试备考等不可或缺的工具。 二、资源用途 激活Packet Tracer:对于需要从思科官网下载或更新Packet Tracer软件的用户来说,有效的令牌是完成注册和激活流程的关键。本资源提供的令牌旨在帮助用户顺利完成这一过程,从而享受Packet Tracer提供的全部功能。 学习与实践:Packet Tracer为用户提供了一个直观且易于操作的模拟网络环境,用户可以在其中创建自定义网络拓扑、配置设备参数、模拟网络流量等。通过这一平台,用户可以深入学习网络协议、路由与交换技术、网络安全等领域的知识,并通过实践加深理解。
内容概要:本文提出了一种基于深度神经网络(DNN)与隐马尔科夫模型(HMM)相结合的新方法,用于非侵入性负载监测系统(NILM)中的单通道聚合功率信号拆解。传统FHMM方法需要每个负载的HMM模型,计算复杂度高,不适用于大型建筑。新方法为每个待提取负载训练一个带两种发射概率的HMM,一种模拟单个负载的高斯分布,另一种利用DNN建模聚合计量信号。该方法仅需聚合信号即可推断特定负载的状态序列。 适用人群:从事机器学习、智能电网、信号处理的研究人员和技术人员。 使用场景及目标:①从单通道聚合功率信号中提取个别电器设备的能耗情况;②优化能源管理和智能家居系统的能效。 其他说明:该方法通过实验验证了对不同类型的电器设备的有效性和准确性,尤其适用于低频数据集,如REDD数据集。
Java校园跑腿综合服务网平台小程序源码带部署搭建教程 源码包含:client 客户端+server 服务端+wxapp小程序 一款基于JAVA开发的多校综合服务平台源码,支持第三方跑腿,代拿代买一些东西等服务,支持多校区使用,源码分为前端和后台服务等 需要工具:linux系统宝塔面板,环境nginx、mysql、pm2管理器(它自带nodejs)安装部署搭建请参考源码里面的教程文档
内容概要:本文档详细介绍东莞市达锂电子有限公司UART/485通讯协议,包括协议的基本时序、地址分配、物理层参数以及各数据段的内容及其作用,旨在为嵌入式系统设计、通讯协议开发者提供全面的技术指导。文档内容涵盖了不同设备间的指令集定义、传输方式和具体的实施步骤,同时提供了详细的版本变更记录。文档还强调了各数据字段的具体格式和意义,并列举了几种常见数据包的构建方法。文档还介绍了故障状态的诊断编码以及各种异常情况的具体含义。 适合人群:硬件工程师、通讯协议工程师、电子系统集成师以及对UART/485通讯协议感兴趣的科研和技术人员。 使用场景及目标:①嵌入式系统的设计与开发;②硬件之间的通信测试与故障排除;③深入了解通讯协议的工作机制,提升产品稳定性。 阅读建议:本手册详细阐述了各项通讯参数和数据格式,因此在阅读过程中,需要特别关注具体的通讯参数设置、地址分配规则和数据校验方法,同时可以结合实际应用场景进行理解和测试。
复杂业务场景下的 Flutter 混合开发技术实践.pdf
C/S小型医院HIS门诊挂号收费管理系统源码 一、主要功能 1、字典维护:药品信息添加修改 收费项目管理 2、门诊管理:门诊挂号 划价 收费管理 药房发药管理等 3、销售管理:科室挂号 药品库存管理 二、注意事项 1、开发环境为Visual Studio 2010,数据库为SqlServer2008R2,使用.net 3.5开发。
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
<项目介绍> - 课题名称为基于MATLAB的汽车出入库计时计费系统,带有丰富的人机交互GUI界面。传统的车牌识别,仅仅是对车牌照片进行识别,显得中规中矩,不容易通过,并且难得高分,容易挂。因此计划要在此基础上有所创新方得可以避开其他千篇一律思路。因 此建议在车牌识别基础上加入出、入库识别,并且实行计算停车时间以及停车费用,计算剩余停车位的数量。整个设计在一个GUI界面上完成。 - 不懂运行,下载完可以私聊问,可远程教学 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
Java版快速开发框架后台管理系统源码 一套快速开发框架、脚手架、后台管理系统、权限系统,上手简单,拿来即用。为广大开发者去除大部分重复繁锁的代码工作。 后端采用spring boot、mybatis(已集成mybatis-plus增强插件,开发更迅速,可查看官方文档了解更多:mybatis-plus)、shiro框架 前端采用layui作为UI框架,实现90%的移动端自适应,支持主题更换 提供代码生成器(wiki使用文档),只需编写20%左右的代码, 剩下全部自动生成;支持一键及批量功能模块生成,并支持一定程度上的自定义配置并生成代码,相对比较灵活 功能模块:用户管理 部门管理 菜单管理 角色管理 字典管理 操作日志 代码生成 组件管理
1、资源内容地址:https://blog.csdn.net/abc6838/article/details/143816673 2、数据特点:今年全新,手工精心整理,放心引用,数据来自权威,且标注《数据来源》,相对于其他人的控制变量数据准确很多,适合写论文做实证用 ,不会出现数据造假问题 3、适用对象:大学生,本科生,研究生小白可用,容易上手!!! 4、课程引用: 经济学,地理学,城市规划与城市研究,公共政策与管理,社会学,商业与管理
# 基于Spring Boot和Apache RocketMQ的动态ZKMQ系统 ## 项目简介 本项目是一个基于Spring Boot框架和Apache RocketMQ消息中间件的动态ZKMQ系统。该系统主要用于动态管理和操作ZooKeeper节点,并通过RocketMQ实现消息的发布和订阅。系统支持动态注册服务、节点操作、消息监听等功能,适用于需要动态配置和管理的分布式系统场景。 ## 项目的主要特性和功能 1. 动态ZooKeeper节点管理 支持动态创建、更新、删除ZooKeeper节点。 提供节点变化的监听功能,实时响应节点变化事件。 2. RocketMQ消息发布与订阅 支持动态创建和管理RocketMQ消费者和生产者。 提供消息的发布、订阅和监听功能,支持并发和顺序消息处理。 3. 分布式原子操作 提供分布式原子整数操作,适用于需要全局唯一ID的场景。 4. JSON数据转换
【基于Springboot+Vue的设计与实现】高分通过项目,已获导师指导。 本项目是一套基于Springboot+Vue的管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为课程设计、期末大作业 包含:项目源码、数据库脚本、开发说明文档、部署视频、代码讲解视频、全套软件等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 环境说明: 开发语言:Java 框架:springboot,mybatis JDK版本:JDK1.8 数据库:mysql 5.7数据库工具:Navicat11开发软件:eclipse/idea Maven包:Maven3.3
时间序列 白银 间隔15分钟
创建vue+electron项目流程
# 基于C语言的图像分类预测系统 ## 项目简介 本项目是一个基于多层感知器(MLP)神经网络模型的图像分类预测系统。主要目标是处理图像数据并预测其类别。通过加载预训练的权重和接收用户提供的图像数据,通过神经网络进行预测。适用于机器学习中的图像分类任务。 ## 项目的主要特性和功能 1. 基于C语言实现具备良好的可移植性和性能。 2. 多层感知器(MLP)神经网络用于图像分类预测。 3. 预训练权重加载提高预测准确性。 4. 图像加载功能支持处理多个图像文件。 5. 神经网络层函数包含ReLU激活函数、Softmax函数等。 6. 用户交互支持连续加载图像数据进行预测。 ## 安装使用步骤 1. 下载源码下载项目的源码文件,解压并查看文件结构。 2. 安装编译器确保计算机已安装C语言编译器,如GCC。 3. 阅读代码阅读代码中的注释和说明,了解文件结构和功能。 4. 配置修改根据需要修改配置文件或权重文件路径。
基于SSM的智慧中医诊所管理系统(前后端代码)