本篇作为入门,先让大家了解一下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表单。
下面是详细的步骤:
Step1:创建一个SharePoint顺序工作流项目 .
Step2:添加 QuickFow.dll的引用
Step3:修改工作里基类为 .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.