工作流越来越火了,如果信息系统没个工作流都拿不出手。

选来选去看中了开源的workflowcore,该项目地址 https://github.com/danielgerlag/workflow-core

用net core开发的。

工作流引擎通常是以服务或console控制台程序形式运行,有长长的进程。可以动态加载DLL,也就是步骤。

流程是以xml或json格式文件描述,把这些DLL(步骤)组合起来,工作流引擎加载流程,按部就班地运行DLL。

典型的运用就是审批流。当然,工作流能做好多事情。

例如workflowcore用json定义一个流程:

{"Id": "HelloWorld","Version": 1,"Steps": [{"Id": "Hello","StepType": "MyApp.HelloWorld, MyApp","NextStepId": "Bye"},        {"Id": "Bye","StepType": "MyApp.GoodbyeWorld, MyApp"}]
}

第一步是运行MyApp程序集(类库)里的类HelloWorld

第二步是运行MyApp程序集(类库)里的类GoodbyeWorld

以上两个类定义如下:

public class HelloWorld : StepBody
    {
        public override ExecutionResult Run(IStepExecutionContext context)
        {

Console.WriteLine("Hello world");

return ExecutionResult.Next();

}
    }

public class GoodbyeWorld : StepBody
    {
       
        public override ExecutionResult Run(IStepExecutionContext context)
        {
            Console.WriteLine("Goodbye world");

return ExecutionResult.Next();
        }
    }

控制台加载json

public static void Main(string[] args)

{

var host = serviceProvider.GetService<IWorkflowHost>();

var loader = serviceProvider.GetService<IDefinitionLoader>();

loader.LoadDefinition(json);
       
            host.Start();

host.StartWorkflow("HelloWorld"); 
           
            Console.ReadLine();

host.Stop();

}

输出结果:Hello World

Goodbye world

MyApp程序集编译后一定要考到和console.exe同一个目录下才行。

学习workflowcore工作流1相关推荐

  1. 深入理解学习Git工作流

    2019独角兽企业重金招聘Python工程师标准>>> 个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心 ...

  2. 深入理解python.md_深入理解学习Git工作流(git-workflow-tutorial)

    个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心中的困惑迎刃而解,于是我将这部分资料进行整理放到了github上,欢迎st ...

  3. 学习JBPM 工作流引擎 API方法(二)

    分享一套j简单的JBPM入门视频 https://pan.baidu.com/s/1sNv5n0Xk3lXn-YSLxum2EQ 提取码:idfq 我是在eclipse当中安装的JBPM 安装好JBP ...

  4. Activiti工作流学习笔记01

    Activiti6工作流学习笔记01 activiti工作流目前官方最新版本是7.x,但....版本不重要了.这篇笔记只是我学习activiti6过程中的自我总结.如果笔记上有错误的话,欢迎赐教,谢谢 ...

  5. Activiti工作流框架学习笔记(一)

    工作流的概念 先看下面两张图: 对以上两张图进行说明: 假设这两张图就是华谊兄弟的请假流程图 图的组成部分: 人物:范冰冰.冯小刚.王中军 事件(动作):请假.批准.不批准 通过以上分析我们就可以抽象 ...

  6. 一、Camunda工作流的学习路线(开局一把刀,学完后青铜变王者)

    前言 我写这篇文章的目的是为了将camunda工作流的相关知识系统化,目前网上的文章知识点很散,有些文章也不适合目前的企业级项目开发. 学习路线: 一.如果你是小白,你需要自己去理解什么是工作流?其作 ...

  7. activiti工作流连接mysql_Activiti工作流 安装myeclipse activiti设计插件并生成数据库表...

    从零开始学习Activiti工作流,记录下学习过程. 关于工作流的简介没什么好介绍了,只能说是个很有用的东西,数据库中23张表分别有什么用网上也有很详细的介绍,这里也不多加说明.activiti开发中 ...

  8. Git 工作流的正确打开方式

    前言 一直在使用git做版本控制,也一直工作很顺利,直到和别人发生冲突的时候.这才注意到git 工作流并不是那么简单.比如,之前遇到的清理历史.百度到的资料很多,重复性也很多,但实践性操作很少,我很难 ...

  9. JBPM工作流入门总结

    关于JBPM工作流 1.工作流 工作流是一项分离业务操作和系统流程的技术.工作流由实体(Entity).参与者(Participant).流程定义(Flow Definition).工作流引擎(Eng ...

最新文章

  1. Room Database完全使用手册
  2. POJ2728 Desert King ——01分数规划Dinkelbach迭代法+最小生成树prim算法
  3. Shift+F5后,vc6不可以退出调试状态,程序不能再次执行
  4. MongoDB PHP数据库查询类
  5. OpenCV制作自己的线性滤波器
  6. leetcode 740. Delete and Earn | 740. 删除并获得点数(暴力递归->傻缓存->DP)
  7. 多项式的链式存储方案
  8. 双系统Ubuntu 无 启用wifi选项
  9. 【VS插件】VS2012设置透明背景
  10. 现代优化算法 (一):模拟退火算法 及应用举例
  11. 天下没有免费的午餐 ---- 360 的伪免费
  12. oracle 范鑫_【企业信息化研究所】TF—SWUFE Oracle Club招新宣讲,只为和你相遇
  13. 计算机文件一点右键就内存突增,电脑内存占用忽然升高怎么解决
  14. 我是怎样把工资从400-4000
  15. 基于Html5的兼容所有主流浏览器的在线视频播放器videoJs
  16. MySQL的主键,索引设置和添加
  17. Z-Wave 700 秘钥生成、固件签名、及OTA过程
  18. ora.eons offline
  19. PS朋友们有福了 PhotoShop CS2 最新汉化补丁出炉
  20. matlab之“audioread”函数帮助文档翻译

热门文章

  1. 嵌入式课程设计 使用 tini4412配合交叉编译环境 完成串口助手的制作(已解决主机与设备通过网线FTP连接和交叉编译环境的部署问题)
  2. 用 js 实现 FIFO, LRU, LFU 缓存淘汰算法
  3. 冰蝎v4.0.6下载及使用方法
  4. python安装不了bs4_Python安装Bs4的多种方法
  5. 强化学习+神经网络来训练一个股票交易系统
  6. 计组期末复习题(1)
  7. 8.6 正睿暑期集训营 Day3
  8. 我的SPSS自学之旅2
  9. 排序(Sorting)相关算法(理论篇)
  10. 样式link属性media用法--媒体类型查询