学习workflowcore工作流1
工作流越来越火了,如果信息系统没个工作流都拿不出手。
选来选去看中了开源的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相关推荐
- 深入理解学习Git工作流
2019独角兽企业重金招聘Python工程师标准>>> 个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心 ...
- 深入理解python.md_深入理解学习Git工作流(git-workflow-tutorial)
个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心中的困惑迎刃而解,于是我将这部分资料进行整理放到了github上,欢迎st ...
- 学习JBPM 工作流引擎 API方法(二)
分享一套j简单的JBPM入门视频 https://pan.baidu.com/s/1sNv5n0Xk3lXn-YSLxum2EQ 提取码:idfq 我是在eclipse当中安装的JBPM 安装好JBP ...
- Activiti工作流学习笔记01
Activiti6工作流学习笔记01 activiti工作流目前官方最新版本是7.x,但....版本不重要了.这篇笔记只是我学习activiti6过程中的自我总结.如果笔记上有错误的话,欢迎赐教,谢谢 ...
- Activiti工作流框架学习笔记(一)
工作流的概念 先看下面两张图: 对以上两张图进行说明: 假设这两张图就是华谊兄弟的请假流程图 图的组成部分: 人物:范冰冰.冯小刚.王中军 事件(动作):请假.批准.不批准 通过以上分析我们就可以抽象 ...
- 一、Camunda工作流的学习路线(开局一把刀,学完后青铜变王者)
前言 我写这篇文章的目的是为了将camunda工作流的相关知识系统化,目前网上的文章知识点很散,有些文章也不适合目前的企业级项目开发. 学习路线: 一.如果你是小白,你需要自己去理解什么是工作流?其作 ...
- activiti工作流连接mysql_Activiti工作流 安装myeclipse activiti设计插件并生成数据库表...
从零开始学习Activiti工作流,记录下学习过程. 关于工作流的简介没什么好介绍了,只能说是个很有用的东西,数据库中23张表分别有什么用网上也有很详细的介绍,这里也不多加说明.activiti开发中 ...
- Git 工作流的正确打开方式
前言 一直在使用git做版本控制,也一直工作很顺利,直到和别人发生冲突的时候.这才注意到git 工作流并不是那么简单.比如,之前遇到的清理历史.百度到的资料很多,重复性也很多,但实践性操作很少,我很难 ...
- JBPM工作流入门总结
关于JBPM工作流 1.工作流 工作流是一项分离业务操作和系统流程的技术.工作流由实体(Entity).参与者(Participant).流程定义(Flow Definition).工作流引擎(Eng ...
最新文章
- Room Database完全使用手册
- POJ2728 Desert King ——01分数规划Dinkelbach迭代法+最小生成树prim算法
- Shift+F5后,vc6不可以退出调试状态,程序不能再次执行
- MongoDB PHP数据库查询类
- OpenCV制作自己的线性滤波器
- leetcode 740. Delete and Earn | 740. 删除并获得点数(暴力递归->傻缓存->DP)
- 多项式的链式存储方案
- 双系统Ubuntu 无 启用wifi选项
- 【VS插件】VS2012设置透明背景
- 现代优化算法 (一):模拟退火算法 及应用举例
- 天下没有免费的午餐 ---- 360 的伪免费
- oracle 范鑫_【企业信息化研究所】TF—SWUFE Oracle Club招新宣讲,只为和你相遇
- 计算机文件一点右键就内存突增,电脑内存占用忽然升高怎么解决
- 我是怎样把工资从400-4000
- 基于Html5的兼容所有主流浏览器的在线视频播放器videoJs
- MySQL的主键,索引设置和添加
- Z-Wave 700 秘钥生成、固件签名、及OTA过程
- ora.eons offline
- PS朋友们有福了 PhotoShop CS2 最新汉化补丁出炉
- matlab之“audioread”函数帮助文档翻译