状态机工作流,顺序工作流和Flowchart
什么是工作流,工作流可以说是对业务处理过程的建模,当我们设计工作流的时候,我们首先要分析业务处理过程中要经历的步骤。然后,我们就可以利用WF创建工作流模型来模拟业务的处理过程。
WF工作流包含两种类型的工作流:顺序工作流和状态机工作流。
顺序工作流
提供了一系列有组织的步骤,一般情况下,步骤是逐一执行的。可能有的步骤需要等待某些事件的发生才可以继续执行,但通常情况下顺序工作流一般用于无需人工干预的操作。
使用顺序建模风格来构建的工作流非常易于理解和创作。它们可以用来模拟简单到难度适中的过程。由于程序性活动相当于编程语言中的程序性语句,你就可以使用这种类型的工作流来模拟几乎所有类型的过程。顺序工作流还很适合模拟简单的并且没有人类交互的过程(比如服务)。
状态机工作流
提供了一系列的状态。工作流从初始状态开始,到终止状态结束。两个状态之间定义行为进行过渡。通常情况下,状态机工作流对事件作出反应,事件的发生将会使状态发生改变。
Flowchart
Flowchart是一种众所周知的、能够直观地表示业务过程的图表。业务分析师、架构师和开发人员经常使用Flowchart作为他们表达过程定义和逻辑流的共同语言。
WF 3.x发布以来,客户向微软反馈了许多他们所喜欢的和不喜欢的。这些来自使用WF 3.x客户的反馈中,有一个共同点,就是“我们希望像Sequence、Parallel等一样简单。却像StateMachine一样灵活”。当微软深入发掘了这种观点背后的场景时,他们发现客户的过程(或者一部分过程)往往是顺序的,但在某些情况下还要求能够回退(对一些客户来说,这种情况属于“异常”,而对另外一些客户来说,它们则在“期望”之内)。Flowchart是WF 4.0的一个新的活动,它直截了当的解决了这种类型的情况(而且这种情况的数量并不小)。Flowchart是一种非常强大的结构,因为它提供了顺序的简单,再加上回退到上一个执行点的能力,可以用来模拟在处理外部输入时的重试逻辑,而这在现实世界中的业务过程中是非常常见的。
到底采用哪种类型的工作流,取决于具体的业务管理过程。
申请使用笔记本电脑流程:
员工提交申请表单信息(员工姓名、所在部门、职位)等信息--->如果当前公司空闲笔记本电脑数量=0则返回,否则继续--->如果当前员工为正式工则继续,否则返回--->如果当前员工为技术部、市场部、商务部则继续,否则返回--->通知综合部人员提取库存电脑发放给申请人并系统备案,流程结束。
申请笔记本电脑的流程由电脑自动根据用户提交的申请信息就可以完成,期间不需要人工交互或者因等待其它事件而暂停或者中止,这就是常见的顺序工作流。
公司请假流程:
员工提交申请请假表单信息(员工姓名、所在部门、职位)等信息--->如果是普通员工,自动流转到员工所在部门审批,如果部门审批通过且请假天数<=3则成功并系统备案,如果请假天数>3则自动流转到综合部审批,综合部审批通过则请假成功并备案--->如果是部门领导,自动流转到综合部门审批,综合部审批通过则请假成功并备案
请假流程有些过程需要暂时中止并等待其他过程的开始,需要与人交互来完成的。所以这个常见的状态机工作流。
状态机工作流的好处在于它可以定义状态,定义工作流如何从一个状态到另外一个状态。当外面的事件发生的时候,状态机工作流可以移动到不同的状态。外部行为可以是宿主程序引发工作流内部事件,也可以是宿主程序编程实现的下一个状态,也可以利用SetState Activity移动到下一个状态。
也就是说,状态机工作流强调职工与职工之间的工作交互,而顺序工作流更强调职工与计算机之间的工作交互。
信息来自:http://blog.sina.com.cn/s/blog_6158b3f90100ysrh.html
转载于:https://www.cnblogs.com/vincentDr/p/3340943.html
状态机工作流,顺序工作流和Flowchart相关推荐
- 【工作流】工作流快速入门
[是什么] 工作流是一类能够完全或者部分自动执行的经营过程,它根据一些列过程规则.文档.信息或任务能够在不同的执行者之间进行传递与执行. 工作流程:流程就是一组活动按照一定顺序组成的序列流,简单说,流 ...
- 技术实践干货 | 从工作流到工作流
本文作者: 葱油饼,观远前端工程师,落地团队开发规范,开发质量与速度并存,致力于打造更易用的 ABI 产品. 背景 先举个简单的例子,因为工作需要,你可能每天要从数据库抽取数据,然后做成报表,最后以邮 ...
- 《Activiti/Flowable 深入BPM工作流》---工作流中的网关有哪些?
<Activiti/Flowable 深入BPM工作流>---工作流中的网关有哪些? 一. 问题: 1. 网关分为哪几类? 2. 什么是排他网关? 3. 什么是并行网关? 4. 什么是包 ...
- java jbpm工作流,三分钟明白 Activity工作流,工作流jbpm
三分钟明白 Activity工作流,工作流jbpm 一. 什么是工作流 Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每 ...
- 工作流与工作流管理系统的概念
什么是工作流 ● 工作流的是从英文单词 Workflo w 翻译得来的,它本身的含义比较抽象 Work表示工作或任务, Flow 的含义是流动.流程或流量等,.以此类推, 用活动及活动之间变化的 ...
- flow工作流java_Java工作流引擎jflow对流程的结束大总结
关键字:工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 表单引擎 工作流功能说明 工作流设计 工作流快速开发平台 业务流程管理 bpm工作流系统 java工作 ...
- SaaS-IHRM 项目-Activiti7基础原理与使用 工作流引擎 工作流使用
第1章 什么是工作流 1.1工作流介绍 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是"使在多个参与者 之间按照某种预定义的规则自动进行传递文档.信息或任 ...
- SharePoint 工作流解决方案(一):顺序工作流和状态机工作流
SharePoint 的工作流是基于 Workflow Foundation 的,我们就先谈谈 WF,只有对 WF 有正确的认识,才能找到 SharePoint 工作流的解决方案. Workflow ...
- 开发顺序工作流时注意的几个事项
1.每一个Task的生命周期,包括四个活动CreateTask,onTaskChanged,CompleteTask和DeleteTask. 2. 同一个Task的活动必须设置相同的Correlati ...
最新文章
- 查看Unix/Linux的CPU个数和内存大小,系统位数(转载)
- 信息检索的评价指标(Precision、Recall、F-score、MAP、ROC、AUC)
- java搭建阿里云服务器环境(java环境+mysql+tomcat)和部署 JavaWeb 项目到云服务器(十分详细)
- IOS 应用官方接口地址
- 【Python】安利一个超好用的Pandas数据挖掘分析神器
- Centos7 安装mongodb记录
- linux 恢复boot分区,Linux boot分区格式化后恢复 示例
- 为什么SpringBoot如此受欢迎,以及如何有效地学习SpringBoot?
- resnet50能用cpu跑吗_2020年12月1日更新。性价比最高入门游戏CPU--intel 10100F装机配置推荐。...
- 结构设计模式 - 装饰器设计模式
- openjdk7的ImageIO.read()导致jvm异常crash
- jQuery控制表单重置
- Loadrunner之-VirtualUserGenerator录制web程序脚本
- linux密码忘记重新设置密码
- 液晶显示器面板型号速查[转贴]
- 微信视频号如何申请认证,流程是什么?
- 打游戏哪种蓝牙耳机比较好?适合玩游戏的无线蓝牙耳机
- 机器学习【吴恩达|周志华|李宏毅|算法】清单
- 如何用Word优雅地打印代码
- 微积分 = 微分 + 积分