flowable 启动流程的三种方式

简介: flowable 启动流程的三种方式
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
  }
}

 

目录
相关文章
|
存储 XML Java
Flowable工作流-高级篇
Flowable工作流-高级篇
5524 0
|
数据可视化 前端开发 Java
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)(一)
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)
3407 0
|
移动开发 前端开发
基于jeecg-boot的flowable流程审批时增加下一个审批人设置
基于jeecg-boot的flowable流程审批时增加下一个审批人设置
1109 0
|
9月前
|
前端开发 Java API
SpringBoot整合Flowable【07】- 驳回节点任务
本文通过绩效流程的业务场景,详细介绍了如何在Flowable工作流引擎中实现任务驳回功能。具体步骤包括:获取目标任务节点和当前任务节点信息,进行必要的判空和逻辑校验,调用API完成节点回退,并清理相关脏数据(如历史任务和变量)。最后通过测试验证了驳回功能的正确性,确保流程能够成功回退到指定节点并清除中间产生的冗余数据。此功能在实际业务中非常有用,能够满足上级驳回自评等需求。
959 0
SpringBoot整合Flowable【07】- 驳回节点任务
|
计算机视觉
树莓派开发笔记(五):GPIO引脚介绍和GPIO的输入输出使用(驱动LED灯、检测按键)
树莓派开发笔记(五):GPIO引脚介绍和GPIO的输入输出使用(驱动LED灯、检测按键)
树莓派开发笔记(五):GPIO引脚介绍和GPIO的输入输出使用(驱动LED灯、检测按键)
修正flowable的发起流程中根据用户信息流转不同的流程
修正flowable的发起流程中根据用户信息流转不同的流程
160 0
|
前端开发 数据库 JavaScript
基于Flowable的流程挂接自定义业务表单的设计与实践
文章讨论了如何在Flowable流程引擎中挂接自定义业务表单,以及相关设计和实践的步骤。文章中包含了一些前后端代码示例,如Vue组件的模板和脚本部分,这些代码用于实现与Flowable流程引擎交互的界面。例如,有一个按钮组件用于提交申请,点击后会触发applySubmit方法,该方法会与后端API进行交互,处理流程启动、查询关联流程等逻辑。
52816 11
Flowable流程的挂起与激活详解
Flowable流程的挂起与激活详解
722 1
|
存储 安全 网络协议
邮件协议揭秘:SMTP与IMAP的双重功能解析
SMTP和IMAP是电子邮件系统的核心协议,SMTP负责邮件发送,通过SSL/TLS保证安全,而IMAP则处理邮件接收和管理,支持服务器存储及状态同步。这两种协议相辅相成,为现代邮件系统提供了坚实基础。它们广泛应用于各种邮件客户端,确保了兼容性、功能丰富性和安全性,满足用户对电子邮件的多样化需求。
775 3
|
缓存 Shell 开发工具
Flutter环境搭建及版本管理
Flutter环境搭建及版本管理
270 0