WF工作流技术内幕 —— 通过Web服务调用Workflow工作流(开发持久化工作流)

如果你曾经负责开发企业ERP系统或者OA系统,工作流对你来说一定并不陌生。工作流(Workflow)是对工作流程及其各操作步骤之间业务规则 的抽象、概括、描述。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。有见及 此,微软在.NET 3.0基础上发布了WF,WCF,以及WCS(身份验证解决方案),WPF(为开发表现层而设)。WF正是解决企业核心问题的关键,通过WF可以轻松地轻 松地按照业务逻辑去实现开发,然后把WF发布为Web服务,这样客户端与服务与服务器端通讯就不会再受开发语言的影响,通过Web服务就可以轻松调用WF 去实现业务操作。

 

 

 

下面以一个简单的订单录入系统为例子,为你介绍一下如何将Workflow工作流发布为Web服务。

为了实现一个持久化工作流,首先以实用工具sqlcmd来建立一个本地数据库,打开命令提示符窗口,输入

sqlcom -S localhost/SQLEXPRRESS -E -Q "create database WorkflowPersistence"

然后打开文件夹

/Microsoft.Net/Framework/v3.0/Windows Workflow Foundation/SQL/[Lauguage]

里面有2个脚本文件

SqlPersistenceService_Schema.sql , SqlPersistenceService_Logic.sql

在数据库WorkflowPersistence上运行此脚本文件,数据库就可以成功创建。

 

实例描述:当客户第一次加入订单时通过Web服务调用Start方法来创建新的Workflow对象实例,之后可以多次调用AddOrder方法添加订 单,在订单没有提交前,此工作流对象实例会处于一个持久化的状态。当服务器处于空闲状态下Workflow对象的有关数据会存储于 WorkflowPersitence数据库里面,这样做可以有效减少服务器缓存的压力。最后调用End方法提交订单后,Workflow工作流对象才会 结束,Workflow对象的数据就会在数据库中被删除。

 

这里先定义一个Order类,别忘记给对象加上Serializable串行化属性

[Serializable]      

public class Order

{...}

 

为Order开发一个操作类OrderManager,里面包括一个方法AddOrder,当每加入一个Order,方法就会返回新加入Order的ID

public class OrderManager        

{  

     public int AddOrder(Order order)

     {..........}

}

 

现在对应此实例我们先开发一个接口IService_T1,Start方法表示启动此Workflow工作流,而End表示此工作流完结

namespace Microsoft.IService
{
    public interface IService_T1
    {
        void S

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值