首页 > 其他分享 >初识flowable

初识flowable

时间:2024-02-20 16:45:30浏览次数:26  
标签:结点 flowable 流程 任务 初识 审批 id

三个月前开始做flowable的项目,刚刚了解一些又中断了,乘着重新开始之前,赶快恶补一下。

相信大家在之前已经了解很多关于flowable的知识了,但是很乱,我也是这样。

1、对于一个流程来说,你肯定要开启流程。当提交人提交的那一瞬间,流程被开启。
这个开启方法需要我们自己去写,并且可以携带流程变量。这个变量可以干嘛,我暂时没搞清楚。
自己写的这个方法,最终还是调用flowable提供的一个RuntimeService.startProcessInstanceByKeyAndTenantId 方法。
这里面会涉及到三个名词 processDefinitionKey, businessKey, Map<String, Object> variables 这个后期再去查,流程变量放在act_hi_variable 和 act_ru_variable 中,可以存放提交人的姓名和id 以及businessKey

2、流程开启成功后,会生成一条流程实例,我们可以通过这个流程实例id找到很多东西,包括每一个结点的task任务信息,所以可以在我们的业务表保存下来这个id
但是流程是怎么来的呢?

具体流程是需要我们自己定义的,定义一个流程有两种方式 : 一种通过flowable-ui 画出流程图,然后生成对应的bpmn.xml,接着把xml放入项目resource目录下,flowable即可读取该流程定义。
还有一种就是我们组小伙伴用的硬编码方式。

系统要注入 FlowDefinitionService 这个bean,这是flowable提供的

大致分为 :
1、创建用户任务 2、创建节点间连线 3 给流程对象添加元素 4、处理开始和结束节点的连线信息 5、处理抄送人
处理完成后你就可以得到一个deployment流程定义,同时生成一个bpmn.xml

  • 创建用户任务:这个就是创建普通的UserTask节点,包括要判断是否该用户有领导的情况

3、现在提交成功了,提交后,最重要的就是审批,我们该如何进行审批操作?
在审批之前,有一个操作,就是我们需要知道当前结点进行到哪一步了,这里,我们可以获取流程运行视图,流程图需要有结点,以及历史活动、任务评论、申请人信息、历史数据(开始结束时间),当前任务位置,任务评论,处理直属领导,处理开始结点

接下来,即进入审批环节,审批,我的待办,我的已办 等等都属于任务task部分

  • 我的待办: 先通过流程定义key,找出当前assign的所有任务,接着过滤流程挂起的任务,即选出状态为activity的任务,然后包装剩下的任务,即可返回为我的待办
  • 我的已办:
  • 审批:审批只需要把当前审批人审批的任务id,评论拿到,接着直接进行 taskService.complete(taskId);完成该任务即可。
  • 拒绝:寻找流程实例当前任务的activeId,得到当前结点和结束结点。清空原有方向,设置新方向(结束结点),完成当前任务,回复原有方向

标签:结点,flowable,流程,任务,初识,审批,id
From: https://www.cnblogs.com/psuitj/p/18021222/flowable

相关文章

  • Flowable-网关
    首先,并行网关。顾名思义,就是通过这个网关,可以把一个顺序流分成多个顺序流来执行,然后再通过这个网关,把分出来的多条顺序流合并为一个顺序流继续执行。还是上个简单例子来演示一下,便于理解。流程图如下:直接启动该流程,完成开始后的第一个用户任务,数据库中的数据显示如下:可以看......
  • Flowable-排他网关
    排他网关只会选择一条顺序流,即当流程到达排他网关这个节点时,会按顺序(XML中定义的前后顺序)选择出口顺序流(sequenceFlow)计算其定义的条件,如果被计算的条件为True,则按照该出口顺序流向下执行。如果所有出口顺序流的条件都为False,则会抛出异常。在流程设计器内,排他网关位于Gatewa......
  • 01. 初识STM32
    一、什么是STM32  STM32,从字面上来理解,ST是意法半导体,M是Microelectronics的缩写,32表示32位,合起来理解,STM32就是指ST公司开发的32位微控制器。  STM32主要分两大块,MCU和MPU,MCU就是我们常见的STM32微控制器,不能跑Linux,而MPU则是ST在19年才推出的微......
  • 初识st表-P2880
    首先讲讲st表。这个东西呢,就是一种利用了倍增思想的预处理数据从而达到快速查询的功能。for(inti=1;i<=n;++i)scanf("%d",&f[i][0]);for(inti=1;i<21;++i){intt1=1<<i-1,t2;t2=t1<<1;for(intj......
  • 一、计算机初识
    一、计算机(电脑)的定义:可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。程序自动化:可以将预先编好的程序组纳入计算机内存,在程序控制下,计算机可以连续、自动地工作,不需要人的干预。高速:每秒万亿次,普通每秒亿次。二、计算机的发展过程1、古时:算盘、帕斯卡、莱布尼兹(八卦......
  • Java中的审批流:BPMN与Flowable
    最近闲来无事,研究了一下工作流框架。找到了一条可以实现审批流程的技术方向。我选择的后端工作流框架是Flowable,看文档应该是属于Activity的一个分支吧。使用教程文档地址在:GettingStarted·FlowableOpenSourceDocumentation(用百度/必应搜索,搜到的是Flowable的官网,最后这个......
  • Python文本转语音库:pyttsx3 初识
    1.安装pipinstallpyttsx32.示例#coding=utf-8importpyttsx3text="""在这个例子中,使用三引号可以创建多行字符串,换行符会自动包含在字符串中。请注意,在这些方法中,字符串的换行拼接可以根据需要进行布局,以增强代码的可读性和可维护性。"""engine=pyttsx3.init()......
  • 【揭秘OAuth协议 — Java安全认证框架的核心基石】 从初识到精通,带你领略OAuth协议的
    背景介绍在现代的网站中,我们经常会遇到需要用户登录的情况。然而,直接要求用户注册可能会显得繁琐,导致用户的流失。为了解决这个问题,网站可以采用OAuth授权机制。通过与像GitHub或其他第三方网站的认证授权合作,网站可以获取用户的相关信息,避免了繁琐的注册过程。在从第三方网站授权......
  • 01. 初识Git
    一、什么是Git  Git是免费的、开源的分布式版本控制软件,可以快速高效地处理从小型到大型各种项目。版本控制是一种记录文件内容变化,以便将来查阅特定版本的修订情况的系统。版本控件最重要的就是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。  集中......
  • 第一章:初识数据库
    第一章:初识数据库本章主要讲解数据库安装和数据库基本介绍,考虑易用性及普及度,本课程采取mysql进行教学。1.1初识数据库数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。该数据集合称为数据库(Database,DB)。用来管理数据库的计算机系统称为数据库管......