【效率管理】高效率工作流开发

【效率管理】高效率工作流开发
【效率管理】高效率工作流开发

【效率管理】高效率工

作流开发

本章主要阐述SharePoint Designer 2007(SPD)的工作流应用及利用WF对SharePoint Designer工作流组件(动作和条件)进行扩展,讲解利用WF和Visual Studio 2008开发工作流模板的方法。本章提供视频教程:采用SPD设计工作流的默认方式和定制后的方式。

本章包括:

n 工作流开发概述

n 采用SharePoint Designer设计工作流

n SharePoint Designer工作流的扩展

n 采用Visual Studio 2008 开发工作流模板

7.1 工作流开发概述

SharePoint基于WF(Window Workflow Foundation)构建了它的工作流功能。WF是SharePoint工作流框架的基础,要深入了解SharePoint工作流的开发,首先应该了解WF的一些基础知识,本章对WF的技术细节且不会过多讲解。本节将讲述SharePoint工作流的基础知识,且介绍系统自带的工作流模板的使用和默认的工作流任务操作方式。

7.1.1 工作流开发环境的搭建

如果使用Visual Studio 2005开发SharePoint工作流应用,首先需要安装Visual Studio 2005的WF扩展——Visual Studio 2005 Extensions for Windows Workflow Foundation ,能够在以下地址下载:http:///downlo ads/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服务器上。

7.1.2 SharePoint工作流的基本概念

SharePoint工作流是一个预先定义好的对列表项或文档库文档的处理流程。一个工作流实例跟一个列表项或文档进行关联,工作流实例不能脱离列表项存在。当需要用户处理数据的时候,比如进行审批操作,系统会创建一个任务到某个任务列表中,审批用户操作列表中的任务来实现跟流程实例的交互。

工作流实例能够在列表新建、修改时自动启动,或者能够由用户手动启动。MOSS支持俩种工作流的开发方式。

l 利用SharePoint Designer能够设计简单的无代码顺序工作流。

在SharePoint Designer中,能够直接创建跟某个列表或文档库关联的工作流,在工作流中,能够直接访问列表项的字段,获取字段的值作逻辑判断或者给字段赋值,给用户分配审批任务且动态生成审批界面。SharePoint Design er设计的工作流只能跟一个列表(或文档库)关联,单个工作流无法用于多个列表,不同列表(或文档库)的工作流处理逻辑即使一样,也只能分别进行设计。

采用SharePoint Designer设计工作流的优点是操作简单,无须编译和部署,缺点是只能实现顺序操作逻辑,无法实现退回等循环逻辑,审批界面自动生成,也无法实现一些复杂的操作。7.2节将演示采用SharePoint Designer设计工作流的步骤。

l 利用Visual Studio能够开发复杂的顺序或状态机工作流。

在Visual Studio 2008中,能够直接在WF设计器中开发工作流,工作流开发好后,编译成DLL,然后采用Feature部署到SharePoint服务器,在网站中将Feature激活后,工作流即可使用了,能够把这种工作流关联到多个列表。所以又称Visual Studio 2008设计的工作流为工作流模板。

Visual Studio 2008开发工作流的优点是能实现很复杂的流程逻辑,开发出来的工作流模板能够供多个网站、多个列表使用。流程任务的操作界面能够采用infopath或者直接采用aspx页面,这样就能够实现较复杂的页面操作。缺点就是开发部署比较复杂,对开发人员要求较高。

7.1.3 SharePoint工作流的操作方式

SharePoint的工作流的默认操作方式且不适合用户的操作习惯,一般来说其他工作流产品的操作方式是用户在一个页面上完成所有操作,包括查见业务数据(被审批数据)、填写审批意见等。而SharePoint工作流的操作方式是:业务数据跟审批数据分离,业务数据能够用列表项或文档库中的文档来表示,用户审批的时候默认只见到审批页面,只有单击链接才能查见业务数据,这种操作方式对文档审批仍是说的过去的,可是对列表数据的审批操作就有点“不够人性化”了。在实际的项目中,需要对用户的操作习惯进行引导。

