博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

基于WF4 Workflow Service实现简单审批流程(上)

Posted on 2009-12-21 20:38  生鱼片  阅读(6861)  评论(15编辑  收藏  举报

WF4中对和WCF的整合提供更为强大的支持。WF4中提供了一些强大的内置消息活动,比如SendReceive等。本文提供了一个简单的审批实例来给大家介绍下WF4.0中的工作流服务(Workflow Service),当然本文中的例子离实际的应用还差的很远。
 

1.我们要实现一个简单的请假审批流程,主要包括申请人填写表单提交申请,主管收到通知后进行审核,是否核可该申请,本文中主要实现第一步申请人提交申请,在提交申请中我们还会对业务层次做一些检查,如下图:

clip_image002 

在该申请中申请人填写表单提交申请后,会进行业务逻辑上的检查即请假的开始时间应小于请假的结束时间,如果检查没有通过会给用户提示,如果通过则告诉用户申请成功送出。可以查看申请的所有单据的审批情况。
 

2.主管收到通知后打开申请,可以进行审核是否通过,这步会在后面的文章中实现,如下图:

clip_image004 

3.我们需要先准备一张表来存储请假申请数据,表结构如下:

clip_image006

4.下面就来看看具体的程序实现,项目结构如下图:

clip_image008

CaryLeave.Activities:自定义活动库

CaryLeave.Contracts:契约库

CaryLeave.Data:数据层,采用AEF

CaryLeave.ServiceWF4的工作流服务库

CaryLeave.WebAsp.net WebForm客户端

 

5.我们主要来看下实现审批的工作流服务,如下:

clip_image010

 

6.在工作流服务中,我们首先会进行业务逻辑上的检查,即请假的开始时间应该小于请假的结束时间,通过后我们保存该申请,并给用户发送回复信息,其中的检查请假时间的工作流CheckService.xamlx如下:

clip_image012

具体的程序请大家直接看代码吧。 

程序下载:CaryLeaveWFService.rar