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

选来选去看中了开源的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. java bufferedimage颜色_使用BufferedImage进行渐变色操作
  2. iis worker process cpu 高_egg中的master、worker和agent
  3. python之multiprocessing创建进程
  4. INF DestinationDirs Section
  5. php根据分类生成网址,PHP实现无限极分类生成分类树的方法
  6. MySQL 可重复读,差点就让我背上了一个 P0 事故!
  7. 买的首套房开发商指定的银行是5.88的利率,朋友都说利率有点高,怎样才能省点钱呢?
  8. 各浏览器的Hack写法
  9. DoTween函数汇总
  10. 易语言输出mysql日志_个人理解的易语言下的日志总结(备忘)
  11. LabVIEW网络数据传输远程控制编程与验证测试
  12. html5video拼接屏一部分黑屏,拼接屏常见问题与解决方法
  13. Libero Soc 安装和License申请
  14. Alios things学习——helloworld
  15. C# AD域账号登录验证,获取域用户信息
  16. 《牧羊少年奇幻之旅》读后感
  17. (转载)基于TDOA声源定位算法仿真–MATLAB仿真
  18. 启动计算机 英语,电脑开机显示英文是怎么回事
  19. 发自肺腑深入肌肤 —— 一位武汉老程序员的自白
  20. 【ESP32 乐鑫 离线环境搭建】

热门文章

  1. php+predis+长连接,ThinkPHP+predis 环境配置
  2. java ftp ftpclient_FTPClient 用法
  3. Kibana should not be run as root
  4. 谷歌搞事情:最先被AI淘汰的,居然是做AI的?
  5. Java实操避坑指南四、spring中的坑
  6. 从分而治之的思想到架构的设计
  7. 我决定活得有趣 读后感
  8. 阿里/腾讯/头条/京东...滴滴员工,一年究竟能挣多少钱?
  9. 码匠编程:H5到底是指什么? 一文给你梳理清楚
  10. 解决ios系统在safari浏览器中添加web应用程序到主屏幕,打开子链接会跳转到safari的问题