欢迎来到天天文库
浏览记录
ID:9643400
大小:49.50 KB
页数:2页
时间:2018-05-04
《sharepoint 状态机工作流解决方案(二):sharepoint 中的 wf 状态机》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、SharePoint状态机工作流解决方案(二):SharePoint中的WF状态机 在前文中我们提到SharePoint是在WF工作流引擎之上,封装了事件驱动接口的一个工作流平台;SharePoint在WF上扩充了很多Activity,其中和WF密切相关的有三个常用Activity是:OnWorkflowActivated,CreateTask,OnTaskChanged。 一个简单的SharePoint顺序流。 OnWorkflowActivated:响应流程启动的事件。 CreateTask:生
2、成SharePoint的任务。 OnTaskChanged:响应任务被改变的事件。 在一个流程中只能有一个OnWorkflowActivated;可以有任意数量的CreateTask和OnTaskChanged,但必须成对; 很多SharePoint工作流解决方案,在顺序流模式下,将CreateTask和OnTaskChanged组成一个自定义的Activity,然后利用ReplicatorActivity的自动复制功能,使之支持多人同时审批。这种方式流程很简洁,但顺序流不支持回退,遇到需要回退的情况,
3、只能通过WhileActivity模拟,流程又会变得很复杂。 一个简单的SharePoint状态机 流程包含了三个状态启动、审批和完成;再添加其他状态就可以实现状态之间的回退。 响应启动事件中包括了OnWorkflowActivated和SetStateActivity 添加审批人中包括了CreateTask 响应审批事件中包括了OnTaskChanged和SetStateActivity WF的每个StateActivity只能包含一个StateInitializationActivity,用于
4、添加审批人和实现初始化的业务逻辑。可以包含多个EventDrivenActivity,用于同时响应多个审批事件,和实现审批后的业务逻辑;EventDrivenActivity的第一个控件必须是HandleExternalEventActivity(OnTaskChanged的基类)。 从上图中我们看到,在状态机下CreateTask和OnTaskChanged仍然是必须成对的,但他们的位置分开了,CreateTask处于StateInitalizationActivity中,OnTaskChanged处于E
5、ventDrivenActivity中。 可以多人同时审批的SharePoint状态机 如果要多人同时审批,需要在StateInitializationActivity中添加多个CreateTask,和在StateActivity中添加多个EventDriven。 添加审批人中包括了A的CreateTask和B的CreateTask。 响应A的审批事件中包含了A的OnTaskChanged。 响应B的审批事件中包含了B的OnTaskChanged。 如果需要添加更多的审批人,以此类推。 Shar
6、ePoint状态机工作流存在的问题 从上面我们可以发现,SharePoint的状态机应用存在下面两个问题: 1、EventDrivenActivity中的流程存在冗余,当流程复杂,审批人多的时候,很难维护。 2、审批人数在设计期就必须确定,不能改变。 在下一篇《SharePoint状态机工作流解决方案(三);内置缺省流程逻辑的SharePoint状态机》中,我们会介绍对这两个问题的解决方案。编缉推荐阅读以下文章SharePoint状态机工作流解决方案(三);内置缺省流程逻辑的SharePoint状态机
7、SharePoint状态机工作流解决方案(一):为什么要用状态机——..,。
此文档下载收益归作者所有