什么是工作流?

工作流(Workflow),是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。

BPM:是Business Process Management的英文字母缩写.即业务流程管理,是一套达成企业各种业务环节整合的全面管理模式。

工作流软件,顾名思义,就是业务信息数据在多个环节模块之间的流转。

企业内部业务种类非常多、变化也非常多。虽然业务变化非常多,但是流程的控制基本是不变的。我们常说的工作流或者是“流程”就是指 控制流程流转的核心引擎。

市面常见的工作流开发框架如下所示。

Windows Workflow Foundation

Windows Workflow Foundation(以下简称WWF)提供了一个编程框架和工具以开发和执行各种不同的基于工作流的应用程序,比如文档管理、线型的商业应用、贸易单据流程、IT管理、B2B应用以及消费者应用。

WF(Windows Workflow Foundation)是微软的工作流基础组件。它是DotNet Framework中提供基于模型或者是声明方式的流程执行引擎。

WF由DotNet Framework3.0一起发布。而且已经被应用与微软的Sharepoint技术中。

WF包括3个核心组件:

活动框架

工作流活动运行时环境

工作流设计器

第一个工作流项目

1、打开VS新建一个解决方案,在解决方案中新建项目——WorkFlow——工作流控制台应用程序,命名为WorkflowConsoleApp

2、视图——工具箱,添加WriteLine基元

WriteLine Activity:用于输出一段字符串。

再添加一个WriteLine基元

会自动将这两个基元包装在一个Sequence序列容器里面,然后执行顺序从上至下。当然也我们可以先添加一个Sequence序列容器,然后再往这个容器里面添加基元。

顺序工作流

顺序工作流就是将顺序工作流容器中的所有动作按照顺序往下执行。

顺序容器Sequence:是在System.Activities.dll中定义的类型,继承 NativeActivity是一个 sealed类。

1.[Activities]集合,可以存放Activity

2.[Activities]集合中的Activity按顺序从上向下执行

3.[Variables]集合用于存放变量

3、我们来看Program.cs中的代码如下:

Activity workflow1 = newWorkflow1();

WorkflowInvoker.Invoke(workflow1);

这里就是工作流的启动方式。WorkflowInvoker 包含同步调用工作流的实例方法和静态方法。

为了更好的查看运行效果,添加如下代码:

Console.ReadLine();

4、按F5运行

WF入门之活动

Activity在WF中是一个最基本的概念,当谈及Activity时,通常是指如下两个概念:

Activty Class 。

在工作流中任意Activity派生类的统称。

活动也就是流程中的步骤如果下图

流程图工作流

流程图工作流:就是将工作节点按照流程图规定的顺序进行流动的工作流。

流程图工作流跟顺序工作流的区别:顺序工作流只能从上往下执行,而流程图工作流可以按照流程图规定的顺序进行流程的流转。

这里,我们新建一个财务审批流程。

1、  新建活动

右键单击项目WorkflowConsoleApp,添加“新建项”,选择活动,命名为MoneyApproveActivity.xaml

2、  添加流程

修改名称为”财务审批流程”。

3、  添加两个WriteLine基元

4、  添加代码活动

CodeActivity 代码活动

WF4.0 提供了许多Activity,但有时这些Activtiy并不能完成具体功能,如向数据库添加数据,发送电子邮件等.在实现这些具体功能时,我们仍要使用某种编程语言,如C#.当我们需要这种功能时,可以使用 CodeActivity。

它是一个抽向类,继承该类后,需要override该类的Execute方法,用于编写自定义的功能代码

右键单击项目WorkflowConsoleApp,添加“新建项”,选择“代码活动”,然后命名为InputMoneyCodeActivity.cs

这个时候,我们看见默认的代码如下:

public sealed classInputMoneyCodeActivity : CodeActivity

{//定义一个字符串类型的活动输入参数

public InArgument Text { get; set; }//如果活动返回值,则从 CodeActivity//派生并从 Execute 方法返回该值。

protected override voidExecute(CodeActivityContext context)

{//获取 Text 输入参数的运行时值

string text = context.GetValue(this.Text);

}

}

这里,我需要修改一下代码,因为我要的并不是输入参数,而是要输出一个金额给到当前这个流程,然后再根据这个金额的大小来判断流程的走向。

工作流中的数据的传递

Variable变量:跟C#一样可以再整个工作流或者是其中的一个Activity中添加一个变量。可以通过可视化的控制:变量的类型、作用域、默认值等 。

Assign 赋值。可以对流程内定义的参数,变量赋值。

Arguments 参数:Activity中传入的参数或者是传出的参数。

In参数:System.Activities.InArgument传入参数,可以在流程启动的时候传入参数的值。只能用于数据传入流程节点内部。

Out参数:System.Activities.OutArgument。用于将流程节点内部的数据传递到外部的变量或者其他流程的传入参数。

In/Out参数:System.Activities.InOutArgument。即用于传入也用于传出。

5、  修改代码如下:

public sealed classInputMoneyCodeActivity : CodeActivity

{//定义一个字符串类型的活动输入参数//public InArgument Text { get; set; }//定义一个Int类型的输出参数

public OutArgument Money { get; set; }//如果活动返回值,则从 CodeActivity//派生并从 Execute 方法返回该值。

protected override voidExecute(CodeActivityContext context)

{//获取 Text 输入参数的运行时值//string text = context.GetValue(this.Text);

intmoney;var v =Console.ReadLine();int.TryParse(v,outmoney);

context.SetValue(Money, money);

}

}

