package org.fh.controller.act; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.fh.controller.base.BaseController; import org.flowable.common.engine.impl.identity.Authentication; import org.flowable.engine.RuntimeService; import org.flowable.engine.runtime.ProcessInstance; /** * 说明:启动流程用 * 作者:FH Admin * from:fhadmin.cn */ public class AcStartController extends BaseController { @Autowired private RuntimeService runtimeService; //与正在执行的流程实例和执行对象相关的Service(执行管理,包括启动、推进、删除流程实例等操作) /**通过KEY启动流程实例(不带变量) * @param processInstanceKey //流程定义的KEY * @return 返回流程实例ID */ protected String startProcessInstanceByKey(String processInstanceKey){ ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processInstanceKey); //用流程定义的KEY启动,会自动选择KEY相同的流程定义中最新版本的那个(KEY为模型中的流程唯一标识) return processInstance.getId(); //返回流程实例ID } /**通过KEY启动流程实例(带变量) * @param processInstanceKey 流程定义的KEY * @param map 存流程变量 * @param USERNAME 流程发起人 * @return 返回流程实例ID */ protected String startProcessInstanceByKeyHasVariables(String processInstanceKey,Map<String,Object> map, String USERNAME){ Authentication.setAuthenticatedUserId(USERNAME);//设置流程发起人 ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processInstanceKey, map); //map存储变量 用流程定义的KEY启动,会自动选择KEY相同的流程定义中最新版本的那个(KEY为模型中的流程唯一标识) Authentication.setAuthenticatedUserId(null);//这个方法最终使用一个ThreadLocal类型的变量进行存储,也就是与当前的线程绑定,所以流程实例启动完毕之后,需要设置为null,防止多线程的时候出问题。 return processInstance.getId(); //返回流程实例ID } /**通过ID启动流程实例 * @param processInstanceId //流程定义的ID * @return 返回流程实例ID */ protected String startProcessInstanceById(String processInstanceId){ ProcessInstance processInstance = runtimeService.startProcessInstanceById(processInstanceId); //用流程定义的ID启动 return processInstance.getId(); //返回流程实例ID } }
相关推荐
3. **启动流程实例**: 部署完成后,可以使用`RuntimeService`的`startProcessInstanceByKey()`或`startProcessInstanceById()`方法来启动一个新的流程实例。前者通过流程定义的关键字(key),后者通过已部署流程...
Flowable是一个基于Java的轻量级业务流程管理(BPM)平台,它可以用来设计、管理和执行业务流程。随着技术的演进和用户需求的增加,Flowable也在不断地进行更新和迭代,提供更加稳定、高效和用户友好的解决方案。在...
Flowable流程引擎核心表分析 流程引擎的核心表是Flowable流程引擎的基础组件,用于存储流程引擎的各种数据。这些表可以配置为在启动时生成,所有的表都以“act_”开头,沿用了Activiti的传统。 Flowable流程引擎...
当启动一个流程实例时,Flowable会根据流程定义创建实例,并管理其执行过程。 3. **任务(Task)**:任务是流程中的工作单元,可以分配给不同的参与者。Flowable提供了丰富的任务API,如任务查询、任务完成、任务...
总的来说,Flowable画图工具是Flowable BPM平台的重要组成部分,它简化了业务流程的设计过程,提高了工作效率,而"flowable-ui.war"和"flowable-rest.war"文件则提供了完整的Web应用和服务接口,让开发者能够便捷地...
6. **集成与API**:Flowable 6.0的设计器可以与其他系统集成,如通过RESTful API与后端服务交互,实现数据同步和流程实例的启动。 7. **扩展性**:Flowable的在线设计器具有高度的扩展性,允许开发者自定义表单、...
Flowable支持BPMN 2.0,这是一种业务流程建模语言,允许业务分析师和开发者创建详细的流程图。BPMN包含了一系列的图形符号,如活动、网关、事件和流程线,用于描述业务流程的逻辑。在Flowable中,你可以使用这些符号...
"Flowable流程分析流程与表" Flowable是一个流程引擎,用于流程自动化和业务流程管理。Flowable提供了强大的流程引擎,可以对流程进行建模、执行和监控。 流程生命周期与数据库表之间的逻辑关系: Flowable流程...
Spring Boot则提供了快速启动和运行环境,简化了配置过程,使得Flowable能够轻松地与其他微服务协同工作。 在实际使用中,你需要了解如何创建和部署流程定义。Flowable提供了API和命令行工具,可以将BPMN XML文件...
5. **API与服务**:讲解Flowable提供的RESTful API和Java API,如何通过这些接口启动流程、查询任务、管理变量等。 6. **监听器与事件处理**:介绍如何定义和使用流程事件监听器,以实现定制化的业务逻辑。 7. **...
2. **表单支持**:Flowable支持与表单集成,允许用户在流程执行过程中填写和提交数据,提高了工作效率。它支持多种类型的表单,如HTML表单和模型驱动的表单。 3. **事件处理**:Flowable具备丰富的事件处理机制,...
开发者可以使用这些引擎提供的REST API或者Java客户端来启动、查询、干预和结束流程实例。同时,它们都可以与数据库(如MySQL、Oracle等)进行交互,存储和检索流程实例和历史数据。 开发和部署: 在开发过程中,...
Flowable是一款开源的工作流引擎,它基于BPMN 2.0标准,提供了一套强大的业务流程管理和自动化服务。在Flowable 6.5.0版本中,我们可以深入研究其核心组件、架构设计以及实现机制,这对于理解工作流管理系统的运作...
BPMN(Business Process Modeling Notation)是一种国际通用的业务流程建模语言,它为业务流程提供了一种图形化的表示方式,使得非技术人员也能理解和参与流程设计。Flowable能够解析并执行这些BPMN 2.0流程定义,...
- **启动流程实例**:根据需要,通过API启动流程实例,传入必要参数,如业务键、变量等。 - **查询任务**:获取当前用户的待办任务,完成任务或者转让任务。 - **查询流程实例**:查询流程实例的状态、历史记录等...
1. **流程定义**:BPMN(Business Process Model and Notation)是一种标准的流程建模语言,Flowable支持全部的BPMN 2.0元素,如事件、任务、网关、泳道等,让流程设计直观且灵活。 2. **事件处理**:Flowable提供...
在SpringBoot中集成flowable流程引擎及modeler可视化流程设计器项目完整源码,附有使用说明文档 1、使用开发工具eclipse或者idea等导入项目myflow 2、配置application.properties中的数据库连接,修改用户名和登录...
总的来说,SpringBoot集成Flowable Modeler为开发者提供了快速构建工作流应用的平台,它简化了流程设计、部署和执行的过程,同时也为企业提供了强大的流程管理能力。通过深入理解和熟练运用这些知识点,我们可以构建...