SharePoint Designer不仅仅可以用来对SharePoint站点的界面进行定制,它同时还内置了一个强大的工作流设计器。使用这个工作流设计器,我们可以通过一系列的配置工作,将指定的步骤、条件、操作组合起来,组合成一个完整的工作流模板。
Denny Zhang有三篇很好的介绍性文章,演示了如何利用SharePoint Designer来创建一个完整的工作流模板:
在SharePoint中实现Workflow(1)
在SharePoint中实现Workflow(2)
在SharePoint中实现Workflow(3)
为了帮助大家对SharePoint Designer 2007有更深入了解,在这篇文章里向介绍几个最基本的概念。
基本概念1、工作流启动方式
在SharePoint Designer中打开工作流设计器之后,第一个界面上就会让我们设定工作流的启动方式,如下图:
可以看到,SharePoint Designer有三种工作流启动方式:
i.项目被创建时自动启动;
ii.项目被更改时自动启动;
iii.由用户手工启动。
基本概念2、步骤
每一个工作流都是由一个或多个步骤组成的,步骤是工作流的基本组成单位。我们在SharePoint Designer里面可以任意添加新的步骤,调整已有步骤的顺序,或者删除某个步骤。
在上面的截图中,我们可以看到整个工作流由多个步骤组成。
基本概念3/4、条件和操作
每一个步骤都是由条件和操作组成的。条件和操作的概念类似于“如果满足某某条件,则执行某某操作”。SharePoint Designer提供了一组内置的且功能强大的条件和操作,我们可以选择自己需要的条件和操作,将它们组合在一起。
上面的图片显示,在“确定报销单正确性”这个步骤中,如果报销单的总金额大于10000元,那么就给报销单的创建者发送一封邮件告诉他报销金额太大,然后删除这张报销单,最后停止当前的工作流实例运行。
上面那个步骤中包含了一个条件、三个步骤。这些步骤会按照先后顺序来执行。条件和步骤的数量可以根据我们的需要来随意设定,甚至不设置条件或者操作。如果没有条件,那么选择的操作就必然会被执行。同样,只有条件没有操作也是被允许的,尽管这种情景没有什么意义。
基本概念5、条件分支
一个步骤里面并不一定只能包含一个条件分支,我们可以添加一个或者多个条件分支。条件分支执行“Else If”的逻辑,类似与“如果满足某某条件,那么执行某某方法,否则,如果满足第二个条件,那么执行某某方法...”。
在上图中,我们可以看到,这个步骤就包含了两个条件分支。第二个条件定义了这样的流程逻辑:如果报销单总金额并没有大于10000,那么就给管理者发送一封邮件,然后更新报销单中的某些数据。
最后,当我们在SharePoint Designer中完成了工作流程的设计,保存这个工作流的时候,SharePoint Designer会自动将流程以Windows Workflow Foundation的.xoml文件保存到服务器上,流程中的规则会保存成.xoml.rules文件,同时还生成其他一些必要的配置和页面文件。
我经常被人问到的一个问题就是,SharePoint Designer里面自带的条件和操作是否可以扩展呢?答案是:当然可以!实际上,这些条件和操作都是标准的Windows Workflow Foundation中的Activity,所以,我们只需要使用Visual Studio 2005创建定制的Activity,然后将其部署到SharePoint Server服务器上,就能够为SharePoint Designer添加上我们自己写的条件和操作了。
在下面所示的图片中,我们就添加了几个自己定制的操作。“发送即时消息”操作可以为我们给指定的用户发送LCS即时消息,“发送手机短消息”操作可以直接将消息用短消息的形式发送到某人手机上,而“获取用户经理信息”可以让我们用自己的逻辑来获取某个用户的经理是谁这样一个信息。