使用.net 构建 Elsa Workflow
对接过蓝凌OA 也基于泛微OA数据库原型重新研发上线过产品,自研的开源的也上线过 每个公司对OA流程引擎介绍 都不一样的, 比如Elsa 这款微软MVP开源组件,基于跨平台开发的技术含量高,专门做OA的同行推过对应文章。 直接看怎么用吧。
开发环境 net6
一章 简单使用

官方文档

using Elsa.Extensions;
using Elsa.Workflows.Core.Activities;
using Elsa.Workflows.Core.Contracts;
using Microsoft.Extensions.DependencyInjection;namespace ConsoleApp1demo
{internal class Program{static async Task Main(string[] args){{//ServiceCollection services = new ServiceCollection();nuget: Elsa//services.AddElsa();// 注册Elsa服务到容器定义一个工作流程,就只有一个工作环节 //ServiceProvider serviceprovider = services.BuildServiceProvider();//WriteLine workflow = new WriteLine("Hello, World!");//IWorkflowRunner workflowRunner = serviceprovider.GetRequiredService<IWorkflowRunner>();//await workflowRunner.RunAsync(workflow); //Console.WriteLine("Hello, World!");}{ServiceCollection services = new ServiceCollection();//nuget: Elsaservices.AddElsa();// 注册Elsa服务到容器定义一个工作流程,就只有一个工作环节 ServiceProvider serviceprovider = services.BuildServiceProvider();var workflow = new Sequence(){Activities = {new WriteLine("Hello world"),new WriteLine("Goodbye 66666")}};IWorkflowRunner workflowRunner = serviceprovider.GetRequiredService<IWorkflowRunner>();await workflowRunner.RunAsync(workflow);}}}
}
二章 改成API 使用的预发行版本 即还没有成为正式发布的版本!!!QAQ
官方文档



不兼容swagger? 先注释

改造成支持httpjson
using Elsa.Http;
using Elsa.Workflows.Core.Activities;
using Elsa.Workflows.Core.Contracts;
using Microsoft.AspNetCore.Mvc;namespace Zhaoxi.Elsa.Server_Project.Controllers
{[ApiController][Route("[controller]")]public class RunWorkflowController : ControllerBase{//工作流执行着private readonly IWorkflowRunner _workflowRunner;public RunWorkflowController(IWorkflowRunner workflowRunner){_workflowRunner = workflowRunner;}[HttpGet]public async Task Post(){await _workflowRunner.RunAsync(new WriteLine("Hello ASP.NET world!")); await _workflowRunner.RunAsync(new WriteHttpResponse(){ Content = new("Hello ASP.NET world!")});}}
}
三章 开始用用核心点的东西了
好多前潜规则 丢
注册 //配置支持某一个端点
//Elsa 作为一个端点
builder.Services.AddElsa(elsa =>
{elsa.UseWorkflowRuntime(runtime =>{//配置支持某一个端点 runtime.AddWorkflow<CustomWorkflow>();});elsa.UseHttp();
});
跟swagger AddControllers 冲突 需要注释掉

使用
app.UseWorkflows();
命名 类似于控制的后缀 workflows 微软风格

http://localhost:5191/workflows/hello-word


第四章 Exposing the REST API


<PackageReference Include="Elsa" Version="3.0.0-preview.727" /><PackageReference Include="Elsa.Http" Version="3.0.0-preview.727" /><PackageReference Include="Elsa.Workflows.Api" Version="3.0.0-preview.727" /><PackageReference Include="Elsa.Identity" Version="3.0.0-preview.727" />

授权 使用

访问

然后就潜规则 官网居然 直接就 下一页 不告诉怎么搞了 哈哈哈哈

---分割线------------------------

//----------------------------------------------------------------------------//curl--location GET 'http://localhost:5031/elsa/api/workflow-definitions'//--header 'Authorization: ApiKey 00000000-0000-0000-0000-000000000000' 访问不到 token不对//----------------------------------------------------------------------------//要请求访问令牌,我们可以向端点发送以下请求/identity/login://curl--location--request POST 'http://localhost:5031/elsa/api/identity/login' //--header 'Content-Type: application/json' //--data - raw '{// "username": "admin",// "password": "password"//}'//----------------------------------------------------------------------------//要使用访问令牌向 API 端点发出经过身份验证的请求,我们可以包含访问令牌,如下所示:// curl--location GET 'http://localhost:5031/elsa/api/workflow-definitions'// --header 'Authorization: Bearer {access_token}'
http://localhost:5032/elsa/api/workflow-definitions
访问不到 token不对

//--header 'Authorization: ApiKey 00000000-0000-0000-0000-000000000000'

能访问了是通的
开始拿token

//----------------------------------------------------------------------------
//要请求访问令牌,我们可以向端点发送以下请求/identity/login:
//curl--location--request POST 'http://localhost:5031/elsa/api/identity/login'
//--header 'Content-Type: application/json'
//--data - raw '{
// "username": "admin",
// "password": "password"
//}'
默认账号密码就是这


鉴权 颁发token


改成别的就没有数据 鉴权可用

原来的还能用


随便改个值

凭证不对访问 问不了
已知的是1用这个就能拿到token了还要其他干啥

2如何活动的接口也带上token

先用到这里吧
相关文章:
使用.net 构建 Elsa Workflow
对接过蓝凌OA 也基于泛微OA数据库原型重新研发上线过产品,自研的开源的也上线过 每个公司对OA流程引擎介绍 都不一样的, 比如Elsa 这款微软MVP开源组件,基于跨平台开发的技术含量高,专门做OA的同行推过对应文章。 直接看怎么用吧。…...
open clip论文阅读摘要
看下open clip论文 Learning Transferable Visual Models From Natural Language Supervision These results suggest that the aggregate supervision accessible to modern pre-training methods within web-scale collections of text surpasses that of high-quality crowd…...
Vue3像Vue2一样在prototype(原型)上挂载数据
Vue2的写法 import App from ./App import Vue from vue import ./uni.promisify.adaptor Vue.config.productionTip false App.mpType app import config from "./static/js/config/config.js" Vue.prototype.$configconfig; const app new Vue({...App }) app.…...
API接口自动化测试
本节介绍,使用python实现接口自动化实现。 思路:讲接口数据存放在excel文档中,读取excel数据,将每一行数据存放在一个个列表当中。然后获取URL,header,请求体等数据,进行请求发送。 结构如下 excel文档内容如下&#x…...
基于springboot实现驾校管理系统项目【项目源码】
基于springboot实现驾校管理系统演示 JAVA简介 JavaScript是一种网络脚本语言,广泛运用于web应用开发,可以用来添加网页的格式动态效果,该语言不用进行预编译就直接运行,可以直接嵌入HTML语言中,写成js语言࿰…...
稀疏数组的保存优化(java版本)
什么是稀疏矩阵? 矩阵中,若数值为 0 的元素数目远远多于非 0 元素的数目,并且非 0 元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非 0 元素数目占大多数时,则称该矩阵为稠密矩阵。 …...
Git GUI、SSH协议和IDEA中的Git使用详解
目录 前言 一、Git GUI的使用 1. 什么是Git GUI 2. 常见的Git GUI工具 3.使用 4.使用Git GUI工具的优缺点 优点: 缺点: 二、SSH协议 1.什么是SSH协议 2.SSH的主要特点和作用 3.SSH密钥认证的原理和流程 4. SSH协议的使用 三、IEDA使用git …...
Linux下C++调用python脚本实现LDAP协议通过TNLM认证连接到AD服务器
1.前言 首先要实现这个功能,必须先搞懂如何通过C调用python脚本文件最为关键,因为两者的环境不同。本质上是在 c 中启动了一个 python 解释器,由解释器对 python 相关的代码进行执行,执行完毕后释放资源。 2 模块功能 2.1python…...
计算机毕业设计选题推荐-校园交流平台微信小程序/安卓APP-项目实战
✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...
FlinK之检查点与保存点机制
检查点与保存点 检查点Checkpoint概述保存时机保存与恢复检查点算法 检查点配置启用检查点指定存储位置其它配置通用增量 保存点Savepoint概述使用保存点切换状态后端 SQL客户端中操作提交作业触发恢复 检查点Checkpoint 概述 在 Flink 中,检查点是用于实现状态一致…...
UE5 新特性 Nanite 开启
啥也不说,只能说,真的牛,在自己的项目上,从10几20的帧数,直接彪到了70 适用场景: 大场景,三角面足够多 在Project Setting里面 将这几个勾未true 勾上这个,放入场景即可...
仿写知乎日报第四周
本周主要修改了以往的一些bug,实现了一些遗漏的新功能。 无限右滑 无限右滑我听了学长的思路,首先在scrollView的画布大小设置多一个宽度的画布,然后每当滑到那个画布的时候,就调用一个通知,该通知会触发在首页的vie…...
MySQL join原理及优化
MySQL的JOIN原理是基于索引和算法的。在执行JOIN查询时,MySQL会根据连接字段上的索引来查找匹配的记录。 这种算法在链接查询的时候,驱动表会根据关联字段的索引进行查找,当在索引上找到了符合的值,再回表进行查询,也就…...
js案例:打地鼠游戏(打灰太狼)
效果预览图 游戏规则 当灰太狼出现的时候鼠标左键点击灰太狼加10分,小灰灰出现的时候鼠标左键点小灰灰击减10分,不点击不减分不加分。 整体思路 1.把获取背景图片中每个地洞的位置,把所有位置放到一个数组中。 2.封装随机数函数,随…...
删除杀软回调 bypass EDR 研究
01 — 杀软或EDR内核回调简介 Windows x64 系统中,由于 PatchGuard 的限制,杀软或EDR正常情况下,几乎不能通过 hook 的方式,完成其对恶意软件的监控和查杀。那怎么办呢?别急,微软为我们提供了其他的方法&a…...
Ansible自动化部署工具-组件及语法介绍
大家好,我是蓝胖子,我认为自动化运维要做的事情就是把运维过程中的某些步骤流程化,代码化,这样在以后执行类似的操作的时候就可以解放双手了,让程序自动完成。避免出错,Ansible就是这方面非常好用的工具。它…...
postgresql实现job的六种方法
简介 在postgresql数据库中并没有想oracle那样的job功能,要想实现job调度,就需要借助于第三方。本人更为推荐kettle,pgagent这样的图形化界面,对于开发更为友好 优势劣势Linux 定时任务(crontab) 简单易用…...
layui 表格(table)合计 取整数
第一步 开启合计行 是否开启合计行区域 table.render({elem: #myTable, url: ../baidui/, page: true, cellMinWidth: 100,totalRow:true,cols: [[ //表头//{ type: checkbox },{ type: checkbox,totalRowText: "合计" },//合计行区域{ field: id, align: center,…...
深入理解 TCP;场景复现,掌握鲜为人知的细节
握手失败 第一次握手丢失了,会发生什么? 当客户端想和服务端建立 TCP 连接的时候,首先第一个发的就是 SYN 报文,然后进入到 SYN_SENT 状态。 在这之后,如果客户端迟迟收不到服务端的 SYN-ACK 报文(第二次…...
【MySQL系列】 第二章 · SQL(中)
写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正࿰…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究
摘要:在消费市场竞争日益激烈的当下,传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序,探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式,分析沉浸式体验的优势与价值…...
Windows 下端口占用排查与释放全攻略
Windows 下端口占用排查与释放全攻略 在开发和运维过程中,经常会遇到端口被占用的问题(如 8080、3306 等常用端口)。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口,帮助你高效解决此类问题。 一、准…...