SharePoint默认提供了很多工作流模板,这些工作流模板跟采用VS 2008开发的工作流模板操作上是一样的。下面见一下系统自带的“审批”工作流模板的使用。要在SharePoint中使用一个工作流模板,首先需要将工作流模板跟文档库或列表关联,操作步骤如下。

Step1 在文档库的设置页面单击“工作流设置”链接,如图7-1所示。

图7-1 工作流设置

Step2 在添加工作流页面中,选择工作流模板为“审批”,输入工作流名称为“文档审批”,单击“下一步”,如图7-2所示。

图7-2 添加工作流

任务列表是用户存放工作流给审批用户分配的任务列表项的列表,可选择系统已经存在的任

务列表或者新建一个任务列表。历史记录列表用户存放工作流运行工程中产生的日志信息。Step3 在工作流参数设置页面中,选择任务分配对象为“串行”,输入俩个用户作为审批者,选择“文档被拒绝”时取消工作流,选择“工作流完成后”为“更新审批状态”,如图

设置工作流参数页面又叫做工作流关联界面,本示例中的关联界面是采用InfoPath表单开

发的,这个表单叫做工作流关联表单,7.4.7节将讲述工作流关联表单的开发。

Step4 为了方便审批用户的操作,需要将用户任务WebPart添加到网站的首页,如图7-4所示。

图7-4 添加用户任务WebPart

工作流的配置操作已经完成,下面我们见一下这个工作流的使用。

Step1 在文档库中新建或上传一个文档,然后在下拉列表中选择“工作流”选项,如图7-5所示。

图7-5 选择“工作流”选项

Step2 单击“文档审批”工作流,如图7-6所示。

图7-6 选择工作流

Step3 在接下来的配置审批参数页面中,能够输入审批信息,如图7-7所示。再单击“启动”按钮。

图7-7 配置审批参数

这个配置审批参数的页面在工作流启动(初始化)的时候出现,因此叫做初始化表单,能够采用infopath开发,在7.4.8节将具体讲述工作流初始化表单的开发。

当下文档审批工作流已经启动,返回到文档库页面,能够见到文档库上多出来一个“文档审批”栏,如图7-8所示。通过“文档审批”栏中的链接能够链接到工作流监控和管理页面,如图7-9所示。通过工作流监控和管理页面,能够查见工作流任务的分配和完成情况,强制终止工作流。

图7-8 文档库中工作流链接

图7-9 工作流监控页面

用第一个审批用户的账号登录系统,能够在用户任务Web部件中见到需要操作的任务,如图7-10所示。

图7-10 工作流任务

单击任务链接,在接下来的任务操作页面中能够通过链接查见被审批的文档,通过下方的“批准”和“拒绝”按钮进行审批,如图7-11所示。

图7-11 任务页面

任务操作页面又称为任务表单,能够采用infopath开发,在7.4.4节将具体讲述。

用第2个审批用户的账号登录系统,进行批准操作。俩个审批用户都批准之后,返回到文档库页面,能够见到文档审批的状态已经变成“已批准”,如图7-12所示。

图7-12 文档库

7.2 采用SharePoint Designer设计工作流

SharePoint Designer能够设计无代码的工作流,对列表项或文档启用处理逻辑。SharePoint Designer只能设计出简单的顺序工作流,本节了解一下具体的操作方法。

7.2.1 列表项流程示例

本节演示一个员工请假流程的设计:员工提交请假单,由审批人进行审批,审批人批准之后,自动添加一个日程到日历列表中,如果不批准,则邮件通知提交人。具体的操作步骤如下。

Step1 创建列表。新建一个自定义列表,名称为“员工请假”,添加如图7-13所示的栏。

图7-13 创建列表

Step2 启用列表的内容审批。通过“列表设置”→“版本控制设置”,启用列表的内容审批。设置“仅限可批准项目的用户”能够查见列表中的草稿项目,如图7-14所示。

图7-14 启用内容审批

