惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - slickflowteam

Slickflow 规则集与 NRules 集成实践:从设计到产品落地 Slickflow.NET 与 OpenClaw 结合实践:技术原理、集成方式与 Skill 说明 Slickflow.NET 基于 AI 大模型实现智能客服多轮问答系统 .NET 开源工作流:Slickflow 流程自动化运行技术指南 .NET 开源工作流: Slickflow.NET 工作流引擎关于AI大模型的应用实践 .NET 开源工作流: Slickflow流程引擎高级开发(十) -- BpmnJS流程设计器集成 .NET 开源工作流: Slickflow流程引擎高级开发(九) -- 条件事件模式解释及应用 .NET 工作流: Slickflow开源工作流引擎高级开发(七)--消息队列(RabbitMQ)的集成使用 .NET 工作流: Slickflow开源工作流引擎快速入门之四:--SlickGraph 流程模型编码建模工具使用手册 .NET 工作流: Slickflow开源工作流引擎快速入门之三: 简单或分支流程代码编写示例 .NET 工作流: Slickflow开源工作流引擎快速入门之二: 简单并行分支流程代码编写示例 .NET 工作流: Slickflow开源工作流引擎快速入门之一: 简单序列流程代码编写示例 .NET 工作流: Slickflow开源工作流引擎级开发(六) -- WebTest 引擎接口模拟测试工具集 .NET 工作流: Slickflow开源工作流引擎开发(五) -- 引擎和外部事件的交互 .NET 工作流: Slickflow开源工作流引擎高级开发(四) -- 硬核编码:代码式快速构建流程图 .NET 工作流: Slickflow开源工作流引擎高级开发(三) -- 并行分支容器与会签工作流模式的组合 .NET 工作流: Slickflow开源工作流引擎高级开发(二) -- 流程快速测试增值服务工具介绍 .NET 工作流: Slickflow开源工作流引擎高级开发(一) -- 流程外部事件的调用和变量存储实现 .NET 工作流: Slickflow开源工作流引擎基础介绍(十) -- 邮件轮询异步发送模块集成
.NET 工作流: Slickflow开源工作流引擎高级开发(八) -- 审批网关(ApprovalOrSplit)模式的应用
slickflowtea · 2020-11-23 · via 博客园 - slickflowteam

前言:业务流程流转过程中,审批类型的节点是比较常见的,在审批操作中,常见的操作就是就是主管人员对待办事项进行同意或者拒绝。所以网关处理节点,就是需要对这两种审批结果进行预备处理,审批网关是在或分支(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)节点的绘制,这样比较方便业务人员对流程的理解,在有些厂商的流程模型中,是在任务节点的属性上面配置了审批结果的分支选择。图形中的网关节点的出现,比较有助于用户对业务流程的理解,值得用户采纳使用。