SharePoint的工作流具有很多的问题,其在开发复杂工作流上的能力“有限”,或者说其“潜力无限”,但是挖掘过程太过复杂,鉴于这个原因,结合自己在实际项目中的经验,笔者在5月份发布了QuickFlow1.0版,供大家免费使用,并在6月初的MSIW SharePoint精英峰会上进行了介绍,之后一直很懒散,没有对其进一步进行介绍,在接下的几篇文章中,将会对其进行深入的讲解。
本篇作为入门,先让大家了解一下QuickFlow在开发工作流时的基本操作。
QuickFlow作为SharePont WF工作流的扩展,采用VS2008作为开发工具,提供了一个新的工作流模型:WF3.0的 Flowchart, 并提供了一系列封装好的Activity。
QuickFlow具有以下核心类:
类名 |
描述 |
|
FlowchartWorkflow |
工作流基类 |
|
Start |
工作流开始 |
|
End |
工作流结束 |
|
Label |
标签 |
做为一个虚节点,只是起到显示的作用 |
Task |
任务分配 |
分配单个任务,需要处理其TaskCreating事件给User属性赋值 |
MultiTak |
分配多个任务 |
可以选择并行分配任务还是串行分配 |
GroupTask |
分配任务给SharePoint的组 |
|
Step |
步骤 |
可以作为其他活动的容器,QuickFlow的第一级活动必须是本身提供的几个,如果要用到其他活动,如CodeActivity,可以将其放于Step内部 |
Decison |
工作流流向判断 |
只支持两路分支 |
Rounter+Rule |
多路分支判断 |
在Step内部,可以通过这两个活动实现多路流向判断 |
QuickFlow的开发步骤跟VS2008开发SharePoint+InfoPath工作流的标准步骤基本是一样的:
1) 创建工作流项目
2) 添加加对QuickFlow.dll的引用,并将QuickFlow中的活动添加到工具栏。(download:http://quickflow.codeplex.com/)
3) 修改工作流基类为FlowchartWorkflow
4) 将默认的OnWrokActivited活动删除,并添加Start活动
5) 然后即可继续添加其他活动
6) 设计InfoPath表单。
7)写代码建立Workflow和InfoPath之间的联系
8)Deploy and Test
下面是详细的步骤:
Step1:创建一个SharePoint顺序工作流项目 .
Step2:添加 QuickFow.dll的引用
Step3:修改工作里基类为 QuickFlow.FlowchartWorkflow
Step4: 添加 QuickFlow中的活动到工具栏.
Step5: 添加一个Start活动,并设置其 CorrelationToken属性(选中OwnerActivityName为工作流类,CorrelationToken为任意字符串).
Step6: 添加 GroupTask到设计器.设置 Group为一个SharePoint组的名字
Step7: 添加Decision活动, 设置Conditon属性.一般设置为按照上一级审批的审批结果判断.
通过GroupTask的TaskOutcomes可以取到审批结果
GroupTask.TaskOutcomes中的值是怎么来的呢?它对应任务InfoPath表单的 __TaskOutcome字段,
在表单中只要在审批动作执行的时候给__TaskOutcome赋予相应的值在工作流代码中即可取到。
Step8: 设计 InfoPath任务表单并将其发布到项目根目录下。
Step8: change workflow configure :
Step9: 发布工作流.
说明:在最终运行工作流之前,需要先把QuickFlow.dll部署到GAC.
转载自:http://www.cnblogs.com/jianyi0115/archive/2009/08/27/1554740.html