SharePoint 快速入门常见问题解答 第 6 部分 – 工作流、工作流和工作流






4.97/5 (22投票s)
SharePoint 快速入门常见问题解答 第 6 部分 – 工作流、工作流和工作流
SharePoint 文章第 1 部分到第 5 部分以及视频的链接已移至底部。
SharePoint 快速入门常见问题解答 第 6 部分 – 工作流、工作流和工作流
引言
在本教程中,我们将主要关注 SharePoint 工作流。SharePoint 工作流建立在 Windows Workflow 之上,并增加了以内容为中心的工作流功能。因此,我们首先从 Windows Workflow 的一些基础知识开始,然后转向 SharePoint 工作流。最后,我们将了解如何使用 SharePoint Designer 和 Visual Studio 2005 和 2008 创建工作流。
您可以下载我的免费电子书,其中包含 400 个关于 WCF、WPF、WWF、Silverlight 等多项技术的常见问题解答。 http://www.questpond.com/SampleDotNetInterviewQuestionBook.zip
什么是 Windows Workflow Foundation?
WWF 是一个在 Windows 上构建支持工作流的应用程序的编程模型。System.Workflow 命名空间包含开发任何类型工作流所需的所有模块。
什么是工作流?
工作流是一组活动,它们以模型形式存储,并表示一个过程。下图清楚地说明了工作流和活动之间的区别。每项任务都是一个活动,一组活动代表一个完整的工作流。工作流由工作流运行时引擎运行。
图: 工作流基础结构
工作流模型可以用纯 .NET 代码、纯 XAML 或 XAML 与 .NET 代码的混合编写。工作流模型被编译,可以在 Windows、ASP.NET、Web 服务或 Windows 服务应用程序下执行。
Windows Workflow Foundation 中有哪几种不同类型的工作流?
有两种基本类型的工作流:顺序工作流和状态机工作流。
顺序工作流具有明确的开始和结束边界。在顺序工作流中,工作流控制执行。在顺序执行中,一个任务在另一个任务之后执行。顺序工作流在格式上更加严格,并且执行路径具有确定性。
状态机工作流更具动态性。工作流具有状态,并且状态等待事件来帮助它转移到下一个状态。在状态机执行路径中,具有不确定性。
下图显示了基本概念的视觉概念。您可以看到在顺序工作流中,执行路径非常确定。Shiv 按顺序执行所有任务,这些任务非常确定。现在看一下第二个工作流。每个状态在收到某些外部事件时会转移到其他状态。例如,当 Shiv 观看星际迷航时,一个闪烁新闻的事件触发他观看闪烁新闻。
图:- 顺序工作流和状态机工作流
SharePoint 工作流与 Windows Workflow 是否相同?
第一个重要的基本要点是 SharePoint 工作流和 Windows Workflow 不是不同的实体。
SharePoint 工作流的基础是 Windows Workflow。换句话说,SharePoint 工作流建立在 Windows Workflow 之上,并增加了人员工作流的功能。
下图反映了 SharePoint 工作流的更广泛定义。它从 .NET Framework 中获取核心 Windows Workflow,然后在此基础上应用以内容为中心的工作流。
以内容为中心的工作流就是简单的 Windows Workflow,附加到列表、文档和自定义内容。
图:- 内容类型工作流
您可以将 SharePoint 工作流可视化为带有人员工作流触感和体验的 Windows Workflow。
当工作流附加到列表、文档等内容类型时,就会产生人员工作流的触感和体验。
例如,假设我们制作了一个“批准”和“不批准”的 Windows 工作流。您可以将此工作流
与学生内容类型关联,那么学生的人员工作流就变成了“学生通过”和“学生未通过”。
如果内容类型是发票,那么“批准”工作流可以变成“发票已支付”工作流,而“不批准”则可以变成“发票未支付”。
换句话说,SharePoint 工作流是以内容为中心的,它们代表了人员工作流。
图:- 批准和不批准
SharePoint 工作流生命周期有哪些不同阶段?
SharePoint 工作流周期对于 SharePoint 环境来说非常独特。正如我们所说,SharePoint 工作流始终在上下文中关联
与 SharePoint 内容(如列表或文档)相关联。
图:- SharePoint 工作流的四个不同阶段
SharePoint 工作流周期有四个阶段:关联、启动、修改和完成。
关联:- 如前所述,SharePoint 中的工作流始终与内容类型相关联。
因此,第一步是将工作流与内容类型(如列表或文档)相关联。
启动:- 第二步是启动工作流实例。工作流最终就是类,所以需要一个工作流实例
来启动工作流。
修改:- 之后,根据工作流阶段修改工作流实例。
完成:- 最后,终止工作流对象。
图:- 屏幕和 SharePoint 工作流
SharePoint 的 Web 表单与 WSS 交互,WSS 再与 Windows Workflow 运行时交互。
Windows Workflow 运行时根据 WSS 传递的数据将详细信息传递给相应的工作流实例。
SharePoint 工作流实例然后运行工作流逻辑并采取相应的操作。
SharePoint 中的三态工作流是什么?
三态工作流帮助组织跟踪具有三个状态和两个转换的工作流。它旨在跟踪列表项、任务等的状态。
在每次状态转换时,工作流都会将任务分配给某人,并发送关于该任务的电子邮件警报。
图:- 三态工作流
为了更好地理解三态工作流,我们将创建一个简单的任务列表。此任务列表将经历一个审查过程。
以下是工作流的执行方式:-
• 管理员创建并启动任务。任务分配给审阅者。
• 审阅者然后审查任务,发表评论,并将任务标记为“进行中”。一旦他将任务标记为“进行中”,它就会自动分配给接受者。
• 接受者最终完成审查并关闭任务。
图:- 三态示例
首先,我们需要在我们的计算机域中添加两个用户:一个是审阅者,负责审查;另一个是接受者,负责关闭任务。
要查看工作流,请转到“站点操作”>“站点设置”>“工作流”。您将看到“三态”工作流,如下图所示。
首先,让我们创建一个团队网站,然后单击“站点操作”>“站点库和列表”>“创建新内容”>“站点和工作区”,并为其起一个不错的名称,例如“我的团队网站”。
现在单击“我的团队网站”,然后单击“任务”,最后单击“列表设置”,如下图所示。
单击“列表设置”后,您将看到很多选项。转到“权限和管理”部分,然后单击“工作流设置”,如下图所示。
您将被提示创建新工作流。因此,创建一个新工作流,您需要填写工作流的详细信息,如下图所示。
为工作流起一个不错的名称,对于当前示例,我们将其命名为“我的工作流”。
我们指定了在项目创建时立即创建工作流。
工作流将有三个状态:初始状态、中间状态和最终状态。
这些状态将根据任务列表的 Choice 字段决定。因此,当状态值为“未开始”时,工作流处于初始状态。
当状态值为“进行中”时,工作流处于中间状态。当状态为“已完成”时,意味着工作流对象
将被终止,工作流将被标记为已关闭。
现在,第二步是告诉三态工作流在每个工作流状态下需要做什么。
所以,让我们填写一下当工作流启动时应该发生什么。当工作流启动时,它将被分配给用户“审阅者”。
您可以在下面的图中直观地看到这些值。
当审阅者审查文档时,它会分配给接受者。所以,当工作流处于“进行中”状态时,它会被分配给接受者进行最终关闭。
现在您已经将工作流与列表关联,是时候在列表上调用工作流了。
单击“新建”以向任务列表添加任务。以下是我们需要的任务详细信息。
我们所做的是输入了一个包含拼写错误的错误语句。
现在,一旦您单击“确定”,您就会看到任务已分配给审阅者。
现在以审阅者身份登录并单击“你的名字是什么?”?
现在,作为审阅者,您将更正句子并将任务标记为“进行中”。
一旦您将任务标记为“进行中”,它就会分配给接受者。现在以接受者身份登录并将任务标记为“完成”。
完成后,单击“工作流”,您应该能够看到一个完整的三态流程。
您可以看到工作流是如何启动的,审阅者是如何审查的,以及最终接受者是如何关闭的。
SharePoint 只有三态工作流吗?
如果您安装了 WSS,您将只看到一个工作流,即三态工作流。但有了 MOSS,您
将看到另外 4 个工作流,它们几乎涵盖了您对工作流的所有可能场景。
工作流名称 | 描述 |
审批 | 将文档路由以供批准。审批者可以批准或拒绝文档,重新分配审批任务,或请求更改文档。 |
收集反馈 | 路由文档以供审查。审阅者可以提供反馈,反馈将在工作流完成后被汇总并发送给文档所有者。 |
收集签名 | 收集完成 Microsoft Office 文档所需的签名。此工作流只能从 Office 客户端内部启动。 |
处置工作流 | 通过允许参与者决定是保留还是删除过期文档来管理文档的过期和保留。 |
如何使用 SharePoint Designer 创建 SharePoint 工作流?
SharePoint Designer 帮助我们创建工作流并将其附加到内容类型(如列表、文档等)。换句话说,SharePoint Designer 创建工作流并将工作流发布到 SharePoint 服务器站点。
为了更好地理解,我们将构建一个简单的已完成和未完成任务的工作流。
我们将创建两个列表:一个未完成任务列表,另一个是已完成任务列表。工作流的流程如下:-
• 用户将创建任务并输入任务状态。
• 如果任务未完成,则不会发生任何事情。
• 一旦任务被标记为已完成。任务将从未完成任务列表复制到已完成任务列表。
• 任务将从未完成任务列表中删除。
所以,让我们来了解一下使用 SharePoint Designer 创建上述工作流所需的八个重要步骤。
步骤 1:- 创建一个团队网站。
步骤 2:- 创建两个任务列表,一个未完成任务列表,另一个已完成任务列表。要创建任务列表,请单击“站点操作”>“创建”:- 添加新库列表>创建任务
步骤 3:- 启动 SharePoint Designer。
步骤 4:- 使用“文件”>“打开站点”在 SharePoint Designer 中打开站点。
步骤 5:- 通过单击“文件”>“新建”>“SharePoint 内容”转到工作流,然后单击“确定”,如下图所示。
步骤 6:- 这是一个重要的步骤。在此步骤中,我们定义了两件重要的事情:第一,此工作流将附加到哪个列表。目前,我们已将工作流附加到未完成任务列表。其次,我们需要定义工作流应激活的事件。对于当前场景,我们考虑了两个事件:一个是在创建项目时,第二个是在更新项目时。
步骤 7:- 这是另一个关键步骤,我们需要定义工作流将在什么条件下执行,以及在条件为真时应采取什么操作。所以,当任务状态为“已完成”时,将执行两个操作。首先,任务将从未完成任务列表复制到已完成任务列表。其次,任务将从未完成任务列表中删除。
单击“完成”后,您可以在 SharePoint Designer 中看到已创建的工作流。此工作流也已发布到 SharePoint 服务器。
您可以检查工作流是否已与未完成任务列表关联。转到“未完成任务”>“设置”>“列表设置”>“工作流设置”,
您将看到工作流已附加到未完成任务列表。
步骤 8:- 好的,现在是时候看看工作流的实际效果了。所以,转到未完成任务列表并创建一个状态为“已完成”的任务。
一旦您单击“确定”,您会看到任务在未完成任务列表中停留几秒钟,然后任务被复制到
已完成任务列表中,并从未完成任务列表中删除。
如何使用 VS 2005 和 VS 2008 创建自定义工作流?
敬请期待……我在这部分问题上实在太累了,所以暂时搁置了。我保证很快会更新。
上一篇 SharePoint 快速入门 FAQ
• 快速入门常见问题解答第 1 部分:- 11 个基本常见问题解答,是每个新手的必备。这是一个基本快速入门常见问题解答教程,讲解了什么是 SharePoint、WSS、MOSS、站点/站点集、虚拟路径提供程序,最后解释了 SitePages 和 Application Pages。https://codeproject.org.cn/KB/aspnet/SharePoint.aspx
• 快速入门常见问题解答第 2 部分:- 这是本系列的第二部分,解释了现成的功能、自定义页面、部署/激活/停用功能等等。SharePoint2.aspx
• 快速入门常见问题解答第 3 部分:- 这是本系列的第三部分,我们解释了页面模板、页面实例、WSS 模型、理解安全模式处理和部署自定义控件。https://codeproject.org.cn/KB/aspnet/SharePointFAQ.aspx
• 快速入门常见问题解答第 4 部分:- 本系列主要介绍 Web 部件、Web 部件和 Web 部件。快速入门常见问题解答第 4 部分
• 快速入门常见问题解答第 5 部分:- 本系列主要关注自定义列、内容类型和文档列表库。我相信一旦您阅读了这篇文章,您对 SharePoint 如何组织文档中心化的看法将会有所改变。快速入门常见问题解答第 5 部分