文章分类 - WF
Something to study WF
摘要:当开始工作流时,发现某一工作流实例没能按照画定的流程图正常运行,而是运行到一半时自动关闭. 由于初学WF,没太多经验,看了好几篇高手介绍WF异常处理的文章, 照葫芦画葫芦得加上了FaultHandlerActivity,ThrowActivity 等,但就是怎么弄也找不到出错的这个Exception,超级郁闷,还是第一次找个Exception找了那么久都找不到的. 后来看到一文介绍: ...
阅读全文
摘要:实现WF状态机动态跳转功能 --> 前段时间应客户要求,需要把工作流设计成每个节点(stateActivity)都需要自由跳转. 比如有一个工作流画好的模板,按工作顺序运行下来就是:输入->提交服务->输出. 当开发业务的时候,写业务的程序员必须要加载这工作流模板,按设计好的顺序运行,写的逻辑只写输入时要怎么处理,输出时要怎么处理而已. 不过,要允许在这个工作流的这几个节点间暴...
阅读全文
摘要:【翻译】WF从入门到精通(第十二章):策略和规则 上一篇:【翻译】WF从入门到精通(第十一章):并行活动 学习完本章,你将掌握: 1.知道在工作流处理过程中怎样进行策略和规则的处理 2.理解前向链接以及这是如何影响到基于规则的工作流处理过程的 3.为工作流处理过程创建规则 4.结合Policy活动来使用规则 我敢肯定,我们中的大多数人编写面向过...
阅读全文
摘要:【翻译】WF从入门到精通(第十一章):并行活动 上一篇:【翻译】WF从入门到精通(第十章):事件活动 学习完本章,你将掌握: 1.理解在工作流环境中Parallel活动是怎样执行的,并且懂得如何使用它们 2.并行执行路径中的同步数据存取和临界代码区 3.使用ConditionedActivityGroup活动去执行根据条件表达式判断执行路径的并行活动 在...
阅读全文
摘要:【翻译】WF从入门到精通(第十章):事件活动 上一篇:【翻译】WF从入门到精通(第九章):逻辑流活动 学习完本章,你将掌握: 1.使用HandleExtenalEvent活动创建特定的事件处理程序 2.在你的工作流中使用Delay活动 3.在你的工作流中使用EventDriven活动 4.在你的工作流中使用Listen活动 5.理解EventH...
阅读全文
摘要:【翻译】WF从入门到精通(第九章):逻辑流活动 上一篇:【翻译】WF从入门到精通(第八章):调用外部方法及工作流 学习完本章,你将掌握: 1.学会怎样使用IfElse活动来执行条件表达式 2.学会怎样使用While活动来执行循环 3.理解Replicator活动是怎样来模拟for循环的,以及它的使用方法。 我们已经看到过怎样执行工作流内部和外部的代码,...
阅读全文
摘要:【翻译】WF从入门到精通(第八章):调用外部方法及工作流 上一篇:【翻译】WF从入门到精通(第七章):基本活动的操作例 学习完本章,你将掌握: 1.创建并调用你的工作流外部的本地数据服务 2.理解怎样使用接口来为宿主进程和你的工作流之间进行通信。 3.使用设计的外部方法在你的工作流和宿主应用程序之间传输数据。 4.在一个正执行的工作流中调用其它工作流...
阅读全文
摘要:【翻译】WF从入门到精通(第七章):基本活动的操作 上一篇:【翻译】WF从入门到精通(第六章):加载和卸载实例 学习完本章,你将掌握: 1.知道怎样使用Sequence活动 2.知道怎样使用Code活动 3.知道在工作流中怎样抛出异常并对其进行处理 4.知道如何在代码中暂停和终止你的工作流实例 在本章,我们将正式引入前面已经看到过的一组...
阅读全文
摘要:【翻译】WF从入门到精通(第六章):加载和卸载实例 上一篇:【翻译】WF从入门到精通(第五章):workflow跟踪 学习完本章,你将掌握: 1.理解工作流实例为什么要卸载和重新加载及其时机 2.理解工作流实例为什么要持久化及其时机 3.搭建SQL Server 2005,使其为WF和工作流持久化提供支持 4.使用SqlWorkflowPersist...
阅读全文
摘要:【翻译】WF从入门到精通(第五章):workflow跟踪 上一篇:【翻译】WF从入门到精通(第四章):活动及workflow类型介绍 学习完本章,你将掌握: 1.workflow的可选服务 2.创建一个事件跟踪数据库 3.激活事件跟踪服务 4.创建一个自定义跟踪 5.查看你的workflow的跟踪信息 目前为止,我们看过workflo...
阅读全文
摘要:【翻译】WF从入门到精通(第四章):活动及workflow类型介绍 上一篇:【翻译】WF从入门到精通(第三章):workflow实例 学习完本章,你将掌握: 1.workflow活动是怎样形成的 2.顺序工作流和状态机工作流之间的区别 3.创建一个顺序工作流 4.创建一个状态机工作流 活动是WF中workflow处理的基本单位,假如你再把一个...
阅读全文
摘要:【翻译】WF从入门到精通(第三章):workflow实例 上一篇:【翻译】WF从入门到精通(第二章):workflow运行时 学习完本章,你将掌握: 1.使用不带参数和带参数二种方式初始化一个workflow实例 2.测定你运行中的workflow实例的状况 3.停止workflow实例 4.确定你的workflow空闲或终止的原因 一个wo...
阅读全文
摘要:【翻译】WF从入门到精通(第二章):workflow运行时 上一篇:【翻译】WF从入门到精通(第一章):WF简介 学习完本章后,你将掌握: 1.在你的应用程序中使用workflow 2.理解“WorkflowRuntime”对象的的基本功能 3.知道如何启动和停止workflow运行时 4.能够使用各种workflow运行时的相关事件 ...
阅读全文
摘要:【翻译】WF从入门到精通(第一章):WF简介 以下是一小段进行邮政编码验证的代码 string USCode = @"^(\d{5}$)|(\d{5}$\-\d{4}$)"; string CanadianCode = @"[ABCEGHJKLMNPRSTVXY]\D[A-Z]\d[A-Z]\d"; public static bool ValidatePostalCode(stri...
阅读全文
摘要:本文主要介绍WF中状态机工作流的基础知识,状态机工作流和顺序型工作流不同。顺序型工作流一般是比较固定的,可预测的,和系统交互的时候比较多。而状态机工作流一般是不可预测,和人的交互会比较多一些,一般有回退流程的时候使用状态机工作流会比较好一点,如何正确的选择顺序型工作流还是状态机工作流是十分重要的。
阅读全文
摘要:我们除了使用WF提供的SqlWorkflowPersistenceService外,还可以自定义持久化服务。因为有的时候你可能不想使用Sql Server数据库,我们就可以通过自定义持久化服务来使用其他的数据库,文件等来进行持久化存储。
阅读全文
摘要:工作流系统中有很大一部分需要和人进行交互,有的时候需要很长的时间,所以我们不可能让工作流实例一直保存在内存当中,这就需要进行持久化操作。工作流的持久化就是保存工作流的某些状态信息到持久化存储里,比如sql数据库,文件中,一旦被保存到持久化存储里了,工作流就可以从内存中移除掉,在需要的时候在进行装载。
插一句,在Lotus Notes中由于他的设计和数据都是以文档的形式存储在一个nsf中的,所以他天生就对持久化支持,只要我们做简单的做一个FileSave或是Call doc.Save(True,True)就会被持久存储,也正是如此,我们很多关于工作流的状态信息我们都存储在每个数据文档本身当中,可在.Net,Java这些当中却还需要花费很大的力气和DB等交互才可以完成,两种不同风格的开发对比起来确实挺有意思。
阅读全文
摘要:EventHandlingScopeActivity活动包含一个主线子活动和一组事件处理活动(EventHandlersActivity),它的主线子活动中只能包含一个子活动。它会执行其主子活动比如SequenceActivity。 同时,可能会执行每个EventDrivenActivity,也可能不执行它们,这取决于在SequenceActivity 活动执行时是否发生了它们的事件,当主线活动执行完了整个EventHandlingScopeActivity活动也就结束了。
阅读全文
摘要:WF 提供的通信模型是构建于队列系统的基础之上,我们可以使用自定义活动来注册以接收关于队列的消息,而宿主应用程序中的服务则发送关于队列的消息。自定义活动可以使用此模型来处理外部事件,也可以传递异步活动执行的完成。这样,您的活动可以先执行到某一点,然后等待激发因素的到来以便继续执行。下图描述了宿主应用程序中的代码与工作流中的代码(或活动)之间的通信模型
阅读全文