1.工作流入门

2023-10-24 12:12
文章标签 工作 流入

本文主要是介绍1.工作流入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


        应公司诉求,最近需要做一个业务物料相关的主数据创建流程审批项目,思前想后,记得以前接触过Activiti但很久没有使用了,咨询身边朋友发现他们已不再使用Activiti了,而使用Flowable来代替了。查阅相关资料了解到,Flowable其实就是Activiti的衍生物。

flowable中文文档地址:https://tkjohn.github.io/flowable-userguide/#_introduction

1、为什么需要⼯作流

在任何行业和企业中,都有各种各样的流程,例如:

  1. 请假流程
  2. 报销流程
  3. 入职流程
  4. 离职流程
  5. 出差流程
    等等……

就算你自己没有设计过工作流,那么你每天肯定也在使用各种流程。

2、工作流引擎使用场景

        工作流在企业管理系统中是高频使用的功能,一个最常见的例子是请假加班申请与审批的过程。事实上,工作流引擎能支持的业务场景远远不止单据审批,几乎所有涉及到业务流转、多人按流程完成工作的场景背后都可以通过工作流引擎作为支撑。基于工作流引擎,可以搭建客户关系管理系统(CRM)、运输管理系统(TMS)、仓储管理系统(WMS)、财务费用系统等多种复杂业务系统。对于达到一定规模的企业,良好的 BPM(业务流程管理,Business Process Management)体系可以支持创建公司内横跨不同部门的复杂业务流程,既提高工作效率、又可推动企业规范化发展。

3、三⼤⼯作流

        ⼀个⽐较早的⼯作流是 jBPM,这是⼀个由 Java 实现的企业级流程引擎,是 JBoss 公司开发的产品之⼀。
        jBPM 的创建者是 Tom Baeyens,这个⼤佬后来离开了 JBoss,并加⼊到 Alfresco,并推出了基于 jBPM4 的开源⼯作流系统 Activiti,⽽ jBPM 则在 后续的代码中完全放弃了 jBPM4 的代码。从这个过程中也能看出来,jBPM 在发展 过程中,由于意⻅相左,后来变成了两个 jBPM 和 Activiti。
        然⽽戏剧的是,Activiti5 没搞多久,从 Activiti 中⼜分出来⼀个 Camunda,Activiti 继续发展,⼜从中分出来⼀个 Flowable 。。。
        j由于开发 jBPM、Activiti、Camunda 以及 Flowable 的⼈多多少少有⼀些关 联性,让⼈不得不猜测意⻅相左拉⼀票⼈出来单⼲是他们的企业⽂化。 所以现在市⾯上主流的 流程 引擎就⼀共有三个:

  • Activiti
  • Flowable
  • Camunda

这三个各有特点:

  1. Activiti ⽬前是侧重云,他⽬前的设计会向 Spring Cloud、Docker 这些去靠 拢。
  2. Flowable 核⼼思想还是在做⼀个功能丰富的流程引擎⼯具,除了最最基础的⼯作流,他还提供了很多其他的扩展点,我们可以基于 Flowable 实现出许多我们想要的功能,这也是⼩伙伴们觉得 Flowable 使⽤复杂的原因之⼀。
  3. Camunda 相对于前两个⽽⾔⽐较轻量级,Camunda 有⼀个⽐较有特⾊的功能就是他提供了⼀个⼩巧的编辑器,基于 bpmn.io 来实现的。如果你的项⽬需求是做⼀个轻巧的、灵活的、定制性强的编辑器,⼯作流是嵌⼊式的,那么可以选择 Camunda。

4、流程图

        上面提到过3种工作流,这三个不同的⼯作流画出来的流程图都是相同的。⼯作流程图这块其实有⼀个统⼀的标准,那就是 BPMN。BPMN 全称是 Business Process Model and Notation,中⽂译作业务流程模型和标记法。
        这是⼀套图形化表⽰法,⽤图形来表⽰业务流程模型。BPMN 最初由业务流程管理倡议组织(BPMI, Business Process Management Initiative)开发, BPMI 于 2005 年与对象管理组织(OMG, Object Management Group)合并, 并于 2011 年 1 ⽉ OMG 发布 2.0 版本,同时改为现在的名称。
        ⼀句话,就是流程图这块有⼀个特别古⽼的规范,那就是 BPMN,⽽我们前⾯所说的⽆论是 Activiti、 Flowable 还是 Camunda,都是⽀持这个规范的,所以呢, ⽆论你使⽤哪⼀个 流程引擎,都可以使⽤同⼀套流程图。
在这里插入图片描述
从上图中可以看到,⼀个 流程 图中主要包含四⽅⾯的内容:

  1. 事件
  2. 连线
  3. 任务
  4. ⽹关

事件
⾸先在⼀个流程图中应该有开始事件和结束事件,也就是上图⼤家看到的两个圆圈。 另外还有⼀些中间事件、边界事件等。举个中间定时事件的例⼦,⽐如⽤户下单之 后,可以有⼀个中间定时事件,延迟 5 分钟发货。

连线
连线就是将事件、 任务 、⽹关等连在⼀起的线条,⼀般情况下就是普通连线,有的时候连线会有⼀些条件,如果经理审批通过,就载⼊图纸准备⽣产,如果经理审批不通过,就重新设计。

