随笔分类 -  WWF

业务工作流平台设计(九)
摘要:自定义审核活动 前面已经讲了许多有关自定义活动在设计上需要注意的一些事项,但对于自定义审核活动来讲,我们的设计还要有许多工作要进行。为了简化用户的流程上的设计将流程的一些算法封装到自定义活动中可以大大增加自定义活动的使用的方便性。其直接的效果是从数十个活动减少到三四个,当然这只是针对电台文稿审核来讲的。而且基本上从根本上杜绝了IFELSE、WHILE等活动的使用,这可将用户条件编辑的复杂度降为0!... 阅读全文
posted @ 2007-06-25 10:14 李学斌 阅读(4516) 评论(14) 推荐(0)
业务工作流平台设计(八)
摘要:自定义活动(五) 中止活动的运行 无论用停止、放弃、中止或中断等之类的这些词都不能很直接地表达我这里所表达的意思!这是目前为止我遇到的封装业务逻辑到自定义活动的最大障碍;因为就自定义审核活动来讲,用户所设计的工作流中每一个活动可能被多次执行。例如需要多个人参与同一个层次的审核,当条件不满足是便“停止”运行,然后等待下一个用户来输入用于计算的基础数据,并重新执行该逻辑,直到条件满足该活动执行完毕并过渡到下一个活动为止。需要特别说明一下,这里的自定义活动的逻辑包含了基础数据的读取,条件的判断及是否往下执行、原地等待还是回退的处理,而不是用一大堆WF预置的活动来支持,全部功能都封装于一个活动之内;另外这里不对回退进行说明,有关回退的内容请看后续的文章。 在WF的SDK中有一个很关键的术语“persistence point”,它决定了下次加载时WF实例开始运行的点。我将用这个词语来解释一些问题,让我们来看一下它在我们“中断”工作流中所产生的影响! …… 至此同一个活动可重复执行的问题得到了解决。至此自定义活动的话题也将结束。下面将针 阅读全文
posted @ 2007-06-11 09:17 李学斌 阅读(3671) 评论(15) 推荐(0)
业务工作流平台设计(五)
摘要:数据交换 要想使自定义活动能够通用,那么活动所需要的数据来源也必须遵循一定的规范才可以,然而这很难做到。那自定义审核活动来讲,它可能需要在三个方面的数据(实际还要多): l 用户设计工作流时指定用于审核的人员列表,指定那些人可参与这个审核活动。这里有一个技术点,就是如何实现自定义属性编辑器,这里不多讲。 l 工作流实例运行时获得当前用户信息,根据当前用户自定义审核活动可以判断此人是否可以执行此活动,即此人是否在用户列表中存在。如果不可以则中断活动的运行。有关如何中断活动的运行请看后面的文章。 l 活动执行时所需要的数据。业务工作流平台设计(四)中的“尽可能减少占有时间 ”中讲到将用户数据的收集从工作流中分离出来,以节省占有时间,同时也应将数据同工作流进行分离。工作流不负责这些数据的存储和查询,但自定义审核工作流会应用这些数据进行处理以决定该活动是否运行到下一步去;或是继续等待其它用户的审核;或是退回(可经修改再次提交审核);或是不被采用(不能再次提交审核)。 阅读全文
posted @ 2007-05-25 09:16 李学斌 阅读(4139) 评论(8) 推荐(0)
业务工作流平台设计(四)
摘要:这一小节要讲的东西,目前我认为是最重要的东西。这是业务工作流平台中非常重要的一部分;;也是模板的重要组成部分。我们将从以下几个方面讲述自定义活动: 尽可能减少占有时间 数据交换 锁定处理 保持状态的一致性及完整性 中止活动的运行 以下是针对自定义审核活动特有的设计 功能逻辑的设计 回退与重新递交 跨审的实现 阅读全文
posted @ 2007-05-22 09:35 李学斌 阅读(4567) 评论(9) 推荐(0)
业务工作流平台设计(三)
摘要:这里的要说明的重点是如何设计一个通用的最终用户可自行设计的编辑器,也就是说这个编辑器不只是应用于前篇文章所说的新闻系统。这里的技术点在于,每个应用系统都有自己特定的自定义活动,而这个设计器又如何去识别这些自定义活动。对于这个技术点来讲其实现还是比较简单的,那就是用“反射”。 来看一下我们的应用系统会有什么样的要求? 阅读全文
posted @ 2007-05-21 09:26 李学斌 阅读(4899) 评论(11) 推荐(0)
业务工作流平台设计(二)
摘要:的确正如别人所说的那样,WF只是一个foundation而不是一个platform,如果要实现完整的业务工作流平台支持,就这个平台的实现来讲,从技术上说不是很难,我想微软应该可以实现这一点,也许是下一个版本:)。或许就platform和foundation来讲,微软更看中的是foundation。总之现在的应用还是比较麻烦的事情。 阅读全文
posted @ 2007-05-21 09:15 李学斌 阅读(4405) 评论(6) 推荐(0)
业务工作流平台设计(一)
摘要:如何有效地让客户自已去灵活地、随时随地地设计使用这些流程,而不需要工程人员或售后人员的干预是一个非常棘手的问题。客户关心的是流程中有几个环节。如果让用户自己去用IFELSE或WHILE去设计每一个环节的详细内容,则客户很快会否决这套系统,即使是技术熟练的工程人员也会皱眉的,维护成本会大幅的攀升的,而且开发人员还要为工作流设计器中的每一个条件做一些复杂和额外的工作。 阅读全文
posted @ 2007-05-17 09:15 李学斌 阅读(8757) 评论(16) 推荐(1)
WF的一些技术细节与应用体会(三)
摘要:  有关HandleExternalEvent的一些事情。有一个很有趣的现象,是望星观月发现的。情况大体是这样的,当一个工作流设计中含有一个HandleExternalEvent活动时,在其运行到该活动后,如果没有触发一个相关的事件,则该活动会被持久化的。这里使用的持久化是SqlWorkflowPersistenceService作为持久化服务,并且在构造函数中将instanceOwnershipDuration和loadingInterval两个参数指定了不为零的值。 但在持久化后,在数据库中的InstanceState表中的ownerID和ownedUntil为空值,且nextTimer为永久。 阅读全文
posted @ 2007-02-16 08:25 李学斌 阅读(6612) 评论(2) 推荐(0)
WWF的一些技术细节与应用体会(二)
摘要:  上一篇中我着重讲了有关工作流持久化的一些相关问题,这篇文章我将讲述活动执行的完整性。及如何设计我们的应用程序界面。 阅读全文
posted @ 2007-01-22 09:18 李学斌 阅读(6217) 评论(17) 推荐(0)
WWF的一些技术细节与应用体会(一)
摘要: 基本WWF的研究已经有一段时间了,在Windows SDK Documentation中的有关WWF的资料也看了个差不多。现在理论上的东西基本上没有什么问题,那么问题就在于如何去应用了。从网上查了一下,这方面的案例很少,也许非WWF的其它工作流引擎的应用可能会多一些,但我没有去查。为此我自己进行了一些探索,也不知摸索的对不对,但自己感觉能够走的通,所以写下此文。可能会存在一些弯路,还望有识之士给以点评。这里以顺序工作流进行说明。 首选是持久化与锁定问题及DelayActivity过期执行的问题: 阅读全文
posted @ 2007-01-16 09:48 李学斌 阅读(8052) 评论(12) 推荐(0)
Rehosting WWF 设计器 之运行时定制活动的外观
摘要:  最近在运用工作流设计器时遇到一个问题,客户在选择工作流中的一个活动时需要高亮显示,而不仅是有选择句柄。问题好像很简单,活动的颜色控制最简单的控制方式是由ActivityDesignerTheme来控制的,当然你也可以在Designer中的OnPaint方法中进行手工绘制,但我是不喜欢这样去劳心的:)。 阅读全文
posted @ 2007-01-12 08:56 李学斌 阅读(4479) 评论(2) 推荐(0)
Rehosting WWF Designer 之定制活动的外观
摘要:  本文的主要目的为:在Rehost WWF Designer后,我希望用户看到的是更为专用化的设计器而不是由微软所提供的缺省的E文提示(至少当前版本是这样子的)。因为工作繁忙,本文所指的外观设计并不全面,只局限于标题和文字,还希望大家原谅。不过就一般的应用而言,我想这些能满足大部分需求。 阅读全文
posted @ 2006-12-28 09:07 李学斌 阅读(4274) 评论(3) 推荐(0)
Rehosting WWF Designerp之从工具箱拖动活动到设计器上
摘要:   在自定义工具箱中调用DoDragDrop方法时的注意事项。 阅读全文
posted @ 2006-12-25 09:31 李学斌 阅读(4988) 评论(3) 推荐(0)
Rehosting WWF 设计器
摘要:  有关Hosting Workflow Designers的话题在ms-help://MS.MSSDK.1033/MS.NETFX30SDK.1033/WF_GettingStarted/html/185cc192-b19d-463c-80db-6c2d488419e7.htm中有下面的内容: The primary classes that you must use when you host a workflow designer are as follows: · The .NET DesignSurface class, which implements what the user perceives as a designer by providing a completely self-contained design surface. · The WorkflowView class, which displays a visual representation of a workf 阅读全文
posted @ 2006-12-11 09:23 李学斌 阅读(6214) 评论(3) 推荐(0)