如何使用“应用程序步骤”功能创建 SharePoint Designer 2013 工作流(用于 SPC 2012 的示例工作流中的扩展)

原文发布于 2012 年 11 月 22 日(星期四)

jonghwal's pic大家好,我叫 JongHwa Lim,是 SharePoint Designer 团队的一名项目经理。
今天,我将为您介绍一个之前已在 SharePoint Conference 2012(又称作 SPC 2012)中演示过的示例工作流。除此之外,我还将在本博客文章中修改并扩展此工作流,让它变得更加逼真。本博客文章包含了一些提示,可供您在使用 SharePoint Designer 2013(又称作 SPD 2013)创建工作流时进行参考。为了进行详细的说明,我假定您熟悉 SharePoint Designer 2013 和 SharePoint 2013 类型工作流。如果您不熟悉它们,则请阅读之前的博客文章来了解 SharePoint 2013 工作流。 

一个面向休闲活动公司的工作流 

我们假设有一个名为 Contoso Leisure 的休闲公司,该公司提供了多项休闲课程,如骑马、钓鱼、飞碟射击、滑伞和跳伞。

图像

假定我们需要一个执行下列操作的审批工作流。

  • 请求获得 SharePoint 组“Event Coordinator”的批准
  • 如果被拒绝,则向客户发送拒绝邮件
  • 如果获得批准,则等到活动/课程开始的 5 天前发送活动提醒邮件
    • 提醒邮件包含与活动有关的信息,如天气信息和行车路线图 

在此工作流示例中,我们将使用两个 Web 服务,但 SPD 中的可用“调用 HTTP Web 服务”(call HTTP Web Service) 操作将只处理其中一个 Web 服务。另一个 Web 服务将在 String 变量内部引用并置入带 <IMG> 标记的邮件正文中。有关详细信息,请参阅必应 Bing 地图 API 页。(http://www.microsoft.com/maps/developers/web.aspx)

如果您自行创建工作流,则将创建以下工作流。

图像

图像

图像

请注意,“获取天气信息”(Get Weather Info) 阶段具有一个“调用 HTTP Web 服务”(Call HTTP Web Service) 操作,如果您单击第一个参数,将看到使用了以下 URL,其中 Web 服务密钥将存储在一个名为“Web 服务密钥”(Web Service Keys) 的单独列表中。“Web 服务”操作、“从词典获取项”操作和 Loop 容器的解释和用法请参见 HyongGuk Kim 以前撰写的一篇博客文章,我将不在此赘述。(http://blogs.technet.com/b/office_chs/archive/2012/09/28/call-http-web-service-web.aspx

图像

如果您单击“发送提醒电子邮件”(Send Reminder Email) 阶段中的“设置工作流变量”(Set Workflow Variable) 操作,将发现它还使用“Web 服务密钥”(Web Service Keys) 列表来存储 Web 服务密钥或令牌。

图像 

下面我们将此工作流变得更逼真

在现实生活中,可能需要安全管理 Web 服务密钥。为此,我们需要通过将密钥存储到仅可供具有完全控制特权的人员访问的列表中来对其进行保护。但在此情况下,一般的工作流逻辑将无法访问 Web 服务密钥,因为此逻辑是使用工作流发起程序的权限和该工作流应用程序的(逻辑 AND)权限运行的。因此,如果工作流发起程序无权访问包含 Web 服务密钥的列表,则工作流将失败。若要使工作流逻辑仅使用工作流应用程序权限(对所有站点列表的读/写权限)运行,我们需要使用“应用程序步骤”功能。

步骤 1. 通过具有独立权限来确保列表安全

如上所述,我们需要使包含 Web 服务密钥的列表仅可供完全控制用户访问。为此,您需要停止继承并从列表中删除不必要的用户。

我们假定此列表为“Web 服务密钥”(Web Service Keys) 列表。如果您转到“列表设置”(List Settings) 和“此列表的权限”(Permission for this list) 页,您会发现用于停止继承的菜单。

图像

中断继承后,您可选择非完全控制用户(如下所示),然后单击“删除用户权限”(Remove User Permissions) 按钮。

图像

随后,此列表将仅包含完全控制用户。

图像

步骤 2. 激活“应用程序步骤”功能

若要使用“应用程序步骤”功能,您需要在“网站设置”(Site settings) ->“管理网站功能”(Manage site features) 中激活“工作流可使用应用程序权限”(Workflows can use app permissions) 网站功能,如下所示。

图像

之后,SPD 中将启用“应用程序步骤”(App Step) 按钮。

图像

步骤 3. 添加“应用程序步骤”功能并将逻辑移至其中

您需要找到引用“Web 服务密钥”(Web Service Keys) 列表的逻辑,然后将其包含在“应用程序步骤”容器中。我们有两个需要放入“应用程序步骤”中的逻辑 –“调用 HTTP Web 服务”(Call HTTP web service) 操作和“设置 RouteMap 变量”(Set RouteMap variable) 操作,以下各图对此进行了阐释: 

图像

图像

步骤 4. 发布工作流

发布工作流时,将显示以下对话框来说明行为。

图像

我希望本文能够为您提供帮助,并希望您了解如何正确使用“应用程序步骤”功能。下篇文章我们再见。

这是一篇本地化的博客文章。请访问 How to Create a SharePoint Designer 2013 Workflow with App Step (extension from the example workflow used for SPC 2012) 以查看原文