1工作流开发概述
SharePoint基于WF(Window Workflow Foundation)构建了它的工作流功能。WF是SharePoint工作流框架的基础,要深入了解SharePoint工作流的开发,首先应该了解WF的一些基础知识,本章对WF的技术细节并不会过多讲解。本节将讲述SharePoint工作流的基础知识,并介绍系统自带的工作流模板的使用和默认的工作流任务操作方式。
2工作流开发环境的搭建
如果使用Visual Studio 2005开发SharePoint工作流应用,首先需要安装Visual Studio 2005的WF扩展——Visual Studio 2005 Extensions for Windows Workflow Foundation ,可以在以下地址下载:http://www.microsoft.com/downloads/details.aspx?familyid= 5D61409E-1FA3-48CF- 8023-E8F38E709BA6&displaylang=zh-cn。然后安装Office SharePoint Server 2007 SDK。
采用Visual Studio 2005开发SharePoint工作流,无论是开发环境的搭建还是开发时调试和测试,都比较烦琐。Visual Studio 2008已经发布正式版了,VS 2008提供了对SharePoint工作流开发更好的支持,直接集成了开发、部署和调试。本章的示例将采用VS 2008来进行。
为了便于调试和测试工作流,选择直接在SharePoint服务器环境下开发,因此VS 2008要直接安装在SharePoint服务器上。
3 SharePoint工作流的基本概念
SharePoint工作流是一个预先定义好的对列表项或文档库文档的处理流程。一个工作流实例跟一个列表项或文档进行关联,工作流实例不能脱离列表项存在。当需要用户处理数据的时候,比如进行审批操作,系统会创建一个任务到某个任务列表中,审批用户操作列表中的任务来实现跟流程实例的交互。
工作流实例可以在列表新建、修改时自动启动,或者可以由用户手动启动。MOSS支持两种工作流的开发方式。
I 利用SharePoint Designer可以设计简单的无代码顺序工作流。
在SharePoint Designer中,可以直接创建跟某个列表或文档库关联的工作流,在工作流中,可以直接访问列表项的字段,获取字段的值作逻辑判断或者给字段赋值,给用户分配审批任务并动态生成审批界面。SharePoint Designer设计的工作流只能跟一个列表(或文档库)关联,单个工作流无法用于多个列表,不同列表(或文档库)的工作流处理逻辑即使一样,也只能分别进行设计。
采用SharePoint Designer设计工作流的优点是操作简单,无须编译和部署,缺点是只能实现顺序操作逻辑,无法实现退回等循环逻辑,审批界面自动生成,也无法实现一些复杂的操作。7.2节将演示采用SharePoint Designer设计工作流的步骤。
II 利用Visual Studio可以开发复杂的顺序或状态机工作流。
在Visual Studio 2008中,可以直接在WF设计器中开发工作流,工作流开发好后,编译成DLL,然后采用Feature部署到SharePoint服务器,在网站中将Feature激活后,工作流即可使用了,可以把这种工作流关联到多个列表。所以又称Visual Studio 2008设计的工作流为工作流模板。
Visual Studio 2008开发工作流的优点是能实现很复杂的流程逻辑,开发出来的工作流模板可以供多个网站、多个列表使用。流程任务的操作界面可以采用infopath或者直接采用aspx页面,这样就可以实现较复杂的页面操作。缺点就是开发部署比较复杂,对开发人员要求较高。
4 SharePoint工作流的操作方式
SharePoint的工作流的默认操作方式并不适合用户的操作习惯,一般来说其他工作流产品的操作方式是用户在一个页面上完成所有操作,包括查看业务数据(被审批数据)、填写审批意见等。而SharePoint工作流的操作方式是:业务数据跟审批数据分离,业务数据可以用列表项或文档库中的文档来表示,用户审批的时候默认只看到审批页面,只有单击链接才能查看业务数据,这种操作方式对文档审批还是说的过去的,但是对列表数据的审批操作就有点"不够人性化"了。在实际的项目中,需要对用户的操作习惯进行引导。
SharePoint默认提供了很多工作流模板,这些工作流模板跟采用VS 2008开发的工作流模板操作上是一样的。下面看一下系统自带的"审批"工作流模板的使用。要在SharePoint中使用一个工作流模板,首先需要将工作流模板跟文档库或列表关联,操作步骤如下。
Step1 在文档库的设置页面单击"工作流设置"链接,如图1所示。
图1 工作流设置
Step2 在添加工作流页面中,选择工作流模板为"审批",输入工作流名称为"文档审批",单击"下一步",如图2所示。
图2 添加工作流
Step3 在工作流参数设置页面中,选择任务分配对象为"串行",输入两个用户作为审批者,选择"文档被拒绝"时取消工作流,选择"工作流完成后"为"更新审批状态",如图3所示。单击"确定"按钮完成设置。
图3 设置工作流参数
Step4 为了方便审批用户的操作,需要将用户任务WebPart添加到网站的首页,如图4所示。
图4 添加用户任务WebPart
工作流的配置操作已经完成,下面我们看一下这个工作流的使用。
Step1 在文档库中新建或上传一个文档,然后在下拉列表中选择"工作流"选项,如图5所示。
图5 选择"工作流"选项
Step2 单击"文档审批"工作流,如图6所示。
图6 选择工作流
Step3 在接下来的配置审批参数页面中,可以输入审批信息,如图7所示。再单击"启动"按钮。
图7 配置审批参数
现在文档审批工作流已经启动,返回到文档库页面,可以看到文档库上多出来一个"文档审批"栏,如图8所示。通过"文档审批"栏中的链接可以链接到工作流监控和管理页面,如图9所示。通过工作流监控和管理页面,可以查看工作流任务的分配和完成情况,强制终止工作流。
图8 文档库中工作流链接
图9 工作流监控页面
用第一个审批用户的账号登录系统,可以在用户任务Web部件中看到需要操作的任务,如图10所示。
图10 工作流任务
单击任务链接,在接下来的任务操作页面中可以通过链接查看被审批的文档,通过下方的"批准"和"拒绝"按钮进行审批,如图11所示。
图11 任务页面
用第2个审批用户的账号登录系统,进行批准操作。两个审批用户都批准之后,返回到文档库页面,可以看到文档审批的状态已经变成"已批准",如图12所示。
图12 文档库