首页 > 其他分享 >Elsa V3学习之工作流定义详解

Elsa V3学习之工作流定义详解

时间:2024-08-18 21:48:18浏览次数:5  
标签:null false Elsa V3 Workflows activity 节点 详解

工作流定义的JSON结构

以下是一个空流程的工作流定义的基础节点,包含一个变量一个Input一个Output。

{
    "definitionId": "8539248c8575efff",
    "name": "Workflow 3",
    "description": "Description",
    "toolVersion": "3.3.0.0",
    "variables": [
        {
            "id": "a30d4a423c8d43a0",
            "name": "Variable1",
            "typeName": "Object",
            "isArray": false,
            "value": null,
            "storageDriverTypeName": "Elsa.Workflows.Services.WorkflowStorageDriver, Elsa.Workflows.Core"
        }
    ],
    "inputs": [
        {
            "uiHint": "singleline",
            "storageDriverType": "Elsa.Workflows.Services.WorkflowStorageDriver, Elsa.Workflows.Core",
            "type": "Object",
            "isArray": false,
            "name": "Input1",
            "displayName": "Input 1",
            "description": null,
            "category": "Primitives"
        }
    ],
    "outputs": [
        {
            "type": "Object",
            "isArray": false,
            "name": "Output1",
            "displayName": "Output 1",
            "description": null,
            "category": "Primitives"
        }
    ],
    "outcomes": [],
    "customProperties": {},
    "isReadonly": false,
    "options": {
        "activationStrategyType": "Elsa.Workflows.Runtime.ActivationValidators.CorrelatedSingletonStrategy, Elsa.Workflows.Runtime",
        "usableAsActivity": null,
        "autoUpdateConsumingWorkflows": false,
        "activityCategory": null,
        "incidentStrategyType": "Elsa.Workflows.IncidentStrategies.ContinueWithIncidentsStrategy, Elsa.Workflows.Core"
    },
    "root": {
        "type": "Elsa.Flowchart",
        "version": 1,
        "id": "d41f9af2c487a55b",
        "nodeId": "Workflow1:d41f9af2c487a55b",
        "metadata": {},
        "customProperties": {
            "source": "FlowchartJsonConverter.cs:45",
            "notFoundConnections": [],
            "canStartWorkflow": false,
            "runAsynchronously": false
        },
        "activities": [],
        "connections": []
    },
    "links": null,
    "createdAt": "2024-08-18T12:29:50.1620717+00:00",
    "version": 1,
    "isLatest": true,
    "isPublished": false,
    "id": "6fa5ede103434fe9"
}

变量Variables

在工作流中,变量variables是跟随整个工作流程的,我们可以在任何一个节点给变量赋值,以及在任何一个节点读取变量的值。
例如下面操作,我们在SetVariale节点中将变量Variable1设置为123,在WriteLine通过JS方法获取变量的值输出。
image.png

image.png
输出的结果如下图所示:
image.png

Input/Output

这里的输入输出可以作为整个工作流的输入输出参数, 相当于动态的添加减少我们工作流的入参和输出。
当工作流勾选Usable as activity时,这个流程可以充当一个Activity节点来使用。
image.png
这里把Workflow 3勾选上Usable as activity,并添加分类为Workflow。创建新的工作流,这里可看到左侧节点多了Workflow分类,并包含一个Workflow3的节点。将其拖到画布,可以看到Input就是我们在Workflow3中添加的Input1。
image.png

Usable as activity

前面我们用到了Usable as activity这个选项,这个选项是把整个流程当作一个Activity节点使用,勾选后我们可以选择是否自动更新使用工作流,当发布新版本时,所有使用工作流都将更新为指向此工作流的新版本。以及可以给这个Activity节点设置一个分类。

IncidentStrategy

在流程设置里面,包含了incidentStrategyType参数,表示异常时的运行策略,包括了异常继续运行流程和抛出异常停止的策略,默认是异常停止流程。

ActivationStrategy

activationStrategyType表示的是工作流的运行策略,可设置根据Correlation Id的执行策略,例如同一个Correlation Id只能执行一次等。

Root

Root的本质其实也是一个Activity,类型为flowchart,用于存储和编排整个流程的一个Activity。
里面包含了connections和activities,activities记录了所有在画布的activity,connections用于存储activity的连线关系。

