代码改变世界

SharePoint 2010工作流系列(2):SharePoint Designer 2010中工作流的条件和操作概览

2009-11-10 09:13  Windie Chai  阅读(6108)  评论(12编辑  收藏  举报

上一篇文章中,我介绍了SharePoint Designer 2010相对于SharePoint Designer 2007的一些变化,并没有介绍SharePoint Designer工作流的重要组成单元:条件(Condition)和操作(Action、或作“活动”),本文将着重介绍在SharePoint Designer 2010中,条件和操作都发生了什么样的变化。

条件(Condition)

下图显示了SharePoint Designer 2010的所有条件:

image

从上图可以看出,SharePoint Designer 2010的条件基本和2007时代一模一样,只增加了一个Person is a valid SharePoint user条件。

image

Person is a valid SharePoint user条件用来判断给定的用户是不是一个有效的SharePoint用户。如果只是在SharePoint内部运行工作流的话,这个条件看起来有些多余。但别忘记SharePoint 2007引入了BDC(Business Data Catalog)来连接外部业务系统,在SharePoint 2010中,BDC被改名为BCS(Business Connectivity Services),其功能和易用性都有了极大的改进。假如我们需要从外部系统中传入的条目中获取用户来分配任务,就必须判断这个用户是不是有效的SharePoint用户,这时候Person is a valid SharePoint user条件就派上了用场。

我在上一篇文章中提到了,SharePoint Designer 2010可以创建3种类型的工作流,除了List Workflow之外,其余的两种工作流都不能完全支持上图中的所有条件,其中,Reusable Workflow不能使用所有和File相关的条件,而Site Workflow只能使用If any value equals value和Person is a valid SharePoint user两个条件。

操作(Action)

介绍完条件,我们再来看看SharePoint Designer 2010中的操作有什么样的改进,下图显示了SharePoint Designer 2010中的部分操作:

image

即使粗略查看上图所示的部分操作,也可以发现SharePoint Designer 2010增加了许多内置操作。在SharePoint Designer 2010中,操作分为6大类:

  • Core Actions
  • Document Set Actions
  • List Actions
  • Relational Actions
  • Task Actions
  • Utility Actions

本文旨在介绍SharePoint Designer 2010中工作流条件和操作的变化,随后的文章中会详细地介绍这些条件和操作,而本文仅做一个概览。

Core Actions

在上述6个操作分类中,Core Actions分类包含以下操作:

Add a Comment:添加描述,如下图所示:

image

Add Time to Date:为日期添加时间值,并输出到变量,如下图所示:

 image

Do Calculation:进行计算,SharePoint Designer 2007就有此活动。

Log to History List:记录到历史记录列表,SharePoint Designer 2007就有此活动。

Pause for Duration:暂停一段时间,如下图所示:

 image

Pause ultil Date:暂停到某时刻,如下图所示:

 image

Send an Email:发送电子邮件,SharePoint Designer 2007就有此活动。

Send Document to Repository:将文档发送到Repository,如下图所示:

 image

Set Time Portion of Date/Time Field:设置日期的时间部分,并输出到变量,如下图所示:

 image

Set Workflow Status:设置工作流变量,可以将工作流状态设置为Approved、Rejected或Canceled,注意,此操作和“设置内容审批状态”操作不同。如下图所示:

image

Set Workflow Variable:设置工作流变量,SharePoint Designer 2007就有此活动。

Stop Workflow:停止工作流SharePoint Designer 2007就有此活动。

Document Set Actions

Document Set Actions分类是SharePoint Designer 2010新增的一个分类。Document Set是SharePoint 2010新增加的一个企业内容管理(ECM),Document Set是一个类似文件夹的实体,它可以包含一些文档,由于它本身其实是一个内容类型,所以它也能够关联工作流。Document Set Actions分类所包含的操作就是为此功能服务的,它包含以下操作:

Capture a version of the Document Set:捕获Document Set的版本,如下图所示:

image

Send Document Set to Repository:将Document Set发送到Repository,如下图所示:

image

Set Content Approval Status of the Document Set:设置Document Set的内容审批状态,如下图所示:

image

Start Document Set Approval Process:启动Document Set的审批过程,如下图所示:

image

List Actions

List Actions分类包含以下操作:

Check In Item:签入项目,SharePoint Designer 2007就有此活动。

Check Out Item:签出项目,SharePoint Designer 2007就有此活动。

Copy List Item:复制列表项,SharePoint Designer 2007就有此活动。

Create List Item:创建列表项,SharePoint Designer 2007就有此活动。

Declare Record:定义记录,如下图所示:

image

Delete Drafts:删除草稿,如下图所示:

image

Delete Item:删除项目,SharePoint Designer 2007就有此活动。

Delete Previous Versions:删除之前的版本,Reusable Workflow和Site Workflow不可以使用此操作,如下图所示:

image

Discard Check Out Item:放弃签出项目,如下图所示:

image

Set Content Approval Status:设置内容审批状态,SharePoint Designer 2007就有此活动。但要注意,Site Workflow不可以使用此操作。

Set Field in Current Item:设置当前项目中的域,SharePoint Designer 2007就有此活动。同意,因为Site Workflow没有所谓的“当前项目”,也就不能使用此操作。

Undeclare Record:取消定义记录,如下图所示:

image

Update List Item:更新列表项,SharePoint Designer 2007就有此活动。

Wait for Change in Document Check-Out Status:等待文档签出状态更改,Reusable Workflow和Site Workflow不可以使用此操作,如下图所示:

image

Wait for Field Change in Current Item:等待当前项目中的域更改,SharePoint Designer 2007就有此活动。Site Workflow仍然不可以使用此操作。

Relational Actions

Relational Actions也是SharePoint Designer 2010新增的分类,它只包含一个操作:Lookup Manager of a User,用来查找指定用户的领导,并输出到变量,这是多么实用的操作啊。如下图所示:

image

Task Actions

Task Actions分类包含以下操作:

Assign a Form to a Group:将表单分配给组,SharePoint Designer 2007就有此活动。

Assign a To-do Item:分配代办事项,SharePoint Designer 2007就有此活动。

Collect Data From a User:从用户处收集数据,SharePoint Designer 2007就有此活动。

Start  Approval  Process:启动审批过程,如下图所示:

image

Start Custom Task Process:启动自定义任务过程,如下图所示:

image

Start Feedback Process:启动反馈过程,如下图所示:

image

Utility Actions

Utility Actions分类包含的操作主要是对于字符串和时间的处理,其实Core Actions中的一些操作也可以归到此分类中的,此分类中的操作如下:

Extract Substring from End of String:从字符串尾端开始截取子字符串,并输出到变量,如下图所示:

image

Extract Substring from Index of String:从字符串的自定义位置开始截取子字符串,并输出到变量,如下图所示:

image

Extract Substring from Start of String:从字符串起始位置开始截取子字符串,并输出到变量,如下图所示:

image

Extract Substring of String from Index with Length:从字符串的自定义位置开始截取指定长度的子字符串,并输出到变量,如下图所示:

image

Find Interval Between Dates:计算两个日期之间的时间跨度,并输出到变量,如下图所示:

image 

SharePoint Designer 2010居然内置了如此大量的操作,势必能够为我们创建工作流带来极大的便利。如果这些内置的活动还不能满足我们的需求,我们还可以使用Visual Studio来为SharePoint Designer 2010开发自定义操作。

上一篇文章中,我们已经知道SharePoint Designer 2010可以和Visio 2010联手设计和编辑工作流,那么下一篇文章我们就来看看Visio的工作流设计到底是什么样的。