WF4.0实战(七):请假流程(带驳回操作)

简介:

我使用WF4.0有很长一段时间了,但是对WF3.0和WF3.5自知甚少,对状态机也不甚了解。今天生鱼片前辈的博文:WF4实现工作流驳回流转模型的几种设计方案 中提出的四中实现驳回的方式中。第一种大家都觉得太过麻烦。现在我是使用第二种的。第三种没用过,觉得有些问题。 他在文中提出第四种方式是最好的,我也非常同意。 这篇文章中,将使用第四种状态机的方式实现一个请假流程,这个流程中有驳回操作。

    WF4.0的状态机是微软今天发布的,下载地址是:http://wf.codeplex.com/releases/view/43586,我就迫不及待的安装好了,试用了一番。

    这个Demo一是展现一下WF4.0状态机的功能,二是为了使用状态机实现这个工作流中常用的驳回操作,三是为了展示用WF4.0实现一个简单的请假流程的。流程图如下:

Flowchart流程图如下:

状态机如下图:

WF4.0中状态机中共三种活动属如下:

    而我画的状态机中多了一种Composite State,这个也是一种state。在composite中的state将会流进同一个 transition 中。

    状态机和顺序流、flowchart不同,状态机的触发事件和路由条件都设置在连线上面,微软称它为transition。我感觉有一点不爽的是,在状态机中同样的条件表达式,不同的情况可能也设置好几次。比如说这个请假流程,天数小于3要在一个transition中设置一次。大于等于3在另外一个transition又要设置一次。这点不如flowchart灵活。

总结:

    和flowchart画线驳回相比,虽然少画了flowdecision,工作量感觉还是差不多。还有在flowchart中可以拖状态机,而在状态机中不能拖放flowchart中的活动。同样在顺序工作流中可以拖放状态机,在状态机中不能拖顺序工作流。flowchart和顺序工作流是可以相互嵌套的。



本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2010/04/21/qingjiaflow.html,如需转载请自行联系原作者

相关文章
|
前端开发 JavaScript
vue3.0 bpmn-js + TS 简易教程
bpmn.js是一个BPMN2.0渲染工具包和web建模器, 使得画流程图的功能在前端来完成. 这里主要记录本人在开发bpmn中的流程
1528 0
|
XML 存储 JavaScript
Flowable学习笔记(二、BPMN 2.0-基础 )
Flowable学习笔记(二、BPMN 2.0-基础 )
3710 0
Flowable学习笔记(二、BPMN 2.0-基础 )
|
11月前
|
SQL 关系型数据库 MySQL
MySQL8 窗口函数
MySQL 8 引入了窗口函数,这是一种强大的分析工具,可以在查询结果集中执行计算而无需将数据分组到多个输出行中。本文介绍了窗口函数的基本概念和使用方法,并通过几个实际案例展示了如何使用窗口函数进行成绩和排名统计、销售数据分析等操作。
394 1
MySQL8 窗口函数
|
8月前
|
前端开发 测试技术 API
我同学不知道UnoCSS是什么,我教他用之后效率直接倍增
原子化 CSS 是一种 CSS 的架构方式,它倾向于小巧且用途单一的 class,并且会以视觉效果进行命名。可以将原子化的 CSS 框架理解为这类 CSS 的统称
751 5
|
开发框架 前端开发 Linux
前端知识笔记(二十四)———快速创建桌面端(electron-egg)
前端知识笔记(二十四)———快速创建桌面端(electron-egg)
830 0
|
11月前
|
XML Java 数据库连接
SpringBoot集成Flowable:打造强大的工作流管理系统
在企业级应用开发中,工作流管理是一个核心组件,它能够帮助我们定义、执行和管理业务流程。Flowable是一个开源的工作流和业务流程管理(BPM)平台,它提供了强大的工作流引擎和建模工具。结合SpringBoot,我们可以快速构建一个高效、灵活的工作流管理系统。本文将探讨如何将Flowable集成到SpringBoot应用中,并展示其强大的功能。
2070 1
|
XML 安全 API
理解并实现单点登录(SSO)的技术解析
【5月更文挑战第21天】本文解析了单点登录(SSO)技术,旨在解决多系统登录的效率和安全问题。SSO允许用户在集中认证系统登录后,无须反复输入凭证即可访问其他受信任应用。其原理基于信任机制,通过会话令牌实现身份验证。文中提到了两种实现方式:SAML-based SSO,利用SAML断言交换安全信息;OAuth 2.0-based SSO,通过授权码或访问令牌授权。实施SSO时需关注认证中心安全、令牌有效期、跨域通信及用户体验优化。
1251 3
|
JavaScript
vue项目中引入阿里图标iconfont
该文章指导如何在Vue项目中引入并使用阿里图标库Iconfont,包括图标的选取、下载配置文件及在项目中引入和使用图标的具体步骤。
|
存储 数据安全/隐私保护 Python
`zxcvbn`是一个用于密码强度估计的开源库,由Dropbox开发。它基于一系列启发式方法,包括密码字典、常见密码模式、键盘布局等,来评估密码的强度。
`zxcvbn`是一个用于密码强度估计的开源库,由Dropbox开发。它基于一系列启发式方法,包括密码字典、常见密码模式、键盘布局等,来评估密码的强度。
|
存储 缓存 算法
使用Java实现高效的数据缓存系统
【2月更文挑战第3天】在大规模的应用程序中,数据缓存是提高应用程序性能的一种重要方法。本文介绍了如何使用Java实现高效的数据缓存系统。我们将讨论缓存的设计原则和缓存算法的选择,同时详细说明如何使用Java内置的缓存库和其他开源工具来构建一个可靠、高效的数据缓存系统。