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

推荐订阅源

酷 壳 – 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开源工作流引擎高级开发(八) -- 审批网关(ApprovalOrSplit)模式的应用 .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流程引擎高级开发(九) -- 条件事件模式解释及应用
slickflowtea · 2021-11-08 · via 博客园 - slickflowteam

前言:在流程流转过程中,有时候需要条件模式的支持,这样可以使得流程流转更加灵活多变。比如在业务变量满足一定的条件时,可以启动特定配置的流程(或者位于主流程内部的子流程)。本文主要描述条件启动和条件中间流转的两种类型来满足业务过程的需要。

1. 条件启动

 如上图所示,这是一个条件启动的流程,开始节点的类型是条件节点,流程启动的要求是在条件节点上定义的条件表达式被满足。

 条件启动节点上的条件定义如上图所示,其中条件表达式: days==3,就是明确定义了流程启动需要满足的条件。days是条件变量,数值3表示需要满足的条件参数。在启动流程时,需要传递条件参数days的数值,如果days的数值恰好为3,流程就可以正常启动,如果不满足该条件,流程就不能启动。这种方式适合一些自动监控的流程,比如温度报警,欠款超额,信贷逾期等警示类型的监控处理。

2. 条件流转(中间条件事件)

正常运行中的流程,有时候会碰到一些条件类型的处理,比如设定满足一定的条件,流程才可以继续流转,否则流程就暂停等待在这里。比如一些投票流程,当投票人数超过设定好的数值后,表示用户同意流程继续流转,否则流程就暂停在当前位置,或者甚至作为自然终止的情况处理。

 上图定义了一个中间条件事件的节点,表示当运行完Task001后,当前流程会停留在该条件节点位置,等待条件变量,如果条件变量有更新变化,并且满足条件表达式,则流程可以流转到下面的Task003位置,否则流程一直保持停留状态。节点上的条件表达式定义如下:

条件表达式:@days-@days>3,其中@days1和@days表示流程变量,该变量需要从流程变量表中读取(WfProcessVariable),流程变量的更新和检测判断,是通过HangFire的后台作业轮询来处理。当自动作业检查到流程的两个变量@day1和@day2的数值后,然后再解析该条件表达式,如果满足,则流程正常向下流转。否则继续等待停留。

3. 结论

条件模式的应用,可以方便业务过程的警示类型的数据处理,比如温度过高的报警处理,或者账款数据逾期的报警处理。业务数据的数值范围通常代表不同的安全级别,条件模式的使用能够使得业务人员对业务数据的风险状况提前做出处理,有效化解了一些不必要的灾难或不良后果。这对于企业用户是非常有必要的。建议流程管理人员可以很好地使用条件模式,增强业务流程的可用性。