Step3 新建工作流。用SharePoint Designer 打开站点,选择“文件”→“新建”→“工作流”命令,如图7-15所示。

图7-15 新建工作流

Step4 指定工作流名称和启动方式。在定义新工作流界面中,输入工作流名称为“员工请假流程”,选择附加到“员工请假”列表,再选择“允许从项目中手工启动此工作流”,如图7-16所示。

图7-16 定义新工作流界面

Step5 添加审批步骤。将步骤名称改为“经理审批”,在操作中,选择“从用户处收集数据”,单击“此用户”链接,在弹出的对话框中选择一个审批人,如图7-17和图7-18所示。

图7-17 添加审批步骤图

图7-18 选择审批用户

Step6 设计审批步骤需要采集的数据。单击“数据”链接,在自定义任务向导中输入任务名称为“请假审批”,如图7-19所示,再单击“下一步”按钮。

图7-19 添加“请假申请”

添加一个名称为“审批意见”的多行域,如图7-20所示。添加一个名称为“是否同意”的选项类型域,选项为“批准和拒绝”,如图7-21所示。

图7-20 添加“审批意见”域

图7-21 添加“是否同意”域

之上的操作实际上是创建了一个任务内容类型,且且创建了其编辑表单,如图7-22所示。

图7-22 请假审批内容类型

Step7 修改审批任务ID变量名。通过添加“从用户处收集数据”动作创建了一个任务内容类型,在工作流运行的时候,会创建一个任务列表项,这个列表项的ID会被放到流程的变量中,以便从工作流中能够访问任务数据。我们把存放这个任务列表项ID的变量名修改为“请假审批任务ID”,如图7-23和图7-24所示。

图7-23 修改工作流变量名

图7-24 重新选择任务ID绑定到的变量

Step8 添加审批完成后的处理逻辑。再添加一个工作流步骤,名称为“审批完成”,如图7-25所示。

图7-25 添加审批完成步骤

Step9 添加判断条件。经理审批同意时需要批准列表项,且且将请假休息添加进日程列表中,首先需要添加判断经理审批是否同意的条件,查找到审批任务列表项的是否同意字段,进行判断即可。从“条件”菜单中选择“比较任意数据源”,如图7-26和图7-27所示。

图7-26 添加比较任意数据源条件

图7-27 比较任意数据源

比较任意数据源条件是“如果值等于值”的形式,第一个值能够绑定到当前列表项的任意字段,或者是其他列表项的字段。这里我们要把它绑定到任务列表的“是否同意”字段。

单击“值”,再单击“绑定”图标,在定义工作流查找窗口中,选择数据源为“任务”,选择域为“是否同意”,设置匹配值为任务ID匹配工作流变量中的“请假审批任务ID”,如图7-28所示。

图7-28 绑定到是否同意字段

设置条件为任务的“是否同意”字段值等于“批准”,如图7-29所示。

图7-29 设置判断条件为“批准”

Step10 添加列表项审批操作。在“操作”中选择“设置内容审批状态”,且将内容审批状态设置为“已批准”,如图7-30所示。

图7-30 添加审批操作

Step11 创建日历信息。添加一个“创建列表项”操作,选择列表为“个人日历”(若不存在,则先创建此日历列表),将日历的标题设置为“请假”,将开始时间和结束时间绑定到当前列表项的相应字段,如图7-31所示。

图7-31 创建日历项

Step12 添加批准未通过的操作。添加一个Else If条件分支,添加设置内容审批状态操作,将内容审批状态设置为“已拒绝”,添加一个发送邮件操作,给启动流程的用户发送一封提醒邮件,如图7-32所示。

图7-32 添加内容审批为“拒绝”和发送邮件操作

SharePoint Designer设计的工作流的使用和7.1.3节描述的操作方式基本是一样的。不同的是,单击任务链接首先进入的任务查见页面,在任务查见页面中单击“编辑项目”链接后才会转到任务编辑页面,如图7-33,图7-34和图7-35所示。

图7-33 任务列表

相关主题
相关文档
最新文档