V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MeteorVIP
V2EX  ›  程序员

大佬们,有没有 c#工作流引擎的使用例子?

  •  1
     
  •   MeteorVIP · 96 天前 · 1493 次点击
    这是一个创建于 96 天前的主题,其中的信息可能已经有所发展或是发生改变。
    流程:用户申请,有 N 个领导审核.
    比如,用户 1 申请,5 个领导审批.领导 A 审批通过到领导 B,依此类推.
    若领导 C 不通过,回退到领导 B 点击不通过,回退到领导 A 点不通过,通知用户修改.

    具体的需求如上.
    我现在是用 c#的 Workflowcore 看了官方的例子,但不会结合到实际来写.

    所以希望大神们帮找一些 C#的工作流引擎的开源代码,

    最后,只能用 c#,工作流引擎可以随便选,比如 Workflowcore,elsa-core,Windows Workflow Foundation.自己实现工作流不行,老板要求用工作流引擎.

    我已经看了两周的例子,实在是不会才来提问的.
    谢谢大佬.
    11 条回复    2024-02-27 17:20:40 +08:00
    cdx
        1
    cdx  
       96 天前
    我这叫流程引擎,领导让自己实现 go 版的,也可以用其他的,但是目前也没找到特别契合的
    aw2350
        2
    aw2350  
       96 天前
    不用非得 c#吧,随便部个开源的,api 或者 rpc 调用即可吧
    MeteorVIP
        3
    MeteorVIP  
    OP
       96 天前
    @aw2350 #2 是的,这样也可以的.有推荐的开源吗?我去研究研究.

    我现在最大的问题就是不知道怎么把流程和实际代码结合起来.
    我也不知道怎么优雅的写一个 A->B->C 的流程,只能傻傻的嵌套很多个 if
    aw2350
        4
    aw2350  
       96 天前   ❤️ 1
    @MeteorVIP 先抽象一下业务
    1 、节点是可以自己随意添加,不限制业务节点数量
    2 、节点与节点之间使用线连接,线可以是前进,也可以是退回,也可以一对多,至于去哪个节点,是通过 动态条件来的
    3 、在节点上设置办理人,办理人可以是固定的,也可以是根据参数动态查询的
    4 至于前进还是后退,是根据配置的条件来的,一般是通过执行 sql ,判断执行结果是 true 还是 false
    5 动态条件 一般 都是通过 sql 或者 某些可以被 动态编译执行的语言去执行
    gowk
        5
    gowk  
       95 天前
    实现业务需求不就行了吗,老板还要管怎么实现,闲的蛋疼
    MeteorVIP
        6
    MeteorVIP  
    OP
       95 天前
    @gowk #5 主要是流程越来越复杂了,想用工作流引擎解决,
    但现在没有实际的例子,连最简单的下一个用户审核都不会.
    你这个图是自己写的,还是什么引擎?
    gowk
        7
    gowk  
       95 天前
    我这个是自己写的,用 6 个表实现的。
    MeteorVIP
        8
    MeteorVIP  
    OP
       95 天前
    是我理解不对,还是没什么人用 Workflowcore 啊?查到的资料都千篇一律的入门教程.而我的需求是最普通不过的,也找不到相关例子.
    我现在只会写一个人审核,多一个人都不会,更别说某个人审核不通过之后回到上一步了.
    是我用的流程引擎不对吗?大佬指条明路.
    MeteorVIP
        9
    MeteorVIP  
    OP
       92 天前
    试试 elsa-core 吧,好像网上有课卖.
    MeteorVIP
        10
    MeteorVIP  
    OP
       83 天前
    elsa-workflow 官方教程已經看過完了,一頭霧水.
    哪位大佬還有實例教程?幫幫忙.
    MeteorVIP
        11
    MeteorVIP  
    OP
       60 天前
    在 elsa studio3 定义了流程,使用 http endpoint 创建了地址,比如 https://localhost:5001/workflows/hello-world
    但会提示"errorMessage": "The call is ambiguous and matches multiple workflows."意思就是:多个工作流地址相同,冲突了,不知道你要执行哪个工作流.
    那么,怎么通过每个工作流实例 ID(WorkflowInstanceId)来继续自己的工作流呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5631 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 03:20 · PVG 11:20 · LAX 20:20 · JFK 23:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.