如何使用 SharePoint Designer 2013 的可视化设计器在网站之间移动工作流

原文发布于 2012 年 9 月 18 日(星期二)

大家好,image

我叫 Sam Chung,是这里负责 SharePoint Designer 的项目经理。在这篇博客中,我们将探讨通过在“可视化设计器”中找到的“导入/导出”功能,现在已充分实现的一个极好的新方案。

引言:

对于许多开发人员而言,当出现强烈的需要(即需要分散他们的工作流)时即迎来了他们生命中的特殊时刻。尤其是,将需要在网站之间移动他们的工作流。出现这一需要的原因可能有许多,其中比较常见的原因是需要在开发、暂存和生产环境之间移动工作流。但是无论是什么原因,我都想利用这篇文章帮助你们在尝试将工作流从一个网站移动到另一个网站时解决问题。

然而,在我开始之前,请确保仔细阅读以下文章:

第一篇是对“可视化设计器”的概括介绍:

https://msdn.microsoft.com/zh-cn/library/jj163272.aspx

您需要阅读上述文章以了解“可视化设计器”的工作原理。

下一篇是有关如何使用打包功能对您的列表和工作流进行打包的文章:

hhttps://blogs.technet.com/b/office_chs/archive/2012/09/28/3523075.aspx

您需要了解上述文章才能了解如何对您的工作流可能引用的任何列表进行打包。

创建工作流

您的工作流可以几乎是任何工作流。就可以移动的内容而言,不存在技术限制。但是,如果您想要避免发布和运行时问题,请注意以下几点:

1. 确保您的工作流中引用的所有对象均存在于目标网站中。

a. 请阅读有关打包的文章,以确定如何对列表进行打包

2. 确保您的源网站中使用的所有操作均存在于目标网站上

a. 如果您的任何自定义操作存在于源网站上,则必须确保将那些操作传输到目标网站,然后再传输工作流

3. 无法将项目工作流从 PWA 网站移动到非 PWA 网站。

a. 如果 SPD 检测到正在将某个项目工作流导入非 PWA 网站,那么它将在导入过程中阻止此操作。

b. 我们在项目工作流中有许多额外的数据,因此仅应将这些数据从一个 PWA 网站移动到另一个 PWA 网站

对于这篇博客,我将使用相当简单的工作流作为示例。我将针对事件方案启用一个“观点”(Ideas) 列表。要创建的工作流是将在”事件观点“(Event Ideas) 列表使用的一个简单的工作流。用户将针对他们所拥有的每一个事件观点输入新的列表项。在填写完所有必要的信息之后,他们将指出项目可供审阅。此时,工作流即会启动并要求特定审批者批准或拒绝这个观点。

下面这个就是我将要使用的列表:

image

您可以看到此列表如何安排以下各列:

· 事件观点(Event Idea)

o 单行字符串

· 位置(Location)

o 单行字符串· 成本(Cost)

o 货币(Currency)

· 状态(Status)

o 选择字段

工作流本身看起来如下所示:

image

下面是工作流正在执行的操作:

clip_image002[15]

· 将我们位于第一个阶段这件事记录到历史记录

· 检查“状态”(Status) 列字段是否设为“可供审阅”(Ready for Review)

o 如果没有,请等到该字段设为“可供审阅”(Ready for Review)

clip_image002[17]

· 将我们现在正在分派任务以审阅观点这件事记录到历史记录

· 将状态列更新为“审阅中”(Under Review)

· 将任务分派出去

clip_image002[21]

· 如果观点得到批准,我们即会到达将观点得到批准这件事记录到历史记录这一阶段

· 将状态列设为“已接受”(Accepted)

clip_image002[23]

· 如果观点被拒绝,我们即会达到将观点遭到拒绝这件事记录到历史记录这一阶段

· 将状态列设为“已拒绝”(Rejected)

导出工作流

现在我们拥有了工作流,让我们继续操作并将这个东西导出。可以通过单击
“导出到 Visio”(Export to Visio) 功能区按钮来执行此操作。

image

注意:按“导出”(Export) 按钮会自动将您的工作流先保存到服务器,然后再启动导出功能。原因在于,我们需要确保导出的工作流与导出时的服务器版本保持同步。

按该按钮将显示以下对话框:

image

选择想要保存文件的位置,然后按“保存”(Save) 按钮。

现在即会将您的 Visio 图表保存到所选的位置。如果需要,您可以立即在 Visio 2013 中打开该图表。

注意:在本示例中,我们已从“可视化设计器”中导出工作流,但是可以从以下位置导出您的工作流:

