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即时消息,“发送手机短消息”操作可以直接将消息用短消息的形式发送到某人手机上,而“获取用户经理信息”可以让我们用自己的逻辑来获取某个用户的经理是谁这样一个信息。

 



一步一步SharePoint 2007之三十五:在SharePoint中实现Workflow(1)——创建一个判断列
摘要
  在安装SharePoint的时候,笔者就已经提到,要顺利安装SharePoint,必须首先安装Microsoft Windows Workflow Foundation 2.2以上的版本,这是不是意味着SharePoint可以设定Workflow呢?
  答案是肯定的,在SharePoint 2007中,我们可以设定Workflow,好让程序按照指定的流程运行。
  这里,笔者将以在通知列表中发布一个通知,并按通知发放的员工类别,向指定的员工发送一封邮件为例,来实现Workflow。
  当然,笔者在这里实现的是一个非常简单的流程,即如果是经理级别,就发送经理级别应该收到的邮件,而如果是普通员工,就收到普通员工应该收到的邮件。朋友们在实现这个简单的流程后,自然可以尝试更为复杂的流程了。
  本篇文章将介绍在SharePoint中实现Workflow的第一部分——创建一个Workflow的判断列。
正文
  为了更清晰地让朋友们了解在SharePoint中实现Workflow的几个步骤,本篇文章将被分割成三个小的部分,第一部分讲解创建一个判断列,第二部分讲解创建一个Workflow,第三部分讲解运行Workflow。因此而给大家带来的阅读不便,就请海涵了:)

  下面将记录每一步的操作过程。
  1、首先打开我的网站的Document Center站点,然后打开Announcements列表。
  在Announcements列表中,点击工具栏上的Settings,并在弹出的菜单中,选择Create Column项,即可打开Create Column页面。
请单击查看原始尺寸的图片。

  2、在Create Column页面中,填入Column name,并选择The type of information in this column is为Choice (menu to choose from)。
请单击查看原始尺寸的图片。

  3、选择完The type of information in this column is后,页面将会呈现输入各个Choice项的文本框。我们可以在这里输入我们打算预定义的各种员工类别,并在Default value中点击一下鼠标,以指定一个默认项。
请单击查看原始尺寸的图片。

  4、点击OK按钮后,该Column将被创建,并返回Announcements列表页面。

  至此,第一部分的创建一个判断列的工作就完成了。
  下一篇文章我将记录如何在SharePoint中实现Workflow的第二部分——创建一个Workflow的过程。欢迎大家继续关注:)多谢!


一步一步SharePoint 2007之三十六:在SharePoint中实现Workflow(2)——创建一个Workflow
摘要
  本篇文章将介绍在SharePoint中实现Workflow的第二部分——创建一个Workflow。
正文
  下面将记录每一步的操作过程。
  1、首先用Designer打开我的网站。
请单击查看原始尺寸的图片。

  2、在Folder List中,双击Docs,以打开Document Center子站点。
请单击查看原始尺寸的图片。

  3、在Designer的主菜单中,依次选择File,New,Workflow,并单击Workflow菜单项,则Workflow Designer将会打开。
请单击查看原始尺寸的图片。

  4、在Give a name to this workflow中输入一个名称,为该Workflow指定一个名称。
  在What SharePoint list should this workflow be attached to中选择Announcements。然后进入下一步。
请单击查看原始尺寸的图片。

  5、点击Conditions按钮,在弹出的菜单中选择Custom Condition (Announcements)项。
请单击查看原始尺寸的图片。

  6、单击完Custom Condition (Announcements)菜单项后,Conditions按钮后面将会出现一个If语句。
请单击查看原始尺寸的图片。

  7、单击If语句中的field,在弹出的下拉列表中选择“员工类别”。
  单击If语句中的value,在弹出的下拉列表中选择“经理级别”。
请单击查看原始尺寸的图片。

  8、单击Actions按钮,在弹出的菜单中选择Send an Email项。同样,单击完后,会出现一个Email语句。
请单击查看原始尺寸的图片。

  9、单击Email语句中的this message,则弹出Email编辑框。我们在其中编辑好Email的内容。注意:这是发给经理级别的邮件。


  10、编辑完Email后,就是这样的效果了。
请单击查看原始尺寸的图片。

  11、单击Add 'Else If' Conditional Branch,则出现另外一个If分支。
  按照前面的过程,添加一个发给普通员工的Email。注意:这是发给普通员工的邮件。


  12、操作完成后的效果就是这样的了。
请单击查看原始尺寸的图片。

  13、单击Finish按钮,则系统开始应用该Workflow。


  14、经过不是很长的一段时间的等待后,站点中就增加了Workflows这个文件夹。
  如果我们不是很满意设置好的Workflow,我们可以双击Announcements Workflow.xoml,则会重新打开Workflow Designer页面,我们就可以重新一步一步的设置这个Workflow了。
请单击查看原始尺寸的图片。

  至此,创建一个Workflow就成功了,恭喜恭喜!
  下一篇文章我将记录如何在SharePoint中实现Workflow的最后一部分的过程。欢迎大家继续关注:)多谢!


一步一步SharePoint 2007之三十七:在SharePoint中实现Workflow(3)——运行Workflow
摘要
  本篇文章将介绍在SharePoint中实现Workflow的最后一部分——运行Workflow。
  需要提醒一下的是,要完成本部分的学习,您的电脑上必须安装了SMTP服务。
正文
  下面将记录每一步的操作过程。
  1、首先打开我的网站,依次点击Document Center、Announcements,进入Announcements列表页面。
请单击查看原始尺寸的图片。

  2、在Announcements列表界面中点击New,在弹出的菜单中选择New Item,即进入创建Announcement页面。
  在创建Announcement页面中填写好Title和Body,并选择好“员工类别”,然后单击Ok按钮保存记录。
请单击查看原始尺寸的图片。

  3、在刚刚添加的那条记录的弹出菜单中选择Workflows。
请单击查看原始尺寸的图片。

  4、这就是Workflows页面。
请单击查看原始尺寸的图片。

  5、在Workflows页面的Start a New Workflow下点击Announcements Workflow,即进入Start页面。点击Start按钮开始执行Workflow。
请单击查看原始尺寸的图片。

  6、执行完毕后,在列表中就可以看到Completed的标识。
请单击查看原始尺寸的图片。

  7、我们打开邮箱,可以看到,已经收到一封新的邮件了。由于我们前面设置的“员工类别”是“经理级别”,可以看到,邮件正文正是我们前面为经理级别设置好的邮件正文。
  请注意:如果您的电脑上尚未安装SMTP服务,您可能会收不到邮件。
请单击查看原始尺寸的图片。

  至此,在SharePoint中实现Workflow就成功了,恭喜恭喜!
  当然,在Designer中实现的Workflow只能说是比较简单的Workflow了,事实上我们可以在VS中写好自己的Workflow,然后再在SharePoint中使用。
  后面的文章中,笔者将讲到更为精彩的内容,欢迎大家继续关注:)多谢!
posted on 2008-06-01 12:55  晃晃悠悠  阅读(565)  评论(0)    收藏  举报