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

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

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

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

WF4.0实战(七):请假流程(带驳回操作)_第1张图片

Flowchart流程图如下:

WF4.0实战(七):请假流程(带驳回操作)_第2张图片

状态机如下图:

WF4.0实战(七):请假流程(带驳回操作)_第3张图片

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

WF4.0实战(七):请假流程(带驳回操作)_第4张图片

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

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

总结:

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

完整例子代码:/Files/zhuqil/leaveFlowSolution.rar

参考文章:

http://www.cnblogs.com/carysun/archive/2010/04/21/WF4-Reject.html

http://www.cnblogs.com/carysun/archive/2010/04/21/WF4-StateMachine.html

 

 

 


原文链接: http://www.cnblogs.com/zhuqil/archive/2010/04/21/qingjiaflow.html

你可能感兴趣的:(WF4.0实战(七):请假流程(带驳回操作))