.NET 开源工作流: Slickflow流程引擎高级开发(八) -- 审批网关(ApprovalOrSplit)模式的应用
前言:业务流程流转过程中,审批类型的节点是比较常见的,在审批操作中,常见的操作就是就是主管人员对待办事项进行同意或者拒绝。所以网关处理节点,就是需要对这两种审批结果进行预备处理,审批网关是在或分支(OrSplit)的基础上,特意针对审批类型进行处理(同意或拒绝),跟或分支的区别方式是:条件参数不用每次配置,而是对连线(Transition)的属性进行快速配置就可以。审批网关建立的好处就是省去条件参数的传递,也简化编程过程中的条件(Condition)变量的维护。值得在流程中推广使用。
1. 或分支(OrSplit)介绍
或分支是一种决策结果的处理,通常可以在连线(Transition)属性上进行条件参数的配置,当条件表达式被满足时,可以走该分支,当条件参数不满足时,则会继续遍历下一个分支,依次完成该网关节点的执行。图形示例和条件表达式示例如下:
图1-或分支
2. 审批网关(ApprovalOrSplit)介绍
审批网关是在或分支的基础上进行的扩展,因为在一些审批过程中,对事项的处理要么是同意,要么是拒绝,结果导向非常明确,没有其它条件参数的干扰。所以针对这种类型,可以构建出一种专门的审批网关模式。跟或分支网关模式的区别是:不用配置条件参数,而是增加了审批结果:同意或拒绝的枚举类型设置。转移属性的配置页面如下图所示:
图2-同意分支配置
3. 普通流程的审批网关模式应用
在一个任务节点处理中,其后面可以直接绘制一个审批网关节点,这样当用户对该任务节点进行同意(Agreed)或者拒绝(Refused)的操作(可以调用WorkflowService接口),其对应的分支也会被选择。其示例图形如下:
图3-普通流程审批网关模式
4. 高级会签流程的审批网关模式应用
会签节点的处理,是多人对同一办理事项的集中投票处理,所以会签节点上面,会涉及到会签类型,会签通过率的设置等操作。会签模式可以跟审批网关模式结合使用,因为会签最终的结果就是要么同意,要么拒绝,所以非常适合审批网关模式的应用。会签流程图形示例如下:
图4-会签审批网关模式
在编程模型中,会签节点能否通过,需要计算会签节点的通过率,这个是根据每个会签实例节点上的审批状态(ApprovalStatus)的数值来进行计算。当实例中的会签同意数量达到通过率要求,才可以使整个会签节点通过,并且根据审批网关上的分支选择匹配的分支,这样不用额外的条件参数配置,简化了会签流程的处理。会签审批数据如下:
图5-会签节点审批状态数据
5. 总结
1) 审批网关(ApprovalOrSplit)可以被广泛应用在审批类型的节点操作中,因为其预备处理了同意或拒绝的两种结果处理,所以是比较方便的。
2) 在BPMN图形绘制过程中,我们始终明确保留了网关(Gateway)节点的绘制,这样比较方便业务人员对流程的理解,而有些厂商的流程模型中,可能在任务节点的属性上面配置了审批结果的分支选择。我们始终认为:图形中的网关节点的出现,是非常有助于用户对业务流程的理解,建议引擎开发人员或者流程管理员不能省略网关节点,形成良好的流程设计指导原则。
.NET 开源工作流: Slickflow流程引擎高级开发(八) -- 审批网关(ApprovalOrSplit)模式的应用的更多相关文章
- .NET 开源工作流: Slickflow流程引擎高级开发(七)--消息队列(RabbitMQ)的集成使用
前言:工作流流程过程中,除了正常的人工审批类型的节点外,事件类型的节点处理也尤为重要.比如比较常见的事件类型的节点有:Timer/Message/Signal等.本文重点阐述消息类型的节点处理,以及实 ...
- .NET 开源工作流: Slickflow流程引擎高级开发(十) -- BpmnJS流程设计器集成
前言: 在Slickflow产品开发过程中,前端流程设计器经历了几个不同的版本(jsPlumb, mxGraph等),目的是为了在设计流程时的用户体验更加良好,得到客户的好评和认可.BpmnJS流程设 ...
- .NET 开源工作流: Slickflow流程引擎高级开发(九) -- 条件事件模式解释及应用
前言:在流程流转过程中,有时候需要条件模式的支持,这样可以使得流程流转更加灵活多变.比如在业务变量满足一定的条件时,可以启动特定配置的流程(或者位于主流程内部的子流程).本文主要描述条件启动和条件中间 ...
- Slickflow.NET 开源工作流引擎高级开发(三) -- 并行分支容器与会签工作流模式的组合
前言: 流程引擎的核心功能是负责解析流程定义XML和流转,业务环节的不断积累,让人们不断总结和抽象出一些模式,这些模式统称为工作流模式(Workflow Pattern).本文的重点就是介绍一种常见 ...
- asp.net开源流程引擎API开发调用接口大全-工作流引擎设计
关键词: 工作流引擎 BPM系统 接口调用 工作流快速开发平台 工作流流设计 业务流程管理 asp.net 开源工作流 一.程序调用开发接口二. 接口说明 所谓的驰骋工作流引擎的接口,在B ...
- Slickflow.NET 开源工作流引擎高级开发(二) -- 流程快速测试增值服务工具介绍
前言:流程是由若干个任务节点组成,流转过程就是从一个节点转移到下一个节点,通常需要不断切换用户身份来完成流程的测试,这样使得测试效率比较低下,本文从实战出发,介绍常见的两种快速测试方法,用于提升流程测 ...
- Slickflow.NET 开源工作流引擎高级开发(一) -- 流程外部事件的调用和变量存储实现
前言:流程实现基本流转功能外,通常也需要调用外部事件,用于和业务系统的交互,同时存储一些流程变量,用于追踪和记录业务数据变化对流程流转的影响. 1. 流程事件 流程执行过程中,伴随各种事件的发生,而且 ...
- Slickflow.NET 开源工作流引擎高级开发(六) -- WebTest 引擎接口模拟测试工具集
前言:引擎组件的接口测试不光是程序测试人员使用,而且也是产品负责人员需要用到的功能,因为在每一步流转过程中,就会完整模拟实际用户发生的场景,也就容易排查具体是程序问题还是业务问题,从而快速定位问题,及 ...
- java工作流系统-流程引擎执行自定义URL
关键词:工作流快速开发平台 工作流流设计 业务流程管理 asp.net 开源工作流 bpm工作流系统 java工作流主流框架 自定义工作流引擎 概要介绍: 用户在表达自己的业务逻辑时 ...
随机推荐
- sql优化整理(一)
sql的编写语法是这样的: SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN < ...
- 一文带你趟过mac搭建appium测试环境的遇到的坑
做UI自动化,最难的一步就是在环境搭建上,怎么去搭建一个UI自动化测试的环境,会难住很多人,在Mac上搭建appium如何搭建呢,本文带着大家去领略如何在mac上搭建appium测试环境.下面就是详细 ...
- idea2019注册码,亲测可用(暂时不可用)!
原文链接:https://www.jianshu.com/p/702deab2447c 注册码: MNQ043JMTU-eyJsaWNlbnNlSWQiOiJNTlEwNDNKTVRVIiwibGlj ...
- 设计模式 | 职责链模式(Chain of responsibility)
定义: 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系.将这个对象连城一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. 结构:(书中图,侵删) 一个抽象的处理者 若干 ...
- 时间UTC格式装换php时间格式
date_default_timezone_get("UTC");date("Y-m-d", strtotime("2017-11-13T18:04: ...
- 2020 校招,我是如何拿到小米、京东、字节大厂前端offer
前言 Hi~,我是 2020 届物联网专业毕业生,现就读于杭州.谨以此文来记录我的秋招以及入门前端以来的学习历程,如有错误,希望大家能及时提出! 面试情况 从19年8月初到11月底,前前后后一共面试了 ...
- python00
# Python* [什么是 Python 生成器?](#什么是-Python-生成器)* [什么是 Python 迭代器?](#什么是-Python-迭代器)* [list 和 tuple 有什么区 ...
- 对Spark硬件配置的建议
对于Spark开发人员来说,一个比较普遍的问题就是如何合理的配置Spark的硬件?当然如何合理的对Spark集群进行硬件配置要视情况而定,在这里给出以下建议: 存储系统 在大数据领域,有一句" ...
- Jenkins(9)- 汉化 Jenkins 网站
如果想从头学起Jenkins的话,可以看看这一系列的文章哦 https://www.cnblogs.com/poloyy/category/1645399.html 下载插件 安装这两个插件,然后重启 ...
- 年轻人的第一个 Docker 应用,大大提高生产力!
上一篇:年轻人的第一个 Spring Boot 应用! 哈哈,标题我抄了雷总的,不重要哦,重要的是 Docker 真的很年轻,虽然现在才不到 8 岁,但却是个冉冉升起的巨星,火得一塌糊涂. 这几年 D ...