· 基于文本的设计器

· 工作流设置页面

· 工作流库

但是在所有这些示例中,您必须已启用“可视化设计器”。而且为了做到这一点,必须将 Visio 2013 Professional 与 SharePoint Designer 2013 安装在同一台机器上。

导入工作流中

既然您已导出工作流,现在可以在 SharePoint Designer 2013 中打开另一个 SharePoint 2013 网站,并导入您的工作流。下面是您将采取的步骤:

1. 将 SPD 连接到新网站

2. 单击导航窗格中的“工作流”(Workflows)

image

3. 按“从 Visio 导入”(Import from Visio) 功能区按钮的下半部分,然后选择“导入 Visio 2013 图表”(Import Visio 2013 Diagram) 选项

image

4. 这样即会显示常规的“打开文件”(Open File) 对话框。找到已导出的图表并将其打开。

image

5. 这样即会显示“创建工作流”(Create Workflow) 对话框

a. 为您的工作流命名

b. 为其提供说明(如果需要的话)

c. 请注意“工作流类型”(Workflow Type) 如何变灰而成为“列表工作流”(List Workflow)。这是因为 SPD 检测到导入的工作流是一个列表工作流。因此,它自动选择了正确的工作流类型。如果您是从 Visio 导入一个全新的图表(从未出现在 SPD 中的工作流),那么将会启用此选项。

d. 由于这是一个列表工作流,因此会启用用来选择将工作流关联到哪个列表的选项。继续操作并选择一个列表。只有针对“列表工作流”(List Workflows) 才会启用此选项。理想情况下,您将会导出,也会导入列表,在这种情况下,只能选择在前一个网站中所处理的相同列表。

e. 按“确定”(OK)

image

6. 现在即会显示您的工作流图表,与您之前所看到的完全相同。

a. 已保留所有工作流逻辑

b. 已保留所有操作属性

c. 已保留所有本地变量

7. 您现在可以继续进行操作并继续编辑您的工作流。但是在发布之前,请确保阅读下一部分。

发布前的文章部署工作

从不同的网站导入工作流中之后,您不能继续操作并尝试立即发布该工作流。虽然这可能有效,而不会出现任何错误,但是您的工作流在运行期间几乎毫无疑问地会失败。在导入工作流中之后,请确保执行/检查以下后续步骤:

1. 转至工作流设置页面,然后更新“任务列表”(Task List) 和“历史记录列表”(History List)

a. 如果您现在看一下该工作流,将会看到上面写着“新建任务列表”(New Task List) 和“新建历史记录列表”(New History List)。但是,由于最新的更改,在发布工作流时,不会创建新的“任务”(Task) 和“历史记录”(History) 列表。这样将使得您的工作流在运行时不会出现错误。

image

b. 应该已存在可供您选择的现有“任务”(Task) 和“历史记录”(History) 列表。请继续操作并选择这些列表。

注意:如果您确实想要创建新的“任务”(Task) 或“历史记录”(History) 列表,只需先单击一个不同的列表,然后再重新选择“新建任务列表”(New Task List) 和“新建历史记录列表”(New History List) 选项。这样即会显示弹出菜单,询问您是否确实想要创建新列表。确认您想要创建新列表之后,SPD 即会立即创建这些新列表。

2. 修复查阅

a. 如果您未传输列表与 VSDX 文件,那么很可能会将工作流关联到完全不同的列表。因此,如果您引用任何列表项或属性,则可能需要对它们进行修复。

image

b. 如果您将原来网站中的列表进行打包,并将其部署到新的网站,然后再导入工作流中,即可解决此问题。要了解有关打包列表的更多信息,请参阅以下博客:打包列表、网站和可重新使用的工作流以及如何部署程序包

3. 检查在您的工作流中是否有新网站中所不存在的任何自定义操作

a. 如果在您的工作流中具有自定义操作,请确保先将这些操作部署到新的网站上,然后再导入此工作流中。

4. 针对项目工作流:确保在导入工作流中之前已传输阶段、PDP 和自定义字段。

a. “项目工作流”要求已将之前的所有“项目对象”从旧的网站传输到新的网站。请访问“项目博客”以了解有关如何移动项目对象的更多信息。

在处理好这些问题之后,您在新的网站上发布和运行工作流就应该没有问题了!

希望本文对您有用。请尽管在下面发表评论。

谢谢,

Sam

这是一篇本地化的博客文章。请访问 How to use SharePoint Designer 2013's Visual Designer to Move Workflows Between Sites 以查看原文。