WF4中对和WCF的整合提供更为强大的支持。WF4中提供了一些强大的内置消息活动,比如Send,Receive等。本文提供了一个简单的审批实例来给大家介绍下WF4.0中的工作流服务(Workflow Service),当然本文中的例子离实际的应用还差的很远。
1.我们要实现一个简单的请假审批流程,主要包括申请人填写表单提交申请,主管收到通知后进行审核,是否核可该申请,本文中主要实现第一步申请人提交申请,在提交申请中我们还会对业务层次做一些检查,如下图:
在该申请中申请人填写表单提交申请后,会进行业务逻辑上的检查即请假的开始时间应小于请假的结束时间,如果检查没有通过会给用户提示,如果通过则告诉用户申请成功送出。可以查看申请的所有单据的审批情况。
2.主管收到通知后打开申请,可以进行审核是否通过,这步会在后面的文章中实现,如下图:
3.我们需要先准备一张表来存储请假申请数据,表结构如下:
4.下面就来看看具体的程序实现,项目结构如下图:
CaryLeave.Activities:自定义活动库
CaryLeave.Contracts:契约库
CaryLeave.Data:数据层,采用AEF
CaryLeave.Service:WF4的工作流服务库
CaryLeave.Web:Asp.net WebForm客户端
5.我们主要来看下实现审批的工作流服务,如下:
6.在工作流服务中,我们首先会进行业务逻辑上的检查,即请假的开始时间应该小于请假的结束时间,通过后我们保存该申请,并给用户发送回复信息,其中的检查请假时间的工作流CheckService.xamlx如下:
具体的程序请大家直接看代码吧。