相关文章推荐
闷骚的紫菜  ·  find variable ...·  3 年前    · 

热水.2019.6.12日于北京

一、工作流是什么?

工作流是将一组任务组织起来以完成某个经营 过程 :定义了任务的触发顺序和触发条件,每个任务可以由一个或多个 软件系统 完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完成。

二、为什么要用工作流?

工作流技术通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务井对它们进行监控.可以提高办事效率、降低生产成本.提高企业生产经营管理水乎和企业的竞争力。实现现代企业经营过程自动化。

三、市面上有哪些工作流:

国外开源与商业版本:

国产:商业化有普元、西安协同,北京的东方易维。

国内开源:方正的fixflow,据于activity上二次开发的广州宏天、fixflow、jsite等。

国内著名oa: 泛微oa、志远oa、通达oat等。

四、工作流的规范:

WfMC: 1993年成立了工作流管理联盟,制定了WfMC规范(工作流参考模型)。

BPMN1.0:  2004年5月,制定了工作流建模语言的规范,简称BPMN.

BPMN2.0:  2011年推出BPMN2.0标准,2013年12月以推出BPMN2.0.2标准。目前的activity和flowable就是据于此标准进行的开发。

Flowable 核心内容 1.表结构讲解 工作流 程的相关操作都是操作存储在对应的表结构中,为了能更好的弄清楚 Flowable 的实现 原理 和细节,我们有必要先弄清楚 Flowable 的相关表结构及其作用。在 Flowable 中的表结构在初始化的时候会创建五类表结构,具体如下: ACT_RE :'RE’表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。 ACT_RU:'RU’表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。. 从基础讲起,结合应用场景,由浅到深细化讲解 BPM N和 Flowable 的相关组件,并结合具体实例,演示功能的使用和注意事项。最终结合Springboot搭建一套 工作流 系统,囊括一般项目中所需要的知识点, 理论 结合实际,让真正入门到熟练。 2 学习指南 2.1 Flowable 初体验 2.1.1 Flowable 是什么? 2.1.2 Flowable 和 Activiti 2.1.3 构建命令行应用程序 2.1.3.1 创建一个流程引擎 2.1.3.2 部署一个流程定义 2.1.3.3 启动一个流程实例 2.1.3.4 查询和完成一个任务 2.1.3.5 写一个JavaDelegate 2.1.3.6 查询历史数据 2.2 Flowable 整合Spring 2.3 Flowable 整合SpringBoot 2.4 Flowable 流程定义部署 2.4.1 使用xml部署 2.4.2 使用压缩文件部署 2.4.3 使用IO流部署 3 BPM N2.0简介 3.1 什么是 BPM N2.0 3.2 创建一个 BPM N 3.2.1 直接编写XML文件 3.2.2 使用插件编写 3.2.2.1 在线安装插件 3.2.2.2 离线安装 3.2.2.3 插件使用说明 4 BPM N2.0组成 4.1 事件 4.1.1 事件定义 4.1.2 计时器事件定义 4.1.2.1 timeDate 4.1.2.1.1 开始事件TimerStartEvent 4.1.2.1.2 中间事件TimerCatchingEvent 4.1.2.1.3 边界事件TimerBoundaryEvent 4.1.2.2 timeDuration 4.1.2.2.1 开始事件TimerStartEvent 4.1.2.1.2 中间事件TimerCatchingEvent 4.1.2.1.3 边界事件TimerBoundaryEvent 4.1.2.3 timeCycle 4.1.2.3.1 开始事件TimerStartEvent 4.1.2.3.2 中间事件TimerCatchingEvent 4.1.2.3.3 边界事件TimerBoundaryEvent 4.1.3 消息事件 4.1.3.1 开始事件MessageStartEvent 4.1.3.2 中间事件MessagecatchingEvent 4.1.3.3 边界事件MessageBoundaryEvent 4.1.4 错误事件 4.1.4.1 开始事件ErrorStartEvent 4.1.4.2 边界事件ErrorBoundaryEvent 4.1.5 信号事件 4.1.5.1 开始事件SignalStartEvent 4.1.5.2 中间事件 4.1.5.2.1 捕捉事件SignalCatchingEvent 4.1.5.2.2 抛出事件SignalThrowingEvent 4.1.5.3 边界事件SignalBoundaryEvent dream21st 4.1.6结束事件 4.1.6.1 错误结束事件ErrorEndEvent 4.1.6.2 中断结束事件TerminateEndEvent 4.1.6.2.1 中断结束事件案例一 4.1.6.2.2 中断结束事件案例二 4.1.6.3 取消结束事件 CancelEndEvent 4.1.7 补偿事件CompensationThrowing 4.1.8 网关 4.1.8.1 并行网关ParallelGateway 4.1.8.2 排他网关ExclusiveGateway 4.1.8.3 包容网关InclusiveGateWay 4.1.8.4 事件网关EventGateway 4.2 任务 4.2.1 用户任务UserTask 4.2.1.1 用户任务入门案例Assignee指定 4.2.1.2 CandidateUser和CandidateGroup指定 4.2.1.3 多人会签MultiInstance 4.2.1.4 动态表单 4.2.2 服务任务ServiceTask 4.2.3 手工任务ManualTask 4.2.4 接受任务ReceiveTask 4.2.5 调用流程CallActivity 4.2.5.1 固定子流程 4.2.5.2 动态子流程 4.3 容器 5 工作流 实战案例 5.1 实战案例一 5.1.1 部署流程定义 5.1.2 启动流程实例 5.1.3 查询待办任务 5.1.4 提交任务 5.1.5 查询候选任务 5.1.6 获取候选任务 5.1.7 通过流程实例ID查询任务流转图 5.2 实战案例二 工作流 是互联网中常见的应用场景,目前国内有很多厂商提供各种各样的 工作流 引擎。在国际也有一些知名的 工作流 引擎,比如:j BPM 和 Activiti 。 他们都老牌的 工作流 引擎。同时都遵循 BPM N 2.0的标准。今天我们来看看如果用这些开源的框架实现 工作流 。这里会以 Activiti 为例讲解 工作流 实现的 原理 ,其他的 工作流 也大致相同,希望对大家有启发。要点: 工作流 引擎如何工作 工作流 引擎服务架构 工作流 引擎数据... 实际生活中有一些例如办公类流程需要多个环节人员进行审批,以达到对整个 工作流 程的控制与掌握。为提高效率,借助计算机对业务流程自动化执行管理,而 Flowable 框架就可以帮助我们进行 工作流 程进行管理工作。而 Flowable 可以帮助我们即是业务流程发送了变更,我们的业务流程代码也无需进行更新。 Flowable 的资源管理类,提供了管理和控制流程发布包和流程定义的操作。除了部署定义流程之外,此服务还支持查询引擎的发布包和流程定义。 Flowable 的流程运行管理类,可以从这个服务类中获取很多关于流程执行的相关信息。 1、 Flowable 是什么 Flowable 是一个使用Java编写的轻量级业务流程引擎。 Flowable 流程引擎可用于部署 BPM N 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据,等等。这个章节将用一个可以在你自己的开发环境中使用的例子,逐步介绍各种概念与API。 Flowable 可以十分灵... import org. flowable .engine.*; import org. flowable .engine.impl.cfg.StandaloneProcessEngineConfiguration; import org. flowable .engine.repositor flowable 工作流 相关概念和ui图的使用: flowable 工作流 里面有几个比较重要的概念. 其中就是一个使用processEngine对象, processEngine对象可以调用 flowable 对象的service方法: 1、RepositoryService很可能是使用 Flowable 引擎要用的第一个服务。这个服务提供了管理与控制部署(deployments)与流程定义(process definitions)的操作。管理静态信息, 2、RuntimeService用于启动流... 对于 flowable 的认知一直是浅显的停留在 理论 了解上,并未深入学习研究,也没有完整的样例作品。了解过一些 原理 ,架构,表结构说明等等,但老实说,如果没有实战,这些 理论 性的东西在记忆中并不会保留太长久,很容易被遗忘掉。 一直以来想把流程引擎这块空缺补起来,无奈团队的项目中尚未有真正的流程应用,暂时不易投入人力和精力来做这部分的内容。 前段时间,架构师接手的项目中涉及到了流程引擎的应用开发,我推荐了 flowable ,也做了一些 理论 基础的讲解。也协助解决了一些比较基础的问题。 五一节前的那天下班前,负责后端 Flowable 是 BPM N的一个基于Java的软件实现,但是不仅仅限于 BPM N,还有DMN决策表和CMMN Case管理引擎,并且有自己的用户管理,微服务API的功能,是一个服务平台。是由开发了Acitivity6的开发人员,再次升级开发的。 今天在一个关于 flowable 的技术交流群中进行交流的时候,遇到一个人说每次重新部署应用的时候,流程会重新发布,特在此给大家,讲解下 原理 ,也希望我们在面对技术问题的时候都能谦让虚心的交流。 1 flowable 部署的模式有三种 也就是DeployMode属性有三个,对应的有三种部署策略... 二、 Flowable 基础 官方手册:https://tkjohn.github.io/ flowable -userguide/#_introduction 1.创建ProcessEngine <dependency> <groupId>org. flowable </groupId> <artifactId> flowable -engine</artifactId> <version>6.3 github地址:https://github.com/ flowable Flowable 是一个使用 Java 编写的轻量级业务流程引擎,使用 Apache V2 license 协议开源。2016 年 10 月, Activiti 工作流 引. 最常用的 工作流 引擎是 Activiti ,领导原本想用agile bpm ,但是想要组装整合到老项目上比较麻烦,最后选择了 flowable ,不管是springBoot项目还是spring的老项目,都能比较快速的整合起来。 Flowable 集成到项目的时候,原来的老项目已经有了用户,组/角色/组织,权限之类的表和业务设计,所以 工作流 自己在做一套用户,组的权限控制 会增加额外的维护成本。 flowable 是基于 Activiti 6开发的,所以数据库结构基本一致。在工作的应用中,以下文章给了很大的帮助,所以放一块分享一下。 什么是 BPM N 先来看下百度百科的定义: 由 BPM I(The Business Process Management Initiative)开发了一套标准叫业务流程建模符号( BPM N - Business Process Modeling Notation)。在 BPM I Notat...