随笔 - 234, 文章 - 12, 评论 - 1671, 阅读 - 74万
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on   生鱼片  阅读(6864)  评论(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

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
点击右上角即可分享
微信分享提示