[.NET项目实战] Elsa开源工作流组件应用(一): Elsa工作流简介

使用.net 构建 Elsa Workflow 对接过蓝凌OA 也基于泛微OA数据库原型重新研发上线过产品,自研的开源的也上线过 每个公司对OA流程引擎介绍 都不一样的, 比如Elsa 这块微软MVP 开源产品 这个,基于跨平台开发的技术含量高,专门做OA的同行推过对应文章。二章 改成API 使用的预发行版本 即还没有成为正式发布的版本!然后就潜规则 官网居然 直接就 下一页 不告诉怎么搞了 哈哈哈哈。---分割线------------------------已知的是1用这个就能拿到token了还要其他干啥。三章 开始用用核心点的东西了。 阅读详情
AI摘要

本文介绍了Elsa,一个强大的.NET工作流库,用于抽象和描述工作流程及规则。它支持活动、工作流设计、上下文系统、阻断/恢复功能和设计器,适用于长时间运行到事件驱动的各种场景。工作流定义和实例化是其核心概念。

Elsa工作流简介

工作流是什么?

引用维基百科中对工作流的解释:

是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算

Elsa 是一个功能强大的工作流库,支持在任何 .NET 应用程序中执行工作流。Elsa 可以使用C#代码或使用基于Web的可视化设计器生成JSON等方式定义工作流程。

Elsa 可用于多种场景,包括:

  • 长时间运行的工作流程,例如订单履行和产品批准。
  • 运行时间较短的工作流程,例如发送电子邮件和生成 PDF。
  • 计划的工作流,例如发送每日报告。
  • 事件驱动的工作流,例如在用户注册时发送欢迎电子邮件。

Elsa免费且开源,并且有较完善的文档,了解更多请访问官网和官方仓库

工作流的基本概念

要定义一个工作流,需要包含两个最基本的信息:

  1. 对一系列任务的执行过程的描述;
  2. 各任务之间执行关系的描述。

在Elsa中,这些被抽象为:

  1. 活动(Activity): 执行任务的实体,如:写入文本、发送邮件、执行SQL、执行HTTP请求等;
  2. 工作流(Workflow):包含多个活动,以及活动之间的执行关系, 如:并行、串行、分支、循环等;

有了活动和工作流,就可以描述一个任务的执行过程了。但为了满足业务的复杂性,Elsa还引入了更多的功能和概念。

上下文系统

活动的本质是执行任务,任务的执行需要数据支持,或返回结果。下游的任务也可能依赖于上游任务的返回结果,如:一个发送执行结果邮件任务,需要知道接收信息和前一个任务的执行结果。上下文系统就是用来支持任务执行过程中的数据传递的。

上下文系统包括:

  • 变量(Variable);
  • 工作流输入/输出(Input/Output);
  • 活动输入/输出;
  • 结果(OutCome)。

阻断/恢复功能

一些场景下,任务不会连续执行,需要暂停任务,任务恢复后,需要继续执行。
这些场景包括:

  • 延时触发,或按计时器规则触发的任务;
  • 接收到某个消息才执行的任务。

这些功能在Elsa中使用书签(Bookmark) 和 事件(Event)等类型实现。

设计器(Designer)

硬编码的方式已经无法满足复杂的业务场景,设计器可以将工作流设计为一个图形化的界面,用户可以拖拽活动,连线,设置活动的属性;活动被打包成一个节点(Node),与活动之间的连线表示活动之间的依赖关系。

在这里插入图片描述

定义(Definition)与实例化(Instance)

工作流定义描述了一个工作流的结构,比如:名称,变量,包含的活动等,可以理解为一个工作流的模板。

工作流定义在Elsa初始化时会“注册” 到资源池中,每个工作流定义都有一个唯一的ID。

使用设计器生成的工作流,通过序列化成JSON字符串,并持久化到数据库。
使用硬编码创建的工作流,在Elsa初始化时将工作流注册到工作流定义并持久化到数据库。

实例化是根据定义创建一个工作流的实例,工作流实例包含工作流状态(WorkflowState)以及活动实例(ActivityState)。与定义一样,它们通过序列化成JSON字符串,并持久化到数据库。当程序重新启动时,会从数据库中恢复工作流实例。