结语

本文介绍了工作流定义的基本结构,相信大家对流程的定义会有一定的了解。

标签:null,false,Elsa,V3,Workflows,activity,节点,详解
From: https://www.cnblogs.com/fanshaoO/p/18366168

相关文章

  • 函数回调地狱 + 解决方法(详解)
    概念需求:展示默认第一个省,第一个城市,第一个地区在下拉菜单中概念:在回调函数中嵌套回调函数,一直嵌套下去就形成了回调函数地狱 缺点:可读性差,异常无法捕获,耦合性严重,牵一发动全身问:1.什么是回调地狱?答案:在回调函数一直向下嵌套回调函数,形成回调函数地狱2.回调函数地......
  • 专题:C语言操作符详解
    ⽬录1.操作符的分类2.⼆进制和进制转换3.原码、反码、补码4.移位操作符5.位操作符:&、|、^、~6.单⽬操作符7.逗号表达式8.下标访问[]、函数调⽤()9.结构成员访问操作符10.操作符的属性:优先级、结合性11.表达式求值1.操作符的分类•算术操作符:+、-......
  • 嵌入式中PID算法分析与实现详解
        看起来PID高大尚,先被别人唬住,后被公式唬住,由于大多数人高数一点都不会或者遗忘,所以再一看公式,简直吓死。    直接从网上找了PID相关公式截图如下。    了解了很浅的原理后,结果公式看不懂,不懂含义,所以最终没有透彻。我这里先对公式进行剖析,公式理解明白......
  • 一文详解帮助中心FAQ系统:定义、作用、实际应用
    在信息爆炸的时代,优质客户服务已成为企业竞争的关键要素之一。而帮助中心FAQ系统,作为客户服务体系中的重要组成部分,其重要性日益凸显。本文旨在通过清晰的结构和通俗易懂的语言,深入探讨帮助中心FAQ系统的定义及其在企业运营中的多重作用。一、定义篇:什么是帮助中心FAQ系......
  • MybatisPlus分页查询详解
    MybatisPlus分页查询详解一直对于分页查询的插件用的不是很熟练,这次在学习mp的时候又一次学到了分页查询,在这个过程中发现学到的东西挺多的,想着可以分享给大家,往下看前请保证对泛型以及函数式接口编程有一定了解1MybatisPlus的基础介绍这边主要是讲解他的一个分......
  • 二分查找算法详解及Python实现
    目录引言二分查找算法步骤二分查找的Python实现性能分析注意事项引言二分查找算法(BinarySearch)是一种在有序数组中查找某一特定元素的搜索算法。它的基本思想是:通过比较数组中间的元素与目标值的大小,将搜索区间缩小为一半,直到找到目标值或搜索区间被缩小为0。二分查......
  • 三剑客详解
    一、grep基本使用语法结构:模糊过滤查找内容grep'查找的内容'filecatfile|grep'查找屏幕上输出的内容'参考选项:r:递归过滤文件的内容v:取反w:过滤单词,以空格分割,精确匹配i:不区分大小写n:过滤到内容的具体行号c:统计单词次数o:查看匹配过程E:支持扩展正则A:显示查找内容......
  • 指针详解(二)
    目录1. const修饰指针1)const修饰变量2)const修饰指针变量2. 指针运算1)指针+- 整数2)指针-指针3)指针的关系运算3. 野指针1)野指针成因2)规避野指针4.assert断言5. 指针的使用和传址调用1)strlen的模拟实现2)传值调用和传址调用1. const修饰指针1)const修饰......
  • Redis 数据类型详解
    Redis是一个开源的内存数据结构存储系统,广泛应用于缓存、消息队列、实时数据分析等场景。Redis提供了多种数据类型,本文将详细介绍Redis的五种主要数据类型及其应用场景,并从概述、基本操作、应用场景和数据结构等方面进行深入探讨。1.字符串(String)概述字符串是Redis......
  • MySQL 数据类型详解
    MySQL是一种广泛使用的关系型数据库管理系统,它支持多种数据类型以满足各种应用场景的需求。本文将详细介绍MySQL支持的数据类型、它们的使用场景以及实现原理,并通过图示帮助读者更直观地理解。目录简介数值类型整型浮点型定点型日期和时间类型字符串类型字符串二进制字......