SharePoint学习——工作流(Workflow)

时间:2020-12-29 10:09:28

工作流设计器简介

SharePoint提供了很多即插即用的自动化流程,例如邮件提醒和基本的三态工作流。假设一个操作过程有如下状态:进入新订单,订单发货,已收到付款。三态工作流能够让你跟踪状态的迁移,比如从初始状态(进入新订单)到正在处理(订单发货等)的状态变化。这有很多用处,但是正如它的名字所描述,三态工作流只能跟踪三种状态的迁移并且提示状态间的变化。

你可能经常性的需要在用户做了某些操作后执行一些任务,例如:当用户在列表(List)中创建了一条记录(item)后,或者用户在执行一个操作长时间没有得到结果后执行一些任务。SharePoint工作流能够帮你完成这些任务,然而SharePoint没有提供基于网页的接口来创建这些复杂的功能。

于是SharePoint Designer引入了SharePoint工作流设计器。工作流设计器能够使你在文档库(Document Library)或者列表元素(List Item)符合规定条件(如:一个新元素被创建或者元素的某个列被更新成特定值)时创建一系列需要执行的操作(更新其他列表元素对应值或者发邮件提示等等)。工作流设计器提供了一个简洁的向导来帮助那些没有编程背景的人创建复杂的工作流应用。

创建一个工作流

在SharePoint Designer的工作流中有如下模块:

  • Start options: 开始选项定义了什么情况下工作流可以执行。

  • Initiation parameters: 初始化参数工作流开始执行时所需要的参数。

  • Variables: 变量工作流里面用到的临时变量。

  • Steps:步骤执行条件和执行操作的分组(你可以将若干条件和对应的操作放到一个步骤中,一个工作流可以有若干步骤)。

  • Conditions:条件定义了执行当前操作需要的条件。

  • Actions:操作工作流中符合一定条件执行的具体操作。

你可以通过在选择 文件 SharePoint学习——工作流(Workflow) 新建 SharePoint学习——工作流(Workflow) 工作流,或者在SharePoint内容标签的新建对话框中选择 工作流 SharePoint学习——工作流(Workflow) 空白工作流 来创建一个新的工作流。不管通过哪种方式你都能得到工作流设计向导的第一页,如图9-1所示。在这里,你可以设置工作流的名称,将它绑定到某个List或者Library,定义工作流在什么状态下开始(Start options)。你还可以通过点击窗口底部的按钮定义初始化参数(Initiation parameters)和变量(Variables)。

  SharePoint学习——工作流(Workflow)
图 9-1

当你设置好初始信息后点击下一步按钮。向导会显示你可以定义工作流里的步骤(Steps),条件(Conditions)和操作(Actions)的窗口(图 9-2)。

  SharePoint学习——工作流(Workflow)
图 9-2

工作流示例

工作流设计器是一个包含很多活动部件的复杂对话框。本章节通过创建一个简单的工作流示例来介绍工作流设计器的各个模块。下一章节展示怎样修改一个已经存在的工作流。

大多数Microsoft Office文档在它的元数据中都包含一个标题(title)域。标题通常会包含文件名之外的对用户有用的描述信息。SharePoint的文档库(Document Library)除了文件名同样也有一个标题域。当你上传一个文件时,文件的标题会自动填充到Document库里文件的标题。

通过标题检索网站的文档库是一个不错的主意。但是不幸的是除了Office文档之外的文件可能并没有标题供上传时填充。而且并不是所有人都会填写文档的标题,所以即使是Office文档标题有时候也是空白的。除非标题不是空白的,不然当你通过标题查找文档时可能得不到想要文档。

建议的解决方案是创建一个工作流来检查上传文件的标题,如果为空就拷贝文件名到标题。

具体做法如下:

  1. 选择 文件 SharePoint学习——工作流(Workflow) 新建 SharePoint学习——工作流(Workflow) 工作流来创建一个空白工作流。

  2. 输入工作流名称:设置标题。

  3. 选择共享文档库(Shared Documents library)。

  4. 选择当新的元素(Item)被创建时自动启动这个工作流。

  5. 点击下一步。

    步骤(Step)设定页面的的条件(Conditions)和操作(Actions)标签看起来像按钮,但事实上它们是菜单。 如图 9-3。

    SharePoint学习——工作流(Workflow)

    图 9-3

  6. 选择条件 SharePoint学习——工作流(Workflow) 对比共享文档库(Shared Documents library)域。这样你就插入了一个条件如图9-4所示。

      SharePoint学习——工作流(Workflow)
    图 9-4

  7. 点击域(field)在下拉列表中选择标题(Title)。

  8. 点击等于(equals)选择为空(is empty)。

    重要点 

    条件(Conditions)在一个工作流中是可选参数。如果想让每次工作流执行时都执行相应操作,可以保持该操作的条件为空。

  9. 选择操作(Actions)SharePoint学习——工作流(Workflow) 设置当前元素的域(Set Field in Current Item)。

  10. 点击域(field)选择标题(Title)

  11. 点击值(value)域就会变为可编辑状态,如图9-5。

      SharePoint学习——工作流(Workflow)
    图 9-5

    SharePoint工作流设计器里有很多这样点击变为可编辑状态的域,它们的取值由文档(Document)或者列表(List)的配置决定。

  12. 点击编辑框后面的公式按钮(fx)打开查找对话框

  13. 保持当前元素(Current Item)为源(Source)默认值。选择名称(Name)域 如图9-6。

      SharePoint学习——工作流(Workflow)
    图 9-6

    默认状态下操作(Action)的执行是按顺序进行的(一个接着一个,一个操作执行完后才执行下一个操作)。你可以通过选择条件设置右上角分支菜单里的并行执行所有操作(Run All Actions in Parallel)选项来改变操作的执行顺序(如图 9-7)。如果你选中了这个选项,所有的操作将会在同一时间执行。

      SharePoint学习——工作流(Workflow)
    图 9-7

    只有你有多个操作需要执行的时候并行执行所有操作才有效。如果你只有一个操作,并且你试图配置并行执行选项,这时候当你执行检查工作流(下一步会介绍)时会得到一个错误提示。上面所说的“同一时间”意味着操作不需要互相等待,他们有可能在略微不同的时刻开始和结束。

  14. 如果你没有漏配置或者错配置工作流的话,点击设计器底部的检查工作流(Check Workflow)按钮会得到确认信息,如图9-8。否则错误的配置将会以高亮方式在工作流设计器中标注出来。

      SharePoint学习——工作流(Workflow)
    图 9-8

  15. 点击完成(Finish)。这时工作流设计器将保存你在工作流中设置的步骤,状态信息如图9-9所示。

      SharePoint学习——工作流(Workflow)
    图 9-9