Elsa Workflow 一些概念 这些概念构成了.NET Core Elsa Workflow的核心,理解它们是使用该框架的关键。通过结合这些概念,你可以构建复杂的工作流应用程序来自动化业务流程和任务。.NET Core Elsa Workflow包含许多重要的概念,这些概念是理解和使用工作流引擎的关键。 阅读详情

相关推荐

flowable工作流 流程变量_.NET 5 开源工作流框架elsa技术研究

(给DotNet加星标,提升.Net技能)转自:Eric zhoucnblogs.com/tianqing/p/14221030.html研究.NET 5开源工作流框架elsa,现在分享给大家。一、框架简介elsa是一个开源的.NET Standard 工作流框架官方网站:https://elsa-workflows.github.io/elsa-core/以下列出了Elsa的一些关键功...

weixin_29886329的博客 3583

Elsa Workflows工作流引擎项目构建

注:本文主要采用.NET 6和Elsa工作引擎进行编写。

实践出真知 5041

Elsa vs CCFlow:.NET开源工作流引擎的7大对决!你选对了吗?

🔥关注墨瑾轩,带你探索编程的奥秘!🚀🔥超萌技术攻略,轻松晋级编程高手🚀🔥技术宝库已备好,就等你来挖掘🚀🔥订阅墨瑾轩,智趣学习不孤单🚀🔥即刻启航,编程之旅更有趣🚀。

java专栏 1234

[.NET项目实战] Elsa开源工作流组件应用(二):内核解读

Elsa工作原理可以抽象理解为管道中间件 + 异步模型Elsa中,活动的变量的获取和设置都是异步的。Elsa定义了Variable类型作为异步操作的结果或者说是异步操作的占位符,这个变量在运行的时候才会填充数值。这与我们熟悉C#中的Task,或者js里的promise对象作用相同。输入Input,OutPut都属于 Variable。Elsa模拟了内存寄存器(MemoryRegister)以及Set和Get访问器实现异步模型。

jevonsflash的专栏 3722

揭秘.NET开源工作流引擎:Elsa Core如何重塑企业级自动化

扮演着“流程调度大脑”的角色。它不仅能自动化处理跨部门、跨系统的协作任务,还能通过可视化设计降低开发门槛,显著提升业务响应速度。的开源工作流引擎,专为 .NET 6+ 设计。部署为独立服务,并利用K8s的HPA实现自动扩缩容。机制暂停流程,等待外部事件触发恢复。字段管理版本,支持回滚与灰度发布。在复杂的企业级业务系统中,Elsa Core 是一个。

墨夶的博客 1232

Elsa-Workflow

艾尔莎工作流程 使用Elsa和.NET Core的工作流驱动的测试应用程序 基于。 运行之前: 此实现使用mongoDB连接。 可以在appsettings.json配置连接URL。 在运行应用程序之前,请确保对其进行调整。 在/Workflows文件夹中可以找到为此示例设计的/Workflows 。 运行项目后,首先需要通过Elsa的Dashboard界面导入工作流程定义。 此工作流程的一个示例随同该文件夹内的json文件一起附加。 在/users/register上执行POST操作后触发工作流。 卷曲示例: curl --location --request POST 'https://localhost:44306/users/register' \ --header 'Content-Type: application/json' \ --header 'Content-

[.NET项目实战] Elsa开源工作流组件应用(三):实战演练

之前的文章简单介绍了工作流和Elsa工作流库,这里再补充说明两点工作流的使用场景非常广泛,几乎涵盖了所有需要进行业务流程自动化管理的领域。学习一个开源库,最简单的方法就是看源码,Elsa的工作流引擎源码非常简单易懂,并且提供了非常丰富的示例代码,举一个例子:审批工作流示例这个审批流是这样的:作者发来一个文章,有两个审批人需要全部审批通过,文章才算通过,否则退回。

jevonsflash的专栏 3158

通过asp.net core 页面发起Elsa工作流

通过asp.net core 页面发起Elsa工作流 工作流持久化,手工启动

Elsa Workflows: .NET 的开源工作流引擎简介

Elsa Workflows 是一个开源的、模块化的 .NET 库集合,旨在为 .NET 应用程序提供强大的工作流能力。它将复杂的工作流逻辑抽象化,让开发者(以及非开发者)能够更轻松地设计、执行和自动化各种业务流程。

Humbunklung的专栏 2436

elsa-core:一个.NET Standard 2.0工作流库