6、  生成项目WorkflowConsoleApp

7、  回到MoneyApproveActivity.xaml页面

会发现工具箱中多了一个组件InputMoneyCodeActivity,将其拖放到MoneyApproveActivity.xaml界面中。

8、  重命名,双击InputMoneyCodeActivity组件,修改名称为“获取输入金额”。

9、添加变量,用于接收InputMoneyCodeActivity代码活动中的输出参数的值,这样在整个流程中才能够访问到这个接收的金额。

右键单击活动代码“获取输入金额”,选择“属性”,将Money的值赋值给全局变量GetMoney。

10、 添加WriteLine基元,流转到“经理审批”

11、添加条件分支

添加条件,让500作为一个判断条件,分为大于500为True和小于等于500为False。

12、添加两个WriteLine基元,当条件为True和False各执行一个基元。

13、  将MoneyApproveActivity活动设为启动项。

修改Program代码如下:

//Activity workflow1 = new Workflow1();

Activity workflow1 = newMoneyApproveActivity();

WorkflowInvoker.Invoke(workflow1);

Console.ReadLine();

14、运行结果如下:

python 工作流workflow_Workflow笔记1——工作流介绍相关推荐

  1. Python交叉分析学习笔记

    Python交叉分析学习笔记 本文将介绍两种方法来进行交叉分析:1.独立T检验 2.数据透视表. 数据源:百度网盘,课程来源:慕课网 数据源 共包括10个变量,如下:satisfaction_leve ...

  2. Git工作流学习笔记

    Git工作流指南 分布式版本控制系统 观看笔记:https://www.bilibili.com/video/BV1dW411U7ER?p=1 老师笔记: http://www.funtl.com/z ...

  3. jbpm_工作流框架笔记

    1. 工作流基础 1.1. 工作流相关概念 工作流(Workflow),就是"业务过程的部分或整体在计算机应用环境下的自动化",它主要解决的是"使在多个参与者之间按照某种 ...

  4. Python数模笔记-Sklearn (1)介绍

    1.SKlearn 是什么 Sklearn(全称 SciKit-Learn),是基于 Python 语言的机器学习工具包. Sklearn 主要用Python编写,建立在 Numpy.Scipy.Pa ...

  5. Activiti工作流学习笔记01

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

  6. java工作流 表设计_Java工作流系统jflow从表功能介绍一

    关键词:工作流快速开发平台  工作流流设计  业务流程管理   asp.net 开源工作流  bpm工作流系统  java工作流主流框架  自定义工作流引擎 表单设计器  流程设计器 从表也叫明细表, ...

  7. 【工作流引擎】BPMN2.0介绍

    [工作流引擎]BPMN2.0介绍 BPMN2.0 1. BPMN 基本建模元素 2. 事件 (Event) 3.活动 (Activity) 4.网关 (Gateway) 5.子流程和调用活动 6.描述 ...

  8. 工作流管理系统(WfMS)介绍

    1.什么是WfMS (1)定义 l         工作流系统是以规格化的流程描述作为输入的软件组件,它维护流程的运行状态,并在人和应用之间分派活动 l         基本概念: Ø         ...

  9. python基础操作笔记

    python基础操作笔记 第二章 变量和简单的数据类型 #2.1输出数据hello world print('--------------------------------------------- ...

最新文章

  1. python入门练习题-python入门-简单基础题练习
  2. Asp.net中执行.EXE程序的方法
  3. 枚举(enum)类型
  4. 微型计算机体系结构的主要特点,高性能微型计算机体系结构:奔腾、酷睿系列处理器原理与应用技术...
  5. jQuery:将文本转化成JSON对象应注意的问题
  6. bluecam连接步骤说明_智能门锁安装步骤分享
  7. 51单片机三种烧录的方法介绍
  8. 12款自动生成器,无聊人士自娱自乐专用
  9. android压缩gif大小,使用手机制作GIF动图,免费无水印、大小可调,安卓、iphone都可以...
  10. 均线颜色怎么区分_均线入门:一图学会区分不同均线的颜色与炒股技巧
  11. 计算机术语死机,计算机“死机”故障原因及处理办法大全
  12. Mac上有哪些软件可以代替Office或Word的软件?
  13. 电脑无法进入bios
  14. python educoder苹果梨子_pythoneducoder苹果梨子煮水的功效_苹果梨子汤的功效
  15. 蜜瓜文案:水果店蜜瓜简单文案,蜜瓜水果朋友圈配的文案
  16. python 实现简单画板_Python图像处理之简单画板实现方法
  17. java 好学_java是什么?对于新手好学吗?
  18. 【莫烦Python】机器要说话 NLP 自然语言处理教程 W2V Transformer BERT Seq2Seq GPT 笔记
  19. Python+Vue计算机毕业设计影评网站系统4i684(源码+程序+LW+部署)
  20. AcWing 238. 银河英雄传说(C++)

热门文章

  1. 小游戏策划案例精选_趣味小游戏活动方案_趣味游戏活动策划书
  2. 2017.9.16队内互测——老年组Day1
  3. Echarts3实例 map地图选中高亮显示
  4. mysql分布式主键_技术分享 | 优化 InnoDB 的主键
  5. 请别再问我什么是分布式事务
  6. 前端基础面试题,菜鸟必备
  7. U8标准接口API生成采购到货单
  8. 电镜三维重构中多构象的辨别方法
  9. IMAU 软件项目管理 期末复习总结 第七章
  10. IE浏览器通过JS提交表单时报错拒绝访问