备注 

步骤15中的描述的保存过程并不是一个编译过程。SharePoint Designer将你的配置保存为一系列的标记文件。

通过刚刚的步骤,你创建了一个工作流。标记文件和默认表单储存在工作流库里,如图9-10所示。

  SharePoint学习——工作流(Workflow)
图 9-10

因为这是一个简单的工作流,所以只有几个文件被创建:

  • Initiation form 初始化表单(Ensure Title.aspx) : 当用户手动启动工作流时用户需要通过这个表单输入工作流初始化需要的数据。

  • Workflow definition file工作流定义文件 (Ensure Title.xoml): 工作流中实际定义的操作。

  • Workflow rules file工作流规则文件 (Ensure Title.xoml.rules) : 工作流中定义的执行条件。

  • Workflow configuration file工作流配置文件 (Ensure Title.xoml.wfconfig.xml) : 用来定义工作流和SharePoint连接的文件。

包含很多用户交互的工作流可能会包含更多的标记文件——一般的ASPX表单文件,每个需要用户输入的操作和对应的ASPX表单文件。

编辑已经建好的工作流

和其他任何设计一样,工作流也是可编辑的。用户需求可能需要修改截止时间,或者之前设计的工作流随着需求变化出了什么错误。幸运的是,你可以在创建工作流后轻易的修改它们。

有两种方式可以打开一个存在的工作流来编辑:

  • 在文件夹列表(Folder List)中找到它,然后双击工作流的XOML文件。

  • 选择 文件 SharePoint学习——工作流(Workflow) 打开工作流,选择需要打开的工作流。

不管通过哪种方式,工作流设计器都会打开你的工作流的第一个步骤。接下来你可以做任何你想要的修改。比如,如果用户抱怨之前创建的设置标题工作流没有在告知他们的情况下设置了文件的标题怎么办?他们想要被提示,这样他们就有机会自己去修改文件标题使它更合理些。

这也很容易做到:

  1. 打开设置标题工作流。

  2. 选择操作 SharePoint学习——工作流(Workflow) 发送邮件。

  3. 点击邮件(This message)打开电子邮件定义对话框。

  4. 点击To文本框右边的地址栏按钮。

  5. 选择元素的创建者(who Created Current Item),点击 添加> >按钮。

  6. 在主题栏输入Blank title replaced with filename

    可以通过主题栏后面的fx 按钮,查找SharePoint里其他元素作为邮件的主题。每个To,CC或者主题栏中只能添加一个查找,下面描述的邮件正文可以添加多个查找。

  7. 在邮件正文中输入以下文本:

    You recently uploaded the file: to the Shared Documents library. This file did not
    have a Title field, therefore we have automatically assigned the name of the file
    to the title. If you wish to change the title to something easier for users to
    understand, please edit the properties of the document.
    
    Thank you.
  8. 将光标定位到冒号(:)后面,点击添加正文查找(Add Lookup to Body)按钮。

  9. 保持源(Source)为当前元素(Current Item),选择Name域。点击确定。定义E-mail信息对话框应该如图9-11所示。

      SharePoint学习——工作流(Workflow)
    图 9-11

  10. 点击确定,点击完成保存编辑的工作流。这样邮件提示就生效了。

SharePoint Designer的工作流用了版本控制器原理。如果你编辑了一个有实例正在运行的工作流,那么这个实例还会继续在它初始化时的工作流中运行。你可以在列表(List)或者库(Library)的工作流设置页面看到当前每个版本工作流里运行的实例的个数,可以删除任何不需要的工作流版本。

你可以从库工具栏中打开文档库选择设置 SharePoint学习——工作流(Workflow) 文档库设置 点击 工作流来进入到工作流设置页面。图9-12显示了删除工作流的页面。

  SharePoint学习——工作流(Workflow)
图 9-12

译自:

Professional Microsoft Office SharePoint Designer 2007
by Woody Windischman, Bryan Phillips and Asif Rehmani 
Wrox Press © 2009 Citation