艾尔莎(Elsa)工作流程 Elsa Core是一个工作流库,可在任何.NET Core应用程序中执行工作流。 工作流不仅可以使用代码定义,还可以定义为JSON,YAML或XML。 开始使用 请遵循上的“ 。 路线图 版本1.0 工作流程调用者 长期运行的工作流 工作流为代码 工作流作为数据 相关性 持久性:CosmosDB,实体框架核心,MongoDB,YesSQL HTML5 Workflow Designer Web组件 ASP.NET Core工作流程仪表板 JavaScript表达式 液体表达 原始活动 控制流活动 工作流程活动 计时器活动 HTTP活

保姆级教程:用STM32CubeMX HAL库搞定ESP8266连接,附串口printf调试全流程

本文提供了一份详细的STM32CubeMX HAL库教程,指导开发者如何实现ESP8266无线模块的连接与调试。从开发环境搭建、串口配置到AT指令通信解析,涵盖了物联网开发中的关键步骤和常见问题解决方案,帮助开发者快速掌握STM32与ESP8266的集成技术。

weixin_28273593的博客 504

.NET 5 开源工作流框架elsa技术研究

编者注:工作流框架 elsa 是.NET基金会下面的开源项目,2.0版本即将在3月份发布,目前正在紧锣密鼓的开发之中,2020年2月份我也介绍过推荐一个很棒的开源工作流elsa-cor...

dotNET跨平台 6948

BQ4050开发进阶(二):Protections参数优化策略与实战解析

本文深入解析了BQ4050电池管理芯片中Protections参数的优化策略与实战方法。针对电压、电流、温度等核心保护功能,详细阐述了如何根据具体电芯特性、负载场景和环境因素,精细调整CUV、COV、OCC/OCD等阈值与延时,以在确保电池绝对安全的前提下,实现极致的用户体验与系统可靠性。

rgv234567的博客 480

完整指南:通过14个.NET8项目掌握Elsa工作流自动化

Elsa工作流引擎是.NET Core生态系统中强大的流程自动化工具,通过practical-aspnetcore项目中的14个实战示例,开发者可以全面掌握工作流自动化的核心技术。本指南将带您深入了解Elsa工作流如何简化企业级应用开发流程。 ## 🎯 Elsa工作流核心概念 Elsa是一个开源的.NET工作流引擎库,可以构建复杂的业务流程应用。它支持可视化工作流设计、长时间运行流程、版本控

gitblog_00882的博客 1109

普冉PY32F002B ADC内部参考电压VREFINT的误差补偿与低功耗优化实践

本文详细介绍了普冉PY32F002B单片机在锂电池供电场景下ADC内部参考电压VREFINT的误差补偿与低功耗优化实践。通过分析GPIO配置、分压电阻匹配、采样时间设置等硬件设计要点,结合实时测量VREFINT电压值和软件补偿算法,有效提升了ADC测量精度至5mV以内,并实现了分压电路功耗控制与采样频率优化,为低成本消费电子项目提供了完整的解决方案。

846

Calpuff模型实战:从气象数据预处理到污染物扩散模拟全流程指南

本文提供了一份详尽的Calpuff模型实战指南,涵盖从气象数据预处理、地形处理到污染物扩散模拟与结果可视化的全流程。重点解析了Calmet气象场构建、Calpuff核心参数配置,并与AERMOD模型进行对比,帮助环境工程师与科研人员掌握这一强大的三维非稳态拉格朗日扩散模型,以应对复杂地形、海岸熏烟等实际模拟挑战。

s4t5u6v7的博客 458

推荐一个很棒的开源工作流elsa-core

开源项目orchard主要开发人员Sipke Schoorstra 开源了一个netcore 工作流项目,地址:https://github.com/elsa-workflows/elsa-core,最新版本1.2,正在开发2.0版本 。Spike 是参照Orchard Core的工作流引擎的原理,将其转化为一个可重用的.NET标准库,从而使*任何* .NET应用程序都能享受工作流的强大功能,...

寒冰屋的专栏 3550

ANSYS APDL学习(6):ANSYS APDL部分命令流介绍

介绍APDL 部分命令流

娱乐至上的博客 1万+

Elsa Core工作流引擎终极指南:10个核心组件深度解析与实战应用

