我使用WF4.0有很长一段时间了,但是对WF3.0和WF3.5自知甚少,对状态机也不甚了解。今天生鱼片前辈的博文:WF4实现工作流驳回流转模型的几种设计方案 中提出的四中实现驳回的方式中。第一种大家都觉得太过麻烦。现在我是使用第二种的。第三种没用过,觉得有些问题。 他在文中提出第四种方式是最好的,我也非常同意。 这篇文章中,将使用第四种状态机的方式实现一个请假流程,这个流程中有驳回操作。 WF4.0的状态机是微软今天发布的,下载地址是:/uploadfile/201212/13/2D1409301.png" /> Flowchart流程图如下: 状态机如下图: WF4.0中状态机中共三种活动属如下: 而我画的状态机中多了一种Composite State,这个也是一种state。在composite中的state将会流进同一个 transition 中。 状态机和顺序流、flowchart不同,状态机的触发事件和路由条件都设置在连线上面,微软称它为transition。我感觉有一点不爽的是,在状态机中同样的条件表达式,不同的情况可能也设置好几次。比如说这个请假流程,天数小于3要在一个transition中设置一次。大于等于3在另外一个transition又要设置一次。这点不如flowchart灵活。 总结: 和flowchart画线驳回相比,虽然少画了flowdecision,工作量感觉还是差不多。还有在flowchart中可以拖状态机,而在状态机中不能拖放flowchart中的活动。同样在顺序工作流中可以拖放状态机,在状态机中不能拖顺序工作流。flowchart和顺序工作流是可以相互嵌套的。 出处:http://zhuqil.cnblogs.com 本文示例源代码或素材下载 (责任编辑:admin) |