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

推荐订阅源

F
Fortinet All Blogs
S
Secure Thoughts
月光博客
月光博客
美团技术团队
雷峰网
雷峰网
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
News and Events Feed by Topic
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Forbes - Security
Forbes - Security
W
WeLiveSecurity
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
G
GRAHAM CLULEY
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
AI
AI
Last Week in AI
Last Week in AI
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
云风的 BLOG
云风的 BLOG
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recent Announcements
Recent Announcements
Webroot Blog
Webroot Blog
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
N
News and Events Feed by Topic
罗磊的独立博客
The Register - Security
The Register - Security
Blog — PlanetScale
Blog — PlanetScale
T
Threat Research - Cisco Blogs
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
B
Blog
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Engineering at Meta
Engineering at Meta
Latest news
Latest news
IT之家
IT之家
D
DataBreaches.Net
博客园 - 司徒正美
N
Netflix TechBlog - Medium
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - slickflowteam

Slickflow.MCP-Server-工作流引擎接入AI编排平台实践 Slickflow.AI 基于 Harness 工程规范的多智能体交互过程实现 Slickflow 规则集与 NRules 集成实践:从设计到产品落地 Slickflow.NET 与 OpenClaw 结合实践:技术原理、集成方式与 Skill 说明 Slickflow.NET 智能客服系统--基于 AI 大模型和RAG增强检索实现 .NET 开源工作流:Slickflow 流程自动化运行技术指南 .NET 开源工作流: Slickflow.NET 工作流引擎关于AI大模型的应用实践 .NET 开源工作流: Slickflow流程引擎高级开发(十) -- BpmnJS流程设计器集成 .NET 开源工作流: Slickflow流程引擎高级开发(九) -- 条件事件模式解释及应用 .NET 工作流: Slickflow开源工作流引擎高级开发(八) -- 审批网关(ApprovalOrSplit)模式的应用 .NET 工作流: Slickflow开源工作流引擎高级开发(七)--消息队列(RabbitMQ)的集成使用 .NET 工作流: Slickflow开源工作流引擎快速入门之四:--SlickGraph 流程模型编码建模工具使用手册 .NET 工作流: Slickflow开源工作流引擎快速入门之三: 简单或分支流程代码编写示例 .NET 工作流: Slickflow开源工作流引擎快速入门之二: 简单并行分支流程代码编写示例 .NET 工作流: Slickflow开源工作流引擎级开发(六) -- WebTest 引擎接口模拟测试工具集 .NET 工作流: Slickflow开源工作流引擎开发(五) -- 引擎和外部事件的交互 .NET 工作流: Slickflow开源工作流引擎高级开发(四) -- 硬核编码:代码式快速构建流程图 .NET 工作流: Slickflow开源工作流引擎高级开发(三) -- 并行分支容器与会签工作流模式的组合 .NET 工作流: Slickflow开源工作流引擎高级开发(二) -- 流程快速测试增值服务工具介绍 .NET 工作流: Slickflow开源工作流引擎高级开发(一) -- 流程外部事件的调用和变量存储实现 .NET 工作流: Slickflow开源工作流引擎基础介绍(十) -- 邮件轮询异步发送模块集成
.NET 工作流: Slickflow开源工作流引擎快速入门之一: 简单序列流程代码编写示例
Slickflow · 2019-09-16 · via 博客园 - slickflowteam

前言:对于急切想了解引擎功能的开发人员,在下载版本后,就想尝试编写代码,完成一个流程的开发和测试。本文试图从一个最简单的流程来示例说明,如何快速了解引擎代码的编写。

版本: .NETCore 2.1

1. 创建流程图形

    串行流程(Sequence)用于顺序流程的创建,节点按照前后顺序生成。

            var pmb = ProcessModelBuilder.CreateProcess("BookSellerProcess", "BookSellerProcessCode");
            var process = pmb.Start("Start")
                             .Task("Package Books", "PB001")
                             .Task("Deliver Books", "DB001")
                             .End("End")
                             .Store();

  上述代码创建了一个简单的串行流程,有4个节点,开始节点,两个任务节点和结束节点。其中Store()方法用于数据库存储流程。流程图示例如下:

 

  2. 流程启动和运行

      流程的启动和运行是最为常用的两个API接口。

2.1 流程启动

      启动需要处理的是流程实例的创建,还有开始节点和开始节点之后任务节点的创建,示例代码如下:

            IWorkflowService wfService = new WorkflowService();
            var wfResult = wfService.CreateRunner("10", "jack")
                     .UseApp("BS-100", "Delivery-Books", "BS-100-LX")
                     .UseProcess("BookSellerProcessCode")
                     .Start();

    流程记录列表:

 2.2 流程运行

      流程运行是由当前待办任务开始办理,并且运行到下一步的过程。在解析流程时,下一步可能有多个办理步骤,需要用户明确选择步骤列表(通常前端用户在弹出下一步步骤列表时候来指定),此处可以示例作为单步简单实例的运行。

            IWorkflowService wfService = new WorkflowService();
            var wfResult = wfService.CreateRunner("10", "jack")
                     .UseApp("BS-100", "Delivery-Books", "BS-100-LX")
                     .UseProcess("BookSellerProcessCode")
                     .OnTask(id)        //TaskID
                     .NextStepInt("20", "Alice")
                     .Run();

    流程记录列表:

 

3 流程撤销和退回

3.1 流程撤销

       如果用户在完成自己的待办任务,并且发出给下一步办理人时,发现有错误信息,需要撤销时,可以由自己发起,将当前流程撤销回来。撤销内部处理逻辑等同于退回处理,只不过发起人位置不同。代码示例如下:

            IWorkflowService wfService = new WorkflowService();
            var wfResult = wfService.CreateRunner("20", "Alice")
                     .UseApp("BS-100", "Delivery-Books", "BS-100-LX")
                     .UseProcess("BookSellerProcessCode")
                     .OnTask(8027)             //TaskID
                     .Withdraw();

    流程记录列表:

 

 3.2 流程退回

       流程退回是由当前待办任务的办理人发起,退回到流程的上一步。在解析流程时,上一步可能有多个办理步骤,需要用户明确选择步骤列表(通常前端用户在弹出上一步步骤列表时候来指定),PrevStepInt()方法用于针对只退回其中的一个办理步骤的简化处理。

            IWorkflowService wfService = new WorkflowService();
            var wfResult = wfService.CreateRunner("20", "Alice")
                     .UseApp("BS-100", "Delivery-Books", "BS-100-LX")
                     .UseProcess("BookSellerProcessCode")
                     .PrevStepInt()
                     .OnTask(8030)             //TaskID
                     .SendBack();

     流程记录列表:

4. 辅助开发工具

1) Slickflow 流程设计器

http://demo.slickflow.com/sfd/

2) Slickflow Web测试工具

http://demo.slickflow.com/sfw2/

5. 开源项目地址

https://github.com/besley/Slickflow

6. 总结

1) 以上代码,可以帮助开发人员快速熟悉引擎组件的接口和简单或分支的实用功能,完整功能需要在企业版以上版本获取;

2) 辅助开发工具中的流程设计器以及Web测试工具,给用户直观的体验操作,而且也适合不同类型的业务用户;

3) 代码方式创建流程和测试流程方便开发人员快速学习和上手,是一种提升工作效率的高效方法。