任务

  1. 接收任务
    在这里插入图片描述
    在上⾯的流程图中,等待准备⼯作完成这⼀项就是⼀个接收任务 。这个任务⾥并不需要额外做什么事情, 流程到这⼀步就⾃动停下来了,需要⼈⼯去点⼀下,推动流程继续向下执⾏。
  2. 发送任务
    在这里插入图片描述
    这个⼀般⽤来把消息发送给外部参与者。
  3. 服务任务
    在这里插入图片描述
    这个⼀般由系统⾃动完成,其实说⽩了就是我们的⼀个⾃定义类,可以在⼀个⾃定义 类⾥边完成想要做的事情。
  4. 脚本任务
    在这里插入图片描述
    ⼀个⾃动化活动。当流程执⾏到脚本任务时,⾃动执⾏相应的脚本。
  5. 业务规则任务
    在这里插入图片描述
    BPMN2.0 新引⼊⽤来对接业务规则引擎,业务规则任务⽤于同步执⾏⼀个或多个规则。
  6. 用户任务
    在这里插入图片描述
    ⽤于为那些需要由⼈⼯参与者完成的⼯作建模。 虽然细分类别很多,但是仔细看,其实这⼏种⼜可以归为两⼤类:
  • 用户任务 :表⽰⼈⼯要介⼊做的事情。⽐如同意与否,或者输⼊⼀些参数,要让⼈⼯完成任务,就需要⼀个表单系统,让⼈⼯输⼊数据,或者显⽰数据给⼈看,这也是为什么 ⽤⼾ 任务 和表单系统结合在⼀起的原因,用户任务需要⽤户向引擎提交⼀个完成任务的动作,否则流程会暂停在这⾥等待。
  • 服务任务 :表⽰机器⾃动做的事情。调⽤服务的任务 ,这个服务可以是⼀个 Spring JavaBean,也可以是⼀个远程 REST服务, 流程 会⾃动执⾏服务任务 。
  1. 活动
    活动可以算是⼀种特殊的任务 。活动可以调⽤另外⼀个流程使之作为当前流程的⼦流程去运⾏。活动也可以分为用户活动、脚本活动等等。从显⽰上来说,活动⽐任务边框深⼀些。仅此⽽已。

  2. ⽹关

  • 互斥⽹关 :这种⽹关也叫排他性⽹关,这种⽹关有且仅有⼀个有效出⼝。
    在这里插入图片描述

  • 相容⽹关:这种⽹关会有多个出⼝,只要条件满⾜,都会执⾏。
    在这里插入图片描述

  • 事件⽹关:事件⽹关是通过中间事件驱动,它在等待的事件发⽣后才会触发决策。基于事件的⽹关允许基于事件作出决策。
    在这里插入图片描述

  • 并⾏⽹关:并⾏⽹关⼀般是成对出现的,上⾯⽣产笔记本的那个流程中,⽣产屏幕、键盘等并⾏操作,就是通过并⾏⽹关来实现的。
    在这里插入图片描述

这篇关于1.工作流入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/275093

相关文章

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所

未来工作趋势:零工小程序在共享经济中的作用

经济在不断发展的同时,科技也在飞速发展。零工经济作为一种新兴的工作模式,正在全球范围内迅速崛起。特别是在中国,随着数字经济的蓬勃发展和共享经济模式的深入推广,零工小程序在促进就业、提升资源利用效率方面显示出了巨大的潜力和价值。 一、零工经济的定义及现状 零工经济是指通过临时性、自由职业或项目制的工作形式,利用互联网平台快速匹配供需双方的新型经济模式。这种模式打破了传统全职工作的界限,为劳动

Smarty模板引擎工作机制(一)

深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解。 在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码: <?php$title="深处浅出之Smarty模板引擎工作机制";$content=

3.比 HTTP 更安全的 HTTPS(工作原理理解、非对称加密理解、证书理解)

所谓的协议 协议只是一种规则,你不按规则来就无法和目标方进行你的工作 协议说白了只是人定的规则,任何人都可以定协议 我们不需要太了解细节,这些制定和完善协议的人去做的,我们只需要知道协议的一个大概 HTTPS 协议 1、概述 HTTPS(Hypertext Transfer Protocol Secure)是一种安全的超文本传输协议,主要用于在客户端和服务器之间安全地传输数据

以太网交换机工作原理学习笔记

在网络中传输数据时需要遵循一些标准,以太网协议定义了数据帧在以太网上的传输标准,了解以太网协议是充分理解数据链路层通信的基础。以太网交换机是实现数据链路层通信的主要设备,了解以太网交换机的工作原理也是十分必要的。 1、以太网协议介绍 1.1以太网协议 以太网是当今现有局域网(Local Area Network, LAN)采用的最通用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号

JVM工作过程

将JVM工作过程粗略分为5个阶段,包括加载阶段、链接阶段、初始化阶段、执行阶段、回收阶段 其中, (1)加载阶段、链接阶段的解析部分主要由类加载器完成 (2)初始化阶段是由JVM的类加载机制在类加载过程的最后阶段自动触发的。 (3)执行阶段主要由执行引擎负责 (4)回收阶段主要是垃圾收集器(Garbage Collector)负责。 所以,在Java虚拟机(JVM)中,读取字节码文件、解析字节码

平时工作学习重要注意的问题

总体原则:抓住重点,条理清晰,可回溯,过程都清楚。 1 要有问题跟踪表,有什么问题,怎么解决的,解决方案。 2 要有常用操作的手册,比如怎么连sqlplus,一些常用的信息,保存好,备查。