Elsa Core是一个功能强大的.NET工作流引擎库,它提供了完整的**工作流引擎架构**和可视化设计工具,让开发者能够轻松构建复杂的企业级业务流程。作为.NET生态中最受欢迎的工作流解决方案之一,Elsa Core通过其模块化设计和丰富的活动库,为现代应用开发带来了前所未有的灵活性和可扩展性。 ## 🔍 什么是Elsa Core工作流引擎? Elsa Core是一个基于.NET构建的开源

gitblog_00927的博客 1153

告别玄学:手把手配置EtherCAT从站PDI接口与同步采样(含Sync/Latch信号实战)

本文详细解析了EtherCAT从站PDI接口配置与同步采样技术,涵盖微处理器通信与直接驱动IO模式选择、同步采样四大触发模式(SOF、Latch_in、Sync0/Sync1)及输出触发实战。通过伺服驱动器实例,帮助工程师突破配置难点,实现高精度同步控制,提升工业自动化系统性能。

weixin_30667649的博客 483

基于Flink的流式数据降维实现方案

理解为何实时场景需要降维(解决维度灾难)掌握Flink流处理与降维算法的结合方式学会用Flink实现一个可落地的流式降维系统覆盖内容包括:Flink流处理基础、降维算法选择(侧重在线算法)、Flink与降维的集成方案、实战代码示例,以及工业级场景的应用经验。本文从“为什么需要流式降维”出发,用“快递分拣”的生活案例引出核心概念;接着拆解Flink流处理、数据降维的底层逻辑;然后重点讲解“在线PCA”这一适合流式场景的降维算法,并用Flink实现一个完整的流式降维管道;

AI 领航者的博客 566

开源的.Net 工作流引擎Elsa初试——创建工作流服务器和图形化工作流配置管理应用

微软的Workflow Foundation基于.Net Framework,并且没有向.Net Core迁移的计划。我们的很多项目使用了工作流引擎,这些项目向.Net Core以及更高版本迁移时遇到了不少问题,一直在寻找/开发适合的工作流引擎。找到一些开源的项目,可以解决一些问题,还有些项目不是基于.Net生态的,但我希望能有一个长期稳定的基于.Net生态的项目,能够满足多种场景,可以替换原来的Workflow Foundation。希望的特性包括:1、同时支持编程工作流定义和配置工作流定义,最好有图形化

虚幻私塾 4397

Hermes Agent 彩蛋大盘点:藏在终端里的浪漫

本文主要介绍了Hermes Agent 彩蛋大盘点:藏在终端里的浪漫,希望能对使用Hermes Agent的同学们有所帮助。 文章目录 1. 前言 2. Spinner 动画 3. Kawaii 表情 4. 思考动词 THINKING_VERBS 5. 皮肤主题 6. 启动 Banner 7. 工具 Emoji 8. 内置人格 9. SOUL.md —— Agent 的灵魂 10. BOOT.md —— 启动自动执行 11. 随机 Tips 12. 统计总览

weixin_43178406的博客 7万+

Elsa 3.0终极指南:如何快速构建.NET工作流应用

Elsa是一个功能强大的.NET工作流库,能够帮助开发者轻松构建和管理复杂的工作流应用。无论你是需要实现业务流程自动化、数据处理管道,还是事件驱动的微服务编排,Elsa 3.0都提供了完整的解决方案。本文将为你详细介绍Elsa 3.0的核心功能、快速入门方法以及实际应用场景。 ## 🚀 什么是Elsa工作流库? Elsa是一个开源的.NET工作流引擎,专门为构建可扩展、高性能的工作流应用而设

gitblog_00195的博客 885

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

开源的 .NET 工作流引擎 Elsa 开源

前言微软的Workflow Foundation基于.NET Framework,并且没有向.NET Core迁移的计划。我们的很多项目使用了工作流引擎,这些项目向.NET Core以及更高版本迁移时遇到了不少问题,一直在寻找/开发适合的工作流引擎。找到一些开源的项目,可以解决一些问题,还有些项目不是基于.NET生态的,但我希望能有一个长期稳定的基于.NET生态的项目,能够满足多种场景,可以替换原...

zls365365的博客 1313

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 开源好用的所见即所得(WYSIWYG)编辑器:Editor.js
下一篇: 深度观察2024中国系统架构师大会(SACC)
林晓lx
林晓lx 2017年优快云移动跨平台大赛优秀奖获得者 2017年优快云移动跨平台大赛优秀奖获得者
博客等级 码龄15年 3761粉丝 123原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林晓lx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值