Microsoft-Power-Automate-工作流自动化-三-

Microsoft Power Automate 工作流自动化(三)

原文:Workflow Automation with Microsoft Power Automate

译者:飞龙

协议:CC BY-NC-SA 4.0

  1. 在触发器的详情中,如果显示了表单,请选择它。如果你创建的表单未显示,添加自定义项(Add a custom item)并粘贴上一节保存的表单 ID:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_282_1.png

图 14.8 - 手动输入表单 ID 值

  1. 添加步骤。

  2. 在搜索栏中,输入 Get response details 并选择 Microsoft Forms 的操作,如图 14.9 所示:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_283_0.png

  1. 在 Get response details 操作中,选择代表表单的表 ID(如果显示,则选择名称)。选择 Response Id,然后选择 Response Id 动态内容标记:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_283_1.png

  1. 添加步骤。

  2. 从 SQL Server 的连接设置中选择服务器名称(Server name)、数据库名称(Database name)和表名称(Table name)值。

  3. 从第 13 章“使用数据库”中创建的连接设置中选择服务器名称、数据库名称和表名称。片刻之后,高级参数(Advanced parameters)区域将变为可用。

  4. 展开高级参数下拉菜单,并选择列值属性中的全选框。

  5. 选择 CompanyName 字段,并从 Get response details 操作中选择 CompanyName 动态内容值,如图 14.11 所示:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_284_0.png

图 14.11 – 添加 CompanyName 动态内容值

  1. 对剩余数据库列字段重复步骤 11,将它们与响应值匹配。完成后点击保存(Save):

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_284_1.png

图 14.12 – 完成所有动态内容值的放置

流已创建。此流将在收到新表单响应时触发,并将表单数据直接保存到数据库中。接下来,我们将提交表单,然后在数据库中查找结果。

测试流

为了测试此流,你需要提交一个表单响应。要提交表单响应,请遵循以下步骤:

  1. 导航到 Microsoft Forms 仪表板(https://forms.office.com)并在我的表单(My forms)下选择你的表单:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_285_0.png

  1. 选择预览(Preview)。

  2. 填写表单并点击提交(Submit):

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_285_1.png

提交表单后,将收到一个确认页面,指示提交成功。

接下来,我们将验证流是否运行成功。

验证结果

最后,你希望确保流已按照预期完成。你可以通过检查流的运行历史或在 SQL 中查询数据库表,来检查流是否将 Forms 数据写入数据库。

检查运行历史

验证流是否成功最简单最快的方法是检查运行历史。运行历史将显示流执行期间执行的步骤。你可以按照以下流程查看流的运行历史:

  1. 从 Power Automate 制作者 Web 门户(https://make.powerautomate.com),点击我的流(My flows),然后选择该自定义流。

  2. 点击流的省略号,然后选择运行历史(Run history)。

  3. 点击运行的日期:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_286_0.png

  1. 展开Insert row (V2) 操作并查看数据:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_287_0.png

图 14.16 – 查看 Insert Row (V2) SQL 操作的运行详细信息

展开的操作将显示从表单处理并插入表中的数据。

检查 SQL 数据

你也可以使用 SQL 查询编辑器查看新添加的数据。如需直接查看 SQL 数据,请遵循以下步骤:

  1. 从 Azure 门户(https://portal.azure.com),导航到 SQL 数据库,并选择你在第 13 章“使用数据库”中创建的数据库条目。

  2. 选择查询编辑器(预览)(Query editor preview)。如果提示,输入凭据访问数据库并点击确定。

  3. 将以下代码复制并粘贴到查询编辑器中:

SELECT * FROM [dbo].[Customers]
  1. 如果需要,可以添加 WHERE 子句来查找你在表单上输入的名字。在示例中,我们使用了第一个名字 Nestor,因此你可以这样构建 WHERE 子句,将 FirstName 值替换为你在测试时使用的值:
WHERE FirstName='Nestor'
  1. 点击运行(Run)。

  2. 查看结果(Results)部分中的数据,如图 14.17 所示:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_288_0.png

图 14.17 - 执行查询后查看结果

  1. 将结果部分中的数据与你在“测试”部分中输入的值进行比较。

无论你选择哪种方式来验证流执行的结果,你都应该看到相同的数据。你可以验证表中的数据是否与表单中提交的数据匹配,以确认流正在正常工作。

总结

在本章中,你学习了如何使用 Microsoft Forms 创建基础表单。此外,你还能够在第 13 章“使用数据库”中学到的技能的基础上,将 Microsoft Forms 中的数据保存到 SQL 数据库中。

在现实场景中,你可以进一步扩展此流,向提交者生成确认电子邮件,或使用 Excel 或 Power BI 等工具对数据进行排序。根据表单中收集的数据类型,你甚至可以将这些数据发送到 Azure Cognitive Services(现为 Azure AI 服务)进行情感分析(你将在第 22 章中学习相关内容)。

第 15 章

265

传统的看板通过与工作阶段对齐的列来组织任务。任务卡从左到右跨列移动,代表了整个工作过程的进度。在 Microsoft Planner 中,任务被放置在称为“桶”(buckets)的组中,并可以在桶内进行排序或分类。

Microsoft Planner 有三个触发条件:当任务创建时、当任务分配给我时,以及当任务完成时。这些条件都非常通俗易懂。在本章中,我们将重点关注“当任务分配给我时”。输出是一个任务对象,具有多个参数,如计划 ID(指向任务所属计划的对象 ID)、任务标题(Title)、桶 ID(任务所属的桶)、分配人员(assignments,谁负责处理该任务)、优先级、完成百分比状态,以及创建、开始和完成的各种日期。

你可以在此处找到 Planner 连接器功能的完整列表:https://learn.microsoft.com/en-us/connectors/planner。

Slack

在 Microsoft Teams 出现之前,有了 Slack。Slack 和 Teams 一样都是基于云的协作和消息平台,旨在帮助团队实时通信和工作。它将对话组织到频道(channels)中——即项目、主题或团队的专用空间。像 Teams 一样,它还支持一对一或小群聊的直接消息。用户可以共享文件、搜索过去的讨论,并与广泛的应用程序和服务集成,使其更新、警报和工作流的核心枢纽。

Slack 有自己的一套触发器,在本章中,我们将重点关注操作(actions)。Slack 可用的操作包括创建和加入频道,以及发布消息。

你可以在此处找到 Slack 连接器功能的完整列表:https://learn.microsoft.com/en-us/connectors/slack。

准备工作设置

在本节中,我们将关注环境和组件的设置。

为了运行此内容,你需要在 https://slack.com/intl1/en-in 注册一个免费的 Slack 账户。

一旦激活了账户,请登录。你将看到一个与图 15.1 截图类似的桌面:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_294_0.png

图 15.1 – Slack 界面

默认情况下,你应该有一个名为 #all-<organization> 的频道。我们将使用该频道发布通知,但你也可以使用任何需要的频道。

你还需要一个 Planner 计划。你可以作为团队的一部分进行设置,也可以直接使用独立计划。要设置独立计划,导航到 https://planner.cloud.microsoft 并点击“新建计划”(New plan)。选择空白计划或从模板中选择一个。

第 15 章

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_295_0.png

图 15.2 – 创建新计划

现在,是时候开始构建流了!

使用 Planner 触发流

设置好你的 Slack 工作空间和 Planner 后,让我们开始创建一个工作流吧。

和我们在书中目前为止处理过的许多流一样,我们将从一个自动化触发器开始。按照以下步骤启动它。

  1. 导航到 Power Automate 制作网页门户(https://make.powerautomate.com)并登录。

  2. 点击“创建”(Create)并选择“自动化的流”(Automated flow)。

  3. 为你的流输入名称,然后选择“当任务分配给我时”(When a task is assigned to me)Planner 触发器操作。

就这些。此触发器没有主要的参数,因为它是在检测 Microsoft 365 生态系统中的 Planner 分配。见图 15.3。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_295_1.png

图 15.3 – 查看 Planner 参数

接下来,我们将添加与 Slack 的连接。

向 Slack 频道发布更新

在不同平台之间保持同步非常重要,这就是为什么我们要将这些任务分配发送到 Slack。

  1. 在你的流处于打开状态下,点击“添加操作”(Add an action)。

  2. 选择“发布消息 (V2)”(Post message (V2))Slack 操作。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_296_0.png

图 15.4 - 添加发布消息 (V2) 操作

  1. 如果提示,请登录 Slack。

  2. 在“发布消息 (V2)”飞出窗口中,选择“参数”(Parameters)选项卡。

  3. 在“频道名称”(Channel Name)下拉菜单中,选择 all-<organization> 频道(或你选择的任何频道)。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_296_1.png

图 15.5 - 选择目标频道

配置发布消息

  1. 在“消息文本”(Message Text)字段中添加通知文本。在示例中,我们添加了标题(Title,任务名称)、分配人员(assignments Assigned To User Id,任务分配给谁)以及分配者(Assigned By User Id,任务由谁分配给谁的)的动态内容值令牌。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_297_0.png

图 15.6 - 配置发布消息

由于Assigned To User Id是一个数组,我们将使用Title的动态内容值令牌。

  1. 展开“高级参数”(Advanced parameters)。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_297_1.png

图 15.7 - 添加高级参数

  1. 点击ID字段内部。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_298_0.png

图 15.8 - 选择用户

  1. 点击“保存”(Save)。

  2. 保存流。

测试流

流保存好后,是时候触发它了。

  1. 导航到你的计划。

  2. 选择一个现有任务或创建一个新任务。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_299_0.png

图 15.9 - 添加任务

  1. 为你的流输入名称,然后点击“分配”(Assign)。

输出调试

如果你熟悉 Microsoft 365,可能会识别出显示的数字而不是名称。哦,不!看起来出问题了!让我们查看输出。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_299_1.png

图 15.10 - 输出调试

在画布上,选择“当任务分配给我时”触发器操作的“运行结果”(Run results)。滚动到OUTPUTS部分并点击。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_300_0.png

滚动到输出底部,你可以看到assignments数组。深入查看,你会发现id属性关联有一个数字——并不用户友好。这种格式被称为GUID(全局唯一标识符)——它是用户的不可变表示。幸运的是,我们有方法查询它!

  • 回到流并展开“对于”(For each)循环。

  • 在“发布消息 (V2)”操作上方点击“+”插入新步骤。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_301_0.png

图 15.11 - 插入新操作

  1. 添加“组合”(Compose)操作。

  2. 将该操作名称更新为描述性名称,例如Compose assignedTo。

  3. 选择“输入”(Inputs)字段。

  4. 添加assignments Assigned User Id的动态内容值。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_301_1.png

图 15.12 - 添加第一个 Compose 语句

  1. 在Compose-assignedTo操作之后,添加另一个“组合”操作。

  2. 将该操作名称更新为描述性名称,例如Compose assignedBy。

  3. 选择“输入”(Inputs)字段。

  4. 添加assignments Assigned By User Id的动态内容值。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_301_2.png

图 15.13 - 添加第二个 Compose 语句

  1. 在第二个Compose动作和Post message (V2)动作之间插入一个动作。

  2. 选择Get user profile (V2)动作。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_302_0.png

图 15.16 – 添加 Get user profile (V2) 动作

  1. 将Get user profile (V2)动作的名称更新为具有描述性的名称,例如Get user profile (V2) – assignedTo。

  2. 选择User (UPN)字段,并添加来自Compose – assignedTo的Outputs动态内容标记。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_302_1.png

图 15.17 – 获取 assignedTo 的用户配置文件

  1. 在Get user profile (V2)动作和Post message (V2)动作之间插入一个动作。

  2. 选择Get user profile (V2)动作。

  3. 将Get user profile (V2)动作的名称更新为具有描述性的名称,例如Get user profile (V2) – assignedTo。

  4. 选择User (UPN)字段,并添加来自Compose – assignedBy动作的Outputs动态内容标记。

  5. 选择Post message (V2)动作卡片。

  6. 选择Message Text字段。

  7. 将userId和value/assignedBy动态值标记替换为新的Get user profile (V2)动作值,如图 15.18 所示:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_303_0.png

图 15.18 - 使用新的动态内容值更新流

  1. 点击保存。

让我们再次尝试!

重新测试流

是时候看看我们成功了。

  1. 回到你正在操作的计划。

  2. 选择一个任务(或创建一个新任务)并为自己添加一个新的分配。

  3. 等待任务执行。

  4. 去检查 Slack!

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_303_1.png

图 15.19 - 查看更新后流的输出

成功了!

处理流有时会很复杂,需要一些尝试才能得到你想要的结果。当你看到意外之外的值时,务必检查每个动作的输出。

进一步探索

“当任务分配给我(When a task is assigned to me)”触发器的缺点之一是它只适用于直接分配给你的任务。处理此流另一种方法可能是使用触发器,例如创建新任务时(When a new task is created)。仅凭该动作你无法获得分配详情,而且结果可能不如我们的预期,因此你需要利用Get task details来检索额外信息。

总结

本章介绍了新的应用、触发器和动作——让你有机会与 Microsoft Planner 和 Slack 进行协作。

虽然流最初看起来可能很简单,但输出并不符合我们的预期,导致我们必须排查故障并修改流以正确查找所需的数据。

在下一章中,我们将学习如何使用 Power Automate 接受用户输入以创建更具交互性的流。

获取本书的 PDF 版本和独家额外内容

立即锁定

扫描二维码(或访问 packpub.com/unlock)。按书名搜索此书,确认版本,然后按照页面上的步骤操作。

注意:请妥善保存发票。直接从 Packt 购买不需要发票。

接受用户输入

许多类型的业务处理需要某种形式的用户输入。输入可以是用户输入的数据形式,可以是用户选择“是”或“否”的提示提示符,甚至是上传文件。Power Automate 提供了一个接口,让用户可以作为流的一部分提供信息。连接的应用程序(如 Power Apps)也可以用于向流提供信息。

在本章中,我们将重新回顾第 5 章“创建按钮流”中即时云流的概念。你将学习如何收集不同类型的用户输入,这些输入稍后可用在流中。具体而言,本章将涵盖以下主题:

  • 理解用户输入选项

  • 创建一个使用所有输入类型的流

  • 验证流的执行

通过完成本章末尾的练习,你将熟悉不同类型的用户输入选项以及它们如何被用于创建交互式流。

继续前进!

理解用户输入选项

用户输入可以有许多形式。在创建手动触发流(也称为按钮流或即时流)时,Power Automate 允许流设计人员接受六种用户输入。要向手动触发的流添加输入功能,点击标记为“Manually trigger a flow”的标题。

当触发器对象展开时,点击“Add an input”,即可看到图 16.1 所示的输入选项:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_306_0.png

输入类型如下:

  • Text(文本):Text输入选项支持自由格式文本、单个下拉列表和多选列表。

  • Yes/No(是/否):Yes/No输入选项是一个开关。

  • File(文件):File选项提供了上传文件的功能。

  • Email(电子邮件):Email输入选项旨在接收电子邮件地址。

  • Number(数字):Number输入选项允许用户输入数字。

  • Date(日期):Date选项允许用户选择日期。

手动触发的流可以使用一个或多个输入选项。

此外,如果你的流正在捕敏感数据(如帐户凭据或其他值),你可以配置 Secure inputs(安全输入) 和 Secure outputs(安全输出)。选择 Manually trigger a flow,然后选择 Settings(设置) 查看选项:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_307_0.png

图 16.2 – 配置动作

安全选项会隐藏流历史中显示的详情(由于安全配置,不会显示用户提交的实际),如图 16.3 所示:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_307_1.png

图 16.3 - 查看配置了安全输入输出的流历史

现在你已经对输入类型有了基本的了解,让我们创建一个流吧!

创建使用所有输入类型的流

在示例中,我们将配置一个使用所有输入类型的简单流,并使用这些数据填充 SharePoint 列表。你也可以尝试此示例将内容保存到数据库。

在开始配置流之前,你需要配置一些基本的先决条件,例如存储各种值的 SharePoint 列表。完成先决条件后,你就可以创建并测试流了。

配置先决条件

由于流的数据将存储在 SharePoint 列表中,如果你没有这些列表,你需要配置一个。在示例中,我们将在现有站点创建一个新列表,然后为我们的每个值添加一列。

要创建列表,请遵循以下步骤:

  1. 导航到 SharePoint 站点,点击 Site contents(站点内容),点击 New(新建)。从下拉菜单中选择 List(列表),如图 16.4 所示:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_308_0.png

  1. 从模板样式中选择 Blank(空白)。

  2. 为列表输入名称并点击 Create(创建)。

  3. 点击 Edit in grid view(在网格视图编辑)。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_308_1.png

  1. 点击 Title 单词,指向 Column settings(列设置),并选择 Rename Column(重命名列)。将列重命名为 Name。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_309_0.png

图 16.6 – 创建列并设置其类型

  1. 在“创建列”飞出窗口中,将名称(Name)设置为 Email1 Address,并确保类型(Type)下拉菜单设置为“单行文本(Single line of text)”。点击保存。

  2. 重复此过程添加列,使用以下列类型和值:

| 列类型 | 标识 (Name) |

| :--- | :--- |

| 文本 / 单行文本 | Email Address |

| 是/否 | Eaten in the last week?(上周内吃过吗?) |

| 数字 | 你每个月吃几次? |

| 日期 | Today’s Date(今天的日期) |

| 图像 | 你最喜欢的食物的照片 |

表 16.1 – 列表值

完成后,它看起来应该像下图所示:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_309_1.png

图 16.7 – 配置后的列表

  1. 点击“退出网格视图(Exit grid view)”以保存更改。

稍等片刻,你配置的列表将被保存。你可以进行下一步了。

创建流

现在你已经有了保存数据的地方,可以开始创建流了。按照以下步骤创建一个手动触发并捕用户输入的流:

  1. 转到 Power Automate Web 门户 (https://make.powerautomate.com) 并选择“创建”。

  2. 选择“即时云流(Instant cloud flow)”。

  3. 为流输入名称,选择“手动触发流(Manually trigger a flow)”触发器,并点击“创建”。

  4. 点击触发器标题显示“添加输入选项(Add an input)”:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_310_0.png

图 16.8 – 展开触发器选项

  1. 点击“添加输入”并选择“文本(Text)”:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_310_1.png

图 16.9 – 添加新的输入类型

  1. 将标签更新为文本 Name,然后将提示(prompt)更新为“请输入您的姓名:”

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_311_0.png

图 16.10 – 配置文本输入

  1. 点击添加输入(Add an input)并选择电子邮件(Email)。将提示更新为“请输入您的电子邮件地址”。

  2. 点击添加输入(Add an input)并选择文件(File)。将标签更新为“图片”。点击该项目旁的省略号 (...),然后根据需要开启必填字段(Make the field required)选项:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_311_1.png

图 16.11 – 配置图片输入

  1. 点击添加输入(Add an input)并选择是/否(Yes/No)。将标签更新为“你上周吃过这个吗?”

  2. 点击添加输入(Add an input)并选择数字(Number)。将提示更新为“请输入你通常每个月吃几次”。

  3. 点击添加输入(Add an input)并选择日期(Date)。将标签更新为“今天的日期”。将提示更新为“请输入今天的日期”。

  4. 添加操作(Add an action)。

  5. 选择 SharePoint 操作创建项(Create item)。

  6. 在站点地址(Site Address)框中选择包含你为练习创建的列表的站点。如果没有显示,点击输入自定义值(Enter custom value)并添加 SharePoint 站点的 URL。

  7. 选择列表。稍等片刻,列表上的列名可能会出现:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_312_0.png

图 16.12 – 编辑“创建项”操作

标记为“必填(Required)”的列表项显示。你可以点击高级参数下的“显示所有(Show all)”按钮,自动将所有剩余列名添加到操作中。

  1. 点击 Name 或 Title 字段(取决于你使用的哪种设计器画布视图),然后选择 Name 的动态值令牌。

  2. 对“上周内吃过吗?是/否”字段、自定义值(Custom value)重复此过程,然后你就可以选择相应的动态内容令牌。完成后,它看起来应该像下面的截图:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_312_1.png

图 16.13 – 完成“创建项”操作

  1. 添加操作。

  2. 在搜索框中输入 attachment(附件)。选择 SharePoint 添加附件(Add attachment)操作:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_313_0.png

图 16.14 – 选择“添加附件”操作

  1. 在站点地址(Site Address)框中,选择包含列表的站点。在列表名称(List Name)框中选择你之前使用的列表。

  2. 在 Id 框中,选择“创建项”操作下的 Id 动态内容令牌。

  3. 在文件名(File Name)框中,输入用于保存文件的文件,例如 FavoriteThing.jpg。你也可以使用表达式来动态命名项目。在本例中,我们使用了以下表达式:

concat(triggerBody()?['email'],_'FavoriteThing_',triggerBody()?['file']['name'])
  1. 在文件内容(File Content)框中,从“手动触发流”部分选择 PicturecontentBytes 动态内容令牌:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_313_1.png

图 16.15 – 将图片添加到 SharePoint 列表项

  1. 添加操作(Add an action)。

25. 配置收件人并保存

    1. 在收者(To)字段中,选择电子邮件(Email)动态内容令牌。
    1. 在主题(Subject)字段中,输入“感谢告知”。
    1. 在正文(Body)字段中,选择任何你想要的动态内容。
    1. 点击保存(Save)。

此时,你已经配置了一个捕获示例输入的流,进行了测试并验证了数据已上传。你可能注意到图像是以附件形式显示的,而不是列表中的列。目前,SharePoint创建项或更新项的操作不支持默认图像列。然而,只要有创意,你可以编写SharePoint HTTP请求来直接上传数据。

注:原文末尾部分存在大量重复的乱码文本,译文已根据逻辑进行了清理和去重。

第 16 章

  1. 选择POST作为方法。

  2. 在Uri文本字段中输入/api/web/lists/GetByTitle('Favorite%20Things')/items(@outputs('Create_item'))?['body/id']/ValidateUpdateListItem,并将列表标题替换为您的列表名称。如果您的列表名称包含空格,您可能需要将空格字符替换为其URL编码值%20。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_319_0.png

图 16.21– 配置 HTTP 请求

  1. 点击高级参数区域下的“显示所有”。

  2. 在Headers区域,配置一个Content-Type标头,值为application/json; odata=verbose。

  3. 添加第二个Accept标头,值为application/json; odata=notmetadata。

  4. 在Body区域,添加以下内容:

{
  "formValues": [
    {
      "FieldName": "Picture",
      "FieldValue": "@{outputs('Compose')}"
    }
  ]
}

参见图 16.22 以向SharePoint发送完整HTTP请求的示例。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_320_0.png

图 16.22 - 配置 HTTP 请求

14. 点击保存

这一次,当您测试流时,图像应该直接显示在列表中,如图 16.23 所示:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_320_1.png

图 16.23 - 列表显示上传图像的缩图

您可以使用此变通方法提高基于列表的Power Automate流的质量。向SharePoint列表添加图像可能需要一些额外工作,但结果有助于他人通过更少的点击次数可视化更多数据。

总结

在本章中,您学习了Power Automate可以接受的不同类型的用户输入,包括文本、数字、是/否选择框、日期和二进制数据。您还配置了一个利用这些方法每种方法的流并将内容保存到SharePoint列表中。

请求输入是Power Automate的一个非常有用的功能,它为您的组织提供了许多自助和数据收集操作。通过这些输入能力,您可以启用依赖运行时提供的唯一数据的工作流场景,例如照片或其他在没有用户交互的情况下无法获取类型类型。

在下一章中,我们将开始查看Power Automate的高级操作场景,例如与Entra ID(原Azure Active Directory,简称AD或AAD)进行交互。

立即解锁本书的PDF版本和独家额外内容——扫描二维码码(或访问packpub.com/unlock)。按名称搜索此书,确认版本,然后按照页面上的步骤操作。

注意: 请保留好您的发票。直接从Packt购买的物品不需要发票。

第 17 章:自动化 Entra ID

在此为止,我们一直关注于从用户的角度将Power Automate作为工作流引擎。我们专注于处理电子邮件、发布到SharePoint列表和文档库、连接到文件和文件夹,以及启动审批工作流。

在本章中,我们将重心离开业务应用程序自动化,转向查看Power Automate在直接处理Entra ID(原Azure Active Directory,AD或AAD)管理方面的能力。Entra ID是Microsoft 365生态系统中应用程序和服务使用的身份存储器。

有许多例行操作任务具有自动化潜力——特别是在涉及身份置备或注销、报告和组管理时。从管理的角度来看,这些都是重要的任务,但如果您需要不断在工单系统和一个或多个管理界面之间切换,可能会产生高昂的人力成本。

虽然Entra ID具有许多原生组管理和报告功能,但某些时候您可能需要根据普通Entra ID管理门户中不可用的属性来创建自动化。虽然数据存在,但从原生的自动化角度来看,它很容易被消费。

假设您向公司的安全团队定期提供报告,说明哪些用户尚未成功完成多因素身份验证(MFA)注册。数据存在Entra ID中,但需要切换任务来收集这些数据、处理它们,然后发送电子邮件。这类活动似乎属于“必须做,但不需要由你来做”的类别。

这就是本章大派用场的地方。

为了获取这些高级数据,我们必须使用一些高级技能,例如解析JSON和使用HTTP连接器。我们将涵盖以下主题:

  • 学习连接器和操作

  • 配置前提条件

  • 创建HTTP流

  • 测试和排排除流

  • 验证流

在本章结束时,您应该理解使用HTTP连接器与Entra ID交互的基础知识。

让我们开始吧!

技术要求

由于我们将处理Entra ID…… [文本根据OCR流已截断]

学习连接器和操作

在本章中,我们将基于其他章节中学到的知识,例如处理条件、动态内容以及发送电子邮件。然后,我们将引入几个与Entra ID相关的新概念,包括HTTP、解析JSON和创建表操作。

HTTP 操作

虽然处理Entra ID通常可以使用标准的Entra ID连接器(如Entra ID和Office 365 Groups连接器)来完成,但存储MFA信息的属性并未通过这些连接器暴露。

为了检索这些数据,我们需要查看另一个源:Microsoft Graph API(通常称为Graph API)。Microsoft Graph API是一种基于REST的API,允许您与存储在Microsoft 365生态中的数据进行交互。由于我们正在寻找的数据在Entra ID中,Graph API是自然的选择。

正如您可能从第 1 章《介绍 Power Automate》回想起的那样,使用HTTP发动词(有时称为操作、指令或方法)与基于REST的系统交互,例如GET(读)、POST(写)、PUT(更新)、PATCH(部分更新)和DELETE(删除)。

要成功使用HTTP操作,我们通常需要提供几个信息:

  • Method:如前,我们将从GET、POST、PUT或DELETE之间进行选择。

  • URI:调用Graph API服务的地址(也称为端点)。

  • Headers:标头有时是可选的,是描述请求正在处理的内容类型的信息。标头通常以键/值对的形式构建,例如Content-type: application/json,其中Content-type是键,application/json是值。

  • Queries:查询是您发送到服务或端点的参数。在Entra ID的上下文中,查询通常是某种过滤标准。

  • Body:正文包含请求本身的详细信息。

虽然某些服务和API是开放的并允许对终端进行免费查询,但大多数服务都需要某种形式的身份验证,以确保只有授权的实体才能访问数据。在处理Entra ID时,我们将指定几条关于身份验证的信息。

你可以使用 https://developer.microsoft.com/graph/graph-explorer 使用Microsoft Graph Explorer尝试其他Microsoft Graph API操作。

与你为止所过的其他连接器和操作相比,你是在创建流时通过交互式地输入用户名和密码来提供身份验证。然而,在处理HTTP请求和Entra ID时,我们需要单独以租户 ID(tenant ID)、客户端 ID(Client ID)和客户端密钥(Client Secret)的形式来指定这些信息。

解析 JSON 操作

如第 1 节“介绍 Microsoft Power Automate”所述,连接器以JavaScript对象表示法(或JSON)存储信息。在处理基于REST的API时,处理的数据(无论发送还是接收)经常会被格式化为JSON。

为了提取创建报告所需的信息,我们需要使用“解析 JSON”(Parse JSON)操作,这将我们配置Power Automate以理解正在使用的架构(schema)。架构是一种用于描述数据结构的定义或图例。我们将利用它来帮助识别构建报告所需的字段或属性。

创建 CSV 表操作

在例示例中,我们将使用逗号分隔值(CSV)表来存储输出内容。“创建 CSV 表”(Create CSV table)操作将用于将信息汇成简单的电子表格风格报告,该报告可以附加在电子邮件中。

现在你已经对将要使用的操作有了进一步了解,让我们开始设置环境以支持该流。

配置先决条件

由于我们要配置的HTTP流没有办法输入传统的用户名和密码作为身份验证机制,我们将创建一个或注册一个具有适当权限的特殊应用程序。该应用程序将通过客户端 ID(本质上是应用程序的用户身份)进行标识。

此外,你还需要配置客户端密钥,它是应用程序相当于密码。不过,租户信息、应用程序信息和客户端密钥将用于提供执行流所需的身份验证。

配置 Entra ID 应用程序

为此流注册新的Entra ID应用程序,请遵循以下步骤:

  1. 使用具有全局管理员权限的身份登录到Entra ID门户 (https://entra.microsoft.com)。

  2. 展开Entra ID并选择“应用注册”(App registrations)。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_327_0.png

图 17.1 - 应用注册页面

  1. 点击“注册”(registration)。

  2. 为应用程序配置显示名称。

  3. 在“支持的账户类型”下选择“仅此组织目录中的帐户[仅主帐户 - 单租户]”,然后在“重定向 URI”下输入 https://auth,如图 17.2 所示。完成后点击“注册”。

提示: 最好为每个应用程序或用例创建一个单独的注册,不要重用应用注册。这允许你针对特定需求更紧密地界定权限。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_328_0.png

  1. 在“管理”(Manage)下,选择“API 权限”(API permissions)。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_328_1.png

  1. 点击“添加权限”(Add a permission)。

  2. 在“请求 API 权限”浮窗中,选择Microsoft Graph。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_329_0.png

图 17.4 – 选择 API

  1. 选择委派权限(delegations)。 在“选择权限”区域,选择 Reports.Read、Directory.Read.All、UserAuthenticationMethod.Read.All 以及 AuditLog.Read.All。 点击“添加权限”。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_329_1.png

图 17.5 – 添加委派 API 权限

  1. 点击“添加权限”。

  2. 在“请求 API 权限”浮窗中,选择 Microsoft Graph。

  3. 选择“应用程序权限”(Application permissions)。在“选择权限”区域,选择 Reports.Read.All、Directory.Read.All、UserAuthenticationMethod.Read.All 以及 AuditLog.Read.All。

  4. 点击“添加权限”。

注意: 对AuditLog.Read.All权限的需求目前被归类为 bug。虽然文档表明此权限并非必需,但未能配置此权限偶尔可能会导致以下错误:错误详细信息:应用程序缺少 MSGraph API 'Read all audit log data'。 添加AuditLog.Read.All权限将解决此问题。

Directory.Read.All权限只有在租户许可证缓存未更新(通常每小时更新一次)时才是必要的。如果你在向租户添加高级版许可证后不久尝试运行流,可能需要临时添加此权限,以允许注册的应用程序具有从租户收集许可证数据的能力。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_330_0.png

如果你的租户中未启用Entra ID订阅,可能会收到以下错误:错误详细:租户既不是 B2C 也没有高级许可证。 要解决此错误,你需要开始试用或购买一个Entra ID P1许可证。

  1. 在 API 权限页面上,点击“授予管理员同意”(Grant admin consent),如图 17.6 所示。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_330_1.png

  1. 点击“是”以批准管理员同意操作。

创建应用程序并授予权限后,让我们继续创建客户端密钥。

创建客户端密钥

在本节中,我们将创建一个与应用程序一起使用的客户端密钥。此信息将用于该流。

要创建客户端密钥,请遵循以下步骤:

  1. 在应用注册打开的情况下,选择“管理”部分下的“证书和密钥”(Certificates & secrets)。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_331_0.png

图 17.7 – 证书和密钥

  1. 选择“新建客户端密钥”(New client secret)。

  2. 在“添加客户端密钥”浮窗中输入描述并从下拉列表中选择过期时间。完成后点击“添加”。

提示: 一旦配置了过期时间,设置一个日历事件提醒自己。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_331_1.png

图 17.8 – 配置客户端密钥

  1. 一旦你离开此页面,将无法检索该值。点击图标将值复制到剪贴板;将其粘贴到文本文档中保存。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_332_0.png

图 17.9 - 客户端密钥

  1. 在导航窗中,选择“概述”(Overview)。

  2. 采集应用程序(客户端)ID和租户(目录)ID值,并将它们保存到第 4 步创建的同一个文件中。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_332_1.png

图 17.10 - 采集配置信息

创建 HTTP 流

搞定!

配置好必要的先决条件后,我们可以开始创建流本身。

获取数据

在本节中,我们将创建一个用于检索注册数据的流。让我们开始吧!

创建流的第一部分需要连接Entra ID以检索构建报告所需的数据。我们将使用HTTP操作查询Entra ID。

在本章中,我们关注Microsoft Graph API终端中的一个REST资源。你可以使用数百个不同的资源来检索和修改数据。有关Graph资源的完整列表,请参见:https://learn.microsoft.com/en-us/graph/api/overview。

按照以下步骤配置HTTP操作:

  1. 导航到Power Automate制作者 Web 门户 (https://make.powerautomate.com) 并点击“创建”。

  2. 点击“计划云流”(Scheduled cloud flow)。

  3. 配置流名称。

  4. 在“运行此流”(Run this flow)下配置计划设置以每周执行。完成后点击“创建”(Create)。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_334_0.png

图 17.11 – 配置流计划设置

  1. 添加操作。

  2. 选择HTTP操作。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_334_1.png

图 17.12 – 选择 HTTP 操作

  1. 在HTTP操作中,在“方法”(Method)下选择GET。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_335_0.png

图 17.13 - 配置 HTTP 操作

  1. 点击高级参数(Advanced parameters)下的“显示”(Show) 以展开额外的参数字段。

  2. 使用在本章之前配置前提(Configuring prerequisites)练习中保存的值,使用 Tenant(租户)、Client ID 和 Secret(密钥)字段中的值填写剩余的HTTP操作参数:

| 参数 | 值 |

| :--- | :--- |

| URI | https://graph.microsoft.com/beta/reports/credentialRegistrationDetails |

| Queries | Key: $filter Value: isMfaRegistered eq false |

配置 HTTP 操作参数

| Authentication | Active Directory OAuth |

| --- | --- |

| Tenant | <Tenant ID value> |

| Audience | https://graph.microsoft.com |

| Client ID | <Application (client) ID value> |

| Credential type | Secret |

| Secret | <Client secret value> |

表 17.1 - 配置 HTTP 操作参数

这里有趣(或重要)的值包括 URI,它是显示用户已注册身份验证方法的 Microsoft Graph 端点;以及筛选器查询,该查询选取了 isMfaRegistered 设置为 false 的用户。

  1. 检查完成的操作,如图 17.14 所示:

    https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_336_0.png

    图 17.14 – 检查完成的 HTTP 操作

  2. 选择 HTTP 操作浮窗顶部的“设置”(Settings)选项卡。

  3. 在“网络”(Networking)下,将“异步模式”(Asynchronous pattern)切换开关置为“开启”(On)。

  4. 将“分页”(Pagination)切换开关置为“开启”,并将“阈”(Threshold)字段配置为 5000。

    https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_336_1.png

    图 17.15 – 配置 HTTP 操作设置

  5. 点击“完成”(Done)。

  6. 点击“保存”(Save)。

  7. 点击“测试”(Test),然后在“测试流”(Test Flow)浮窗面板中,选择“手动”(Manually)单选框然后点击“测试”。

  8. 点击“运行流”(Run flow)确认您的选择。

  9. 点击“完成”(Done)。

  10. 流运行后,点击步骤的标题栏展开 HTTP 操作步骤。

  11. 滚动到运行历史的“输出”(Outputs)部分。点击“显示原始输出”(Show raw outputs)打开 HTTP 浮窗,以便您查看 JSON 结构。

  12. 将 HTTP 浮窗文本框中的整个 Body 值复制到剪贴板。此数据将用于定义 JSON 架构(组织结构)。

注意

您可能希望将数据粘贴到文本文档或 JSON 友好的编辑器中(例如 Notepad++ (https://www.notepad-plus-plus.org)),以验证您已捕获了所有数据,包括起始括号和结束括号。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_337_0.png

  1. 关闭浮窗。

  2. 点击“编辑”(Edit)返回编辑流。

此时,您已创建了一个成功连接到 Entra ID 的流。接下来,我们将查看如何使用“解析 JSON”(Parse JSON)操作来配置 Power Automate。

解析输出

在成功从 Entra ID 查询未配置 MFA 的用户列表后,您现在需要配置一个步骤来解码返回的数据。此过程被称为“解析”,它允许 Power Automate 识别单独记录以及这些记录内部的单独属性或参数。

按照以下步骤操作:

  1. 滚动到当前流的底部并添加操作(Add an action)。

  2. 选择“解析 JSON”(Parse JSON)数据操作。

    https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_338_0.png

    图 17.17 - 添加解析 JSON 操作

  3. 选择“内容”(Content)字段,然后添加 Body 动态内容值,如图 17.18 所示。

    https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_338_1.png

    图 17.18 - 配置解析 JSON 操作

  4. 在解析 JSON 操作的底部,点击“使用示例负载生成架构”(Use sample payload to generate schema)。

  5. 将上一节第 21 步中复制的 JSON 数据粘贴到“输入或粘贴示例 JSON 负载”对话框的主体中。点击“完成”。

当您粘贴 JSON 示例数据时,它可能包含多个条目。不用担心——Power Automate 将分析内容并仅选择一个条目,用于定义架构。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_339_0.png

Enter or paste a sample JSON payload.
{
  "body": {
    "id": "1a6f09d3-a2c7-4b72-8026-559a67f8ff98",
    "userEmail": "customerservice@example.com",
    "userDisplayName": "customerservice",
    "isEnabled": false,
    "isActive": false,
    "authMethods": [
      {
        "id": "68f475f1-ed6c-4b72-8026-559a67f8ff98",
        "method": "windows",
        "info": "username",
        "isEnabled": false,
        "isActive": false,
        "isRegistered": false
      }
    ]
  }
}

图 17.19 – 使用 JSON

  1. 检查架构以确保它包含闭合括号。点击“保存”。

Power Automate 现在有了从 Entra ID 获取的信息。接下来,我们将此输出构建报告。

创建报告

要完成此流,请遵循以下步骤:

  1. 打开流后,滚动到底部并选择操作。

  2. 选择“筛选数组”(Filter array)。

  3. 在“源”(From)字段中,添加来自解析 JSON 的 Body 动态内容,如图 17.20 所示。

    https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_340_0.png

    图 17.20 – 筛选

  4. 在第一个值框中,选择解析 JSON 的 Body 动态内容。

  5. 在运算符下拉菜单中选择“不等于”(not equal to)。

  6. 在第二个值框中,选择“表达式”(Expression),然后选择 null。

  7. 添加。

    https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_340_1.png

    图 17.21 – 配置筛选

注意

检查此步骤中使用的输入值很重要。根据界面(新设计器与旧设计器),此值的显示方式可能不同。如果在测试流后收到提示输入需要数组的错误,请检查此操作。您可以悬停在 From 字段中粘贴的值上。您需要确保它完全那样粘贴在框中,注意 null 单词周围没有任何引号。错误的格式会导致 null 被视为字符串而非表达式。见图 17.22。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_341_0.png

图 17.22 – 在高级模式下输入表达式

  1. 添加操作。

  2. 选择“创建 CSV 表”(Create CSV table)操作。

  3. 在“源”(From)字段中,选择来自筛选操作的 Body 动态内容。

    https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_342_0.png

    图 17.24 – 配置 CSV 操作

  4. 在“创建 CSV 表”操作浮窗中,选择高级参数下的“显示所有”(Show all)。

  5. 在“列”(Columns)下拉菜单中,选择“自定义”(Custom)。我们将使用此设置来定义要添加到 CSV 表的列。

  6. 在“Header”列中填充你想要包含的信息,并在“Value”列中填充来自“筛选数组”操作的相应动态值令牌。此示例将 DisplayName 头部映射到 userDisplayName 令牌,并将 Address 映射到 userPrincipalName 令牌。

    https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_343_0.png

  7. 添加一个操作。

  8. 选择 Office 365 Outlook 的“发送电子邮件 (V2)”操作。

  9. 在“致”框中输入电子邮件地址或从地址簿中选择收件人。

注意

如果你没有配置 Office 365 Outlook 连接,系统将提示你输入启用邮箱的帐户的凭据才能继续。

  1. 输入主题,例如“未启用 MFA 用户周报”。

  2. 在“正文”部分输入描述性文本,例如“未完成 MFA 注册的用户周报”。

  3. 选择“高级参数”下的下拉菜单并点击“附件”。

  4. 在“附件”区域,点击“添加新项”。

  5. 在“附件名称”字段中输入一个给 CSV 输出的文件。你可以使用表达式来创建自定义名称。

注意

请确保在名称末尾添加 .csv 或 .txt,以便收件人能够轻松在电子表格或文本查看器中打开。

  1. 在“附件内容”正文中,选择“创建 CSV 表”下的 Output 动态内容令牌,如图 17.27 所示。

    https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_344_0.png

    图 17.27 – 配置附件名称和内容

  2. 点击保存。

恭喜你!

你现在已经配置了一个针对未注册 MFA 用户的自动化 Entra 报告。

测试流

要测试此流,你可以点击 Power Automate 画布区域右上角的“测试”。

选择选项以手动启动测试流。启动测试后,你可以在 Power Automate 画布区域或流的“运行”下查看活动运行历史,如图 17.28 所示:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_345_0.png

图 17.28 - 查看流的运行

如果任何操作或步骤返回错误,你可以展开该步骤并查看输出。

验证流

最后一步是检查发送的电子邮件。要执行此操作,请登录作为“发送电子邮件 (V2)”操作收件人的邮箱,并查找该消息:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_346_0.png

你可以打开附件并查看详情,如图 17.30 所示:

第 17 章

319

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_347_0.png

图 17.30 – 检查附件

如果一切运行正常,你应该得到一个报告,其中包含了 Microsoft 365 租户中所有启用的用户。

进一步扩展

除了创建 CSV 输出外,你还可以探索更丰富的数据方案。其中一种方案是创建一个 HTML 表格并直接包含在电子邮件中。

创建 HTML 表格数据操作的功能与“创建 CSV 表”操作相同,不同之处在于输出是基本 HTML 格式的数据而不是逗号分隔的数据。通过将 HTML 输出包含在邮件消息正文中,你可以潜在地提高电子邮件的可用性。

总结

能够处理 Entra ID 可以为许多管理和报告任务开启自动化模式。使用 Power Automate 帮助处理报告数据或其他管理任务,可能会释放出宝贵的时间来处理其他高价值任务。

在本章中,你学习了如何开始直接与 Entra ID 工作。你学习了如何与 Microsoft Graph API 交互以检索 MFA 数据、对其进行解析和过滤,然后将输出作为 CSV 附件添加到电子邮件中。你接触了几个新操作(包括 HTTP、解析 JSON 和创建 CSV 表),并使用它们来检索和格式化数据,以便人类轻松理解。

在下一章中,我们将开始学习机器人流程自动化。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_348_0.png

第 3 部分

机器人流程自动化、AI 模型、Copilot 及更多

在本部分,你将了解最新的自动化技术,包括用于遗留应用程序的机器人流程自动化、AI 和机器学习模型、Copilot 以及更高级的第三方应用程序。

本书包含以下章节:

  • 第 18 章:介绍机器人流程自动化

  • 第 19 章:使用 RPA 向 Access 数据库贡献数据

  • 第 20 章:使用 RPA 自动化网页

  • 第 21 章:介绍 AI 模型

  • 第 22 章:创建情感分析

  • 第 23 章:使用 Copilot 管理流

  • 第 24 章:使用生成式 AI 总结文档

18

介绍机器人流程自动化

正如你目前所见,Power Automate 在处理桌面应用程序方面是一个极其强大的平台。虽然 Power Automate 最初的重点是集成云服务,但微软意识到了一个差距并更新了平台以支持机器人流程自动化 (RPA)。RPA 流最初名为用户界面 (UI) 流,旨在捕获并重放人工干预执行的操作,例如键盘和鼠标点击。RPA 流帮助解决某些不存在脚本或 API 接口的挑战。常见示例包括:

  • 通过复制和粘贴将数据复制到多个系统

  • 读取手写订单单并将其转换为应用程序

你可以将 RPA 视为一种允许你自动化桌面应用程序的宏。Power Automate 支持两种类型的自动化:使用桌面应用程序创建的流和使用 Selenium IDE 的流。Selenium IDE 是一个可以用于记录浏览器会话的开源工具。

我们将直接处理桌面应用程序,因此我们将使用 Power Automate 桌面版(它也具有浏览器功能)。此外,Power Automate 支持两种 RPA 场景:交互式和无人值守。交互式 RPA 场景包括人类交互,用于启动流或在执行期间提供输入。无人值守流是无需用户干预即可运行的全自动化流程。

Power Automate Desktop 现在包含“使用 Copilot 录制”功能,允许你将录制过程与语音旁白相结合,帮助 Copilot 确定如何创建和更新操作。使用 Copilot 录制仅适用于美国地区的租户,且仅支持英语旁白。访问 https://learn.microsoft.com/en-us/power-automate/desktop-flows/create-flow-using-ai-recorder。

在本章中,我们将探索如何与 Copilot 和机器人流程自动化工作。我们在第 2 章“开始使用 Power Automate”中仅仅触及了皮毛。在这里,在深入探讨示例之前,我们将进一步地探索 RPA 的力量。

技术要求

除了 Power Automate 许可证外,本章将使用以下软件和应用程序:

  • Power Automate Desktop

  • Power Automate WebDriver

  • Microsoft 数据网关

在本章中,我们将使用 Windows 11 自带的 Power Automate Desktop 版本。Power Automate Desktop 也可以为 Windows 10 提供免费下载,我们将在“配置先决条件”部分介绍这一点。

微软的数据网关与 Power Automate Desktop 一样,可以在 Power Automate 网页门户内部免费获取。我们稍后在“配置先决条件”部分也会介绍这一点。

提醒一下,你需要 Power Automate 用户计划(per-user plan)以及无人值守 RPA 附加组件。

学习操作和传递变量

在本章中,我们将介绍一些与使用 Power Automate Desktop 相关的新概念,特别是关于运行 Power Automate Desktop 流的操作,以及如何将变量从云端传递到桌面应用程序。

运行使用 Power Automate for desktop 操作构建的流

Power Automate Desktop 无法读取或使用云触发器。但是,通过数据网关建立的连接,Power Automate Desktop 可以接收执行其所负责的流所需的指令。

传递变量

变量是一种用于存储临时信息的编程结构。程序员将变量用作应用程序、脚本或进程运行时发生变化(或不同)的内容占位符。通过使用变量,应用程序可以在执行期间用实际值替换变量。

你已经在书中到处看到变量了,尽管 Power Automate 用户界面通常将它们称为动态内容(dynamic content)。当你向 Power Automate 流中添加操作时,动态内容标记或变量将根据上一个步骤的输出自动构建。

然而,Power Automate Desktop 无法自动从云流中导入这些变量。为了弥补这一差距,Power Automate 允许你定义变量以便在环境之间传输这些内容。

Power Automate 有两种类型的变量:输入变量和输出变量。输入变量是你根据 Power Automate 服务暴露出的信息创建的新变量。输出变量是 Power Automate Desktop 可以传回 Power Automate 服务的生成数据。当我们开始配置流时,你将学习如何创建新变量以便在环境之间传递。

与文件系统交互

使用 Power Automate Desktop 的另一个优势是能够与本地文件系统进行交互。例如,你可能有一个旧的业务流程,它依赖于主机向你数据中心内的另一个服务器发送文件。Power Automate Desktop 可以获取该文件并开始对其处理。由于 Power Automate Desktop 应用程序运行在网络内部的工作站上,它可以访问如映射驱动器或通用命名规范(UNC)路径等内容。

运行脚本

Power Automate Desktop 还可以启动各种脚本,包括 DOS、VBS、Java、PowerShell 等。

图 18.1 - Power Automate Desktop 脚本语言

第 18 章

一旦激活了脚本操作,你就可以输入自己的代码,甚至可以使用 Copilot 进行引导指引,如图 18.2 所示:

第 18 章

使用 Copilot 生成脚本

图 18.2 – 使用 Copilot 生成脚本

显然,你将对 Copilot(或任何其他 AI 助手)生成的任何脚本进行测试,但它确实可以节省时间!

Power Automate 录制器

Power Automate 录制器是一个强大的工具,允许你捕捉作为用户执行的步骤,它是了解 Power Automate Desktop 环境某些功能的绝佳方法。

如果你以前在 Microsoft Excel 中录制过宏,你就会对 Power Automate 录制过程的工作原理有一个大致了解。Power Automate 会记录诸如启动应用程序、选择对话框或界面、输入文本等行为。录制过程完成后,你将得到一个操作列表,你可以编辑这些操作以完善你的最终输出。

现在你已经了解了我们将使用的内容,让我们进入配置先决条件的阶段。

配置先决条件

如前所述,此流将需要一些软件先决条件——即 Power Automate Desktop 应用程序、支持的浏览器组件以及数据网关应用程序。

虽然可以在主计算机上完成这些步骤,但我们建议使用第二台计算机(或虚拟机)来配置先决条件并运行流。Power Automate Desktop 会自动化鼠标和键盘输入,如果你尝试从执行操作的同一台计算机上触发流,可能会遇到困难和意外错误。

如果你没有第二台计算机,可以启动一个免费的 Azure 试用订阅(https://portal.azure.com)并配置虚拟机。或者,你可以从你有权的另一个设备(如手机或平板电脑)触发流。

让我们开始吧!

配置 Power Automate Desktop

Windows 11 已经包含了 Power Automate Desktop,这就是我们在练习中将使用的版本。不过,你可以从 https://go.microsoft.com/fwlink/?linkid=2137322 或 Power Automate 制作网页门户免费下载并在 Windows 10 上安装 Power Automate Desktop,如图 18.3 所示。

图 18.3 - 下载 Power Automate Desktop

在配置时,可能会出现 Power Automate 网页门户无法识别 Power Automate Desktop 的情况;安装原生 Windows 版网关。

配置微软数据网关

网关的功能允许内部网络设备与 Power Platform 服务(如 Power Apps 和 Power Automate)通信。

机器人流程自动化

如果你在现有的 Microsoft 365 环境中工作,可能需要权限才能配置网关。如果你使用的是自己的设备,可以按照以下步骤操作:

  • 在要安装的设备上,导航到 Power Automate 网页门户(https://make.powerautomate.com)。

  • 滚动到页面底部,选择下载下的“网关”。如果链接未出现,也可以访问 https://go.microsoft.com/fwlink/?2116849。

  • 同意使用条款,然后点击“安装”。

图 18.4 - 下载本地网关

  • 软件安装后,输入你的 Microsoft 365 凭据以开始向租户注册网关。点击“登录”开始过程。

  • 完成现代身份验证对话框。

  • 选择“在此计算机上注册新网关”选项并点击“下一步”。

图 18.5 - 安装网关

  • 为“新的本地数据网关名称”输入值。你可以使用任何喜欢的名称,不必是计算机名称。这是你在 Power Automate 网页门户中配置访问本地服务的流时显示的名称。

  • 为“恢复密钥”输入值。当你需要恢复或重新配置网关时,需要该恢复密钥。在“确认恢复密钥”框中输入相同的值并点击“配置”。

图 18.6 – 配置网关设置

图 18.7 – 注册新网关

图 18.8 – 配置网关设置

  1. 确认设置。

图 18.9 – 确认数据网关设置

  1. 安装完成后,点击关闭。

数据网关现在已配置完成,并准备好路由到任何本地应用程序或数据库。

接下来,我们将为基于浏览器的自动化准备好组件。

配置浏览器扩展

最后一步是确保安装了 Selenium 浏览器扩展。此软件可用于多种自动化平台,帮助进行基于浏览器的测试和操作。按照以下步骤操作:

  1. 打开您的浏览器(Chrome 或 Edge)。

  2. 选择您想要使用的浏览器配置。

  3. 点击浏览器扩展图标进入浏览器的扩展商店。

图 18.10 - 启动浏览器扩展商店

  1. 搜索 Selenium。

图 18.11 – 搜索 Selenium 扩展

  1. 选择一个可用的扩展。

  2. 根据您的浏览器,点击“获取”或“添加至 Chrome”。

图 18.12 – 安装扩展

  1. 点击添加扩展程序以确认安装。

您可能需要为每个想要自动化的浏览器重复安装扩展程序(尽管在接下来的章节中,我们将重点关注 Microsoft Edge)。

总结

RPA 有助于简化以前不适用于自动化的旧应用程序的操作。这对于依赖于不具备网络感知能力或使用无法在互联网上路由的旧通信协议的老应用程序的企业来说,非常有益。

在下一章中,我们将开始使用 RPA 和 Power Automate Desktop 应用来处理本地数据库应用程序。


第 19 章

使用 RPA 向 Access 数据库写入数据

在上一章中,我们涵盖了机器人流程自动化的一些功能——包括用例和一些通用最佳实践。

但还有什么比实际操作更能理解它的方式呢?

为了实现这一点,我们将从 Microsoft Forms 调查中获取输入。在第 14 章“使用 Microsoft Forms”中,您获取了用户提交的数据并将其插入 SQL 数据库。在本章中,我们将获取这些 Forms 数据并使用桌面流将其输入 Microsoft Access 数据库。

本章中将涵盖的主题如下:

  • 配置先决条件

  • 配置 RPA 流

  • 测试流

  • 验证流

在本章结束时,您应该对 Power Automate Desktop 环境的一些功能有所了解。

让我们开始吧!

技术要求

除了 Power Automate 许可外,本章将使用以下软件和应用程序:

  • Power Automate Desktop

  • Microsoft Access

  • Microsoft 数据网关

在本章中,我们将使用 Windows 11 自带的 Power Automate Desktop 版本。Power Automate Desktop 也可以作为 Windows 10 的免费下载,我们在上一章中介绍过(您也可以点击此处下载:https://go.microsoft.com/fwlink/?linkid=21373222)。

Microsoft Access 可以作为独立应用程序或套件的一部分提供,例如 Microsoft 365 商业(以前称为 Microsoft Office 365 ProPlus)或 Microsoft Office 2019 和 Microsoft Office 2024。如果您有 Microsoft 365 租,可以从落地页下载 Microsoft 365 Apps 的评估版。

Microsoft 数据网关像 Power Automate Desktop 一样,可以在 Power Automate Web 门户内免费获取。上一章提供了安装的步骤说明,如果您错过了,请回翻几页。

提醒一下,您需要 Power Automate 每用户计划和无人值 RPA 加项。

配置先决条件

安装好桌面软件后,就可以开始处理本章特定的先决条件了。

配置 Power Automate 机器组

除了数据网关外,Power Automate 还可以使用机器和机器组。机器和机器组是将多台机器(或机器人)聚合在一起的方式,以便您的流运行得更可靠且扩展性更好。

机器组是注册到 Power Automate 的单个机器(物理计算机或虚拟机)的逻辑分组。分配给机器组的桌面流会进入队列,当组中的某台机器空闲时,它就会获取下一个作业。这种方法有助于分配负载、避免瓶颈并提高无人值自动化的吞吐量。

要设置基础机器,请遵循以下步骤:

图 19.1 – 创建机器

  1. 导航到 Power Automate Web 门户 (make.powerautomate.com) 并选择“机器”。

  2. 点击“新建”并选择“机器”。

图 19.2 – 创建机器

  1. 如果您已经部署了 Power Automate(您应该已经有了),现在启动它。否则,请获取最新版本。

  2. 如果提示,请启动 Power Automate。

  3. 选择您想要注册的环境。

图 19.3 – 注册机器

  1. 连接成功后,Power Automate 运行时将显示注册详细信息。

  2. 关闭应用程序。

接下来,我们将配置要使用的数据库。

配置数据库

在本章中,我们将使用 Microsoft 包含的默认联系人模板。要配置数据库,请遵循以下步骤:

  1. 启动 Microsoft Access。

  2. 在“首页”选项卡上,展开“新建”并选择“联系人”。

图 19.4 – 创建数据库

  1. 接受默认设置并点击“创建”。

  2. 如果看到标记为“安全警告”的金色条,点击启用内容。

图 19.5 – 创建数据库

  1. 观察并熟悉数据库。您会注意到数据库有几个关键区域,包括表(联系人)和设置,以及表单(详细信息、联系人列表和欢迎)。

  2. 我们在本章中处理“联系人列表”表单。点击此页面上的“新建联系人”按钮将打开图 19.7 所示的详细信息表单,我们将在此插入之后获取的 Microsoft Forms 数据。

  3. 点击 X 图标关闭详细信息表单。如果弹出图 19.8 所示的“打开数据库时显示欢迎”复选框,您需要关闭并重新打开数据库以清除它,因为它会干扰自动化。

  4. 完成后,退出 Microsoft Access 应用程序。

核心前提准备完成后,让我们开始创建流!

配置流

为了简单起见,我们将重用在第 14 章“使用 Microsoft Forms”中创建的现有 Microsoft Forms 表单。如果需要,您可以创建一个新的,但您可能需要根据您的表单修改示例中的步骤。

由于这是一个更复杂且涉及较大的流,此过程将分解为若干较小的部分。

配置流触发器

在本节中,我们将配置一个新流来调用启动 Power Automate Desktop 的操作。我们还将设置变量。

要开始,请按照以下步骤操作:

  1. 在配置了 Microsoft Access 和 Power Automate Desktop 的计算机上,确保已用 Microsoft Access 打开了“联系人”(Contact)数据库。

  2. 点击“创建”,然后选择“自动化云流”。输入流名称,例如“将联系人 Access 数据库”。

  3. 选择“提交新响应”Microsoft Forms 触发器,并点击“创建”。

图 19.9 - 添加新流

  1. 在“提交新响应”触发器中,选择与第 14 章“使用 Microsoft Forms”中的“客户数据采集”(Customer Data Intake)表单对应的表单 ID。

  2. 添加操作。

  3. 选择“获取响应详情”Microsoft Forms 操作。

  4. 选择你在“提交新响应”触发器中选择的表单(或表单 ID)。在“响应 ID”(Response ID)字段中,添加“响应 Id”动态内容值。

图 19.10 - 添加“获取响应详情”操作

添加操作,然后选择“运行使用 Power Automate Desktop 构建的流”操作,如图 19.11 所示:

填充操作的属性。在“连接名称”(Connection name)下,添加一个名称,例如“Power Automate Desktop”。

在“连接”(Connection)下,指定“使用用户名和密码连接”。或者,如果你将坐在桌面前并登录设备,可以指定“使用登录连接 - 交互式”(Connect with sign in – Attended)。

在“机器或机器组”(Machine or machine group)下,选择你的新机器。

最后,输入你登录机器的凭据(使用 DOMAIN\username 或 MACHINE\username)。完成后,点击“创建新的”。

在创建连接对象后,该操作将更新。在“桌面流”(Desktop flow)下,选择“创建新桌面”选项。流更新后,将“运行模式”(Run mode)更新为“非交互式”(Unattended,在未注销的机器上运行)。

  1. 在“桌面流”下,选择“创建新桌面流”。

图 19.13 – 创建新的桌面流

  1. 在“生成桌面流”弹出框中,输入新的流名称(例如“添加到联系人数据库(桌面端)”),并点击“启动应用”。

  2. 如果出现提示,点击“打开”允许网站链接到本地应用程序。

  3. 如果出现提示,提供凭据以允许 Power Automate Desktop 应用连接到你的环境。默认情况下,你将连接到 Microsoft 365 租户的默认环境。

  4. 点击屏幕右侧的 [x] 图标打开“变量”面板。

  5. 在“变量”面板中,在“输入/输出变量”下,点击 + 图标,然后选择“输入”以添加输入变量。

图 19.14 – 添加变量

  1. 填写“新输入变量”。完成的示例请参阅图 19.15。

注意:“变量名称”(Variable name)和“外部名称”(External name)均指的是你给特定变量起的名称。“变量名称”是你在 Power Automate Desktop 中工作时使用的变量属性。“外部名称”属性将显示在 Power Automate 云端服务中。

  • 变量类型:输入

  • 变量名称:varFormCompanyName

  • 数据类型:文本(以前为字符串)

  • 默认值:<空>

  • 外部名称:varDesktopCompanyName

  • 描述:<空>

  • 标记为敏感:<否>

  • 标记为可选:<否>

图 19.15 - 填写变量参数

  1. Microsoft Forms 应该有六个数据字段(CompanyName、FirstName、LastName、JobTitle、Mail 和 TelephoneNumber)。对剩余的每个变量重复步骤 13 和 14。

图 19.16 - 配置完成的变量

  1. 点击“文件 | 保存”以保存你的进度。

接下来,我们将使用 Power Automate 运行输入数据的步骤。

配置打开一个应用程序

为了确保成功,建议从运行 Microsoft Access 应用程序的系统操作开始。按照以下步骤操作以配置该操作:

  1. 在打开 Power Automate 设计器的情况下,在“操作”面板中搜索“运行”。

  2. 选择“运行应用程序”并将其拖到“主主体”。

图 19.17 - 添加“运行”操作

  1. 在应用程序路径(Application path)框中,点击文件图标浏览到 Microsoft Access 可执行文件的位置,例如 C:\Program Files\Microsoft Office\root\16\MSACCESS.EXE。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_378_0.png

图 19.18 - 添加 Microsoft Access 路径

  1. 在命令行参数(Command line arguments)框中,添加联系人数据库的路径。你可以使用资源管理器导航到文件夹,右键点击数据库文件,并选择复制为路径。

第 19 章

351

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_379_0.png

图 19.19 - 复制数据库的路径

  1. 将该值粘贴到命令行参数框中,如图 19.20 所示:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_379_1.png

图 19.20 - 将数据库路径作为参数添加

  1. 在“窗口样式”(Window style)下,选择“最大化”(Maximized)。

  2. 点击“保存”保存该步骤。

此时,你已经配置了桌面流来启动 Microsoft Access 并打开正确的数据库文件。

运行 Power Automate 录制器

现在,我们准备好开始捕捉构成流的基本动作。让我们开始吧!

  1. 确保桌面上没有显示不必要的桌面应用程序。你可以退出或最小化它们,以免它们干扰录制。

注意:不要关闭已打开 Power Automate 的浏览器窗口。我们稍后的步骤中会返回那里,所以我们要确保一切准备就绪。

  1. 在 Power Automate 应用打开的情况下,点击菜单栏上的“录制”启动录制器。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_380_0.png

图 19.21 - 启动 Power Automate 录制器

  1. 确保联系人数据库已最大化,并关闭所有其他窗口(浏览器和 Power Automate 应用),以防止弹出窗口占用焦点。

  2. 点击应用中的录制按钮。从此时点起,Power Automate 录制器将捕捉你在桌面上执行的每项活动。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_381_0.png

  1. 点击“下一步”,然后点击“录制”开始录制。

  2. 移动录制器以防遮挡。

  3. 点击“新联系人”按钮。

  4. 为名、姓、公司、职位、电子邮件和电话字段添加占位数据。点击选择每个字段。

注意:每次按键都会被录制,因此请谨慎输入。你只需要占位信息,因为我们将编辑步骤并将文本替换为变量。速度要慢一点,以便录制器捕捉你的点击操作。注意当你悬停并选择字段时周围的红色高亮。这是录制器捕捉的关键数据。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_382_0.png

图 19.23 - 向联系人条目添加数据

  1. 在联系人详情页面点击“关闭”。

  2. 点击“关闭”退出 Microsoft Access。

  3. 在 Power Automate 录制器上点击“完成”。

第 19 章

355

你应该返回到了 Power Automate Desktop 设计界面。主窗口显示了你在编辑表单时执行的所有操作。仔细检查列出的操作。如果你发现任何位置不当或以任何方式会干扰流自动化运行的操作(例如关闭另一个应用程序、移动窗口或点击无关字段),可以选择该操作并按键盘上的 Delete 键删除,或展开省略号并点击删除。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_383_0.png

图 19.24 - 检查操作

  1. 删除错误项后,梳理最终步骤集,以确保它们逻辑合理且所有步骤都已在内。如果不小心删除了或更改了步骤顺序,可以按 Ctrl + Z 撤销。你可以通过拖放来重新排序步骤,并复制粘贴步骤。

356

更新变量

当你检查这些步骤时,应该已经看到了你所选择并输入占位符文本的文本框(例如 First Name)。在本节中,我们将介绍将占位符文本替换为你在“配置流”部分创建的输入变量的过程:

  1. 找到 Send keys(发送按键)操作的实例,它对应于录制过程中向“Contact Details”表单上的 First Name 字段输入占位符文本值。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_384_0.png

  1. 双击该条目。

  2. 在 Send keys 窗口中,选择占位符文本(在本例中值为 firstname)。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_385_0.png

图 19.26 – 编辑 Send keys 数据

  1. 在 Text to send(要发送的文本)文本框的右上角,选择变量图标,图标由 {x} 表示)。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_386_0.png

  1. 从显示的输入变量列表中,选择代表 First Name 值的变量。在这种情况下,变量名为 varFormFirstName。双击变量或点击 Select(选择)以确认你的选择。

  2. 验证 Text to send 框中的数据已更新为 %varFormFirstName%,如图 19.28 所示:

Send keys

向当前激活的应用程序发送按键更多信息

Select parameters

| 字段 (Field) | 值 (Value) |

| :--- | :--- |

| Send keys to: | |

| Text to send: | |

| Input as text, variable or expression (作为文本、变量或表达式输入) | %varFormFirstName% |

| Delay between keystrokes (按键之间的延迟): | |

| Send Text as hardware keys (作为硬件按键发送文本): | |

| On error (出错时) | |

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_387_0.png

  1. 点击 Save(保存)。

  2. 对对应姓、公司、职位、电子邮件地址和电话号码的其余变量重复此系列步骤。

  3. 在 Power Automate 设计器中点击 Save。

  4. 退出 Power Automate 设计器。

恭喜!你已经录制了一个流。现在,我们将返回 Power Automate Web 门户并完成该流。

完成流

现在你已经已经在桌面流中创建了所有的输入变量,现在是时候更新云流,将 Microsoft Forms 数据的动态内容令牌发送到相应的桌面流输入变量了。

360

使用 RPA 写入 Access 数据库

开始吧!

  1. 在浏览器中打开 Add Connect to Access Database 流后,等待流更新。如果它没有自动更新,点击 Save。来自桌面流的变量应该会被填充。参见图 19.29。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_388_0.png

图 19.29 - 编辑流以更新变量

  1. 从列出的第一个输入变量开始,点击文本框并选择来自 Get response details 操作中对应变量的动态内容。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_388_1.png

图 19.30 - 将动态内容链接到相应的桌面输入变量

  1. 为每个变量重复此过程。

第 19 章

361

  1. 完成后点击 Save。

  2. 关闭浏览器窗口,并确保执行桌面流的机器上没有运行其他应用程序。

你已经完成了桌面流的配置。现在,来测试它。

测试流

正如在“配置前提条件”部分提到的,建议在独立于执行桌面流计算机的设备上启动此流。如果可能,你希望同时访问两台设备,这样你就可以在一台设备上启动流,并在另一台设备上观察桌面流的执行。这将帮助你收集故障排除所需的数据。

按照以下步骤测试流:

  1. 在另一台计算机上,打开浏览器。

  2. 导航到 Power Automate Maker Web 门户 (https://make.powerautomate.com)。

  3. 点击 My flows(我的流),选择 Add Contact to Access Database 流并点击 Edit(编辑)。

  4. 点击 Test(测试)打开测试面板。

  5. 选择 Manually(手动)单击按钮,然后点击 Save & Test(保存并测试)。

  6. 打开另一个浏览器标签页并导航到 Microsoft Forms 门户 (https://forms.office.com)。选择 Customer Data Intake 表单

  7. 在菜单栏上选择 Preview(预览)。

  8. 使用唯一且易于识别的测试数据填充表单,然后点击 Submit(提交)。

此时,你可以切换回 Power Automate 浏览器窗口并查看步骤的输出。

验证流

验证桌面流成功完成的最简单方法是实时观察桌面流的执行(取决于你选择了 Attended(受托管的)还是 Unattended(非托管的))。在执行过程中(如果你是受托管流),你应该能够看到以下操作发生:

  • Microsoft Access 应用程序启动并打开 Contacts 数据库

  • 点击 New(新建联系人)按钮

  • 在每个字段中输入文本

  • 点击 Close(关闭)按钮

  • Microsoft Access 应用程序关闭

你也可以自己打开 Contact 数据库来验证流,确认数据与你在 Customer Data Intake 表单中输入的内容匹配:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_390_0.png

图 19.31 – 查看通过 Power Automate Desktop 流输入的联系人

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb4507844766738fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb4507844766738fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb4507844766738fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb4507844766738fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476638fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476638fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476638fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476638fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476638fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476638fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476638fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476638fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476638fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476638fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476638fab1c5fe829d_390_1.png

图 19.32 – 非托管的错误

如果你尝试观察非托管流,你可能会收到此错误:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476638

391

第 19 章

20

使用 RPA 自动化网页页面

Power Automate 的浏览器自动化功能将机器人流程自动化(RPA)直接带入现代工作区。使用 Power Automate Desktop,你可以记录、编写并重放诸如点击、表单提交、导航和数据提取等浏览器操作。这使得执行基于网页的任务成为——从登录门户到收集报告或根据网站更改触发工作流。它是传统自动化与日益增长的网页交互需求之间的桥梁。

通过本章的示例,你学习了如何将云流与桌面集成,为应用程序记录步骤并在环境之间传递变量——这些对你的需求非常有用。

使用 RPA 写入 Access 数据库

  1. 在浏览器中打开 Add Connect to Access Database 流后,等待流更新。如果它没有自动更新,点击 Save。来自桌面流的变量应该会被填充。参见图 19.29。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_388_0.png

图 19.29 - 编辑流以更新变量

  1. 从列出的第一个输入变量开始,点击文本框并选择来自 Get response details 操作中对应变量的动态内容。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_388_1.png

图 19.30 - 将动态内容链接到相应的桌面输入变量

  1. 为每个变量重复此过程。

  2. 完成后点击 Save。

  3. 关闭浏览器窗口,并确保执行桌面流的机器上没有运行其他应用程序。

你已经完成了桌面流的配置。现在,来测试它。

通过自动化这些浏览器任务,你可以节省时间、减少错误,并在现代和遗留环境中创建更具一致性的数字流程。

你还可以构建一种浏览器交互,从网站上收集数据(这一过程被称为网页爬取)。有许多演示网站可以供你练习网页爬取技术,例如:

你甚至可以在 Amazon、MSN 或 Yahoo! 等热门网站上进行学习。

在本章中,我们将构建一个流,用于创建浏览器的交互,该流将处理几个常见任务:

  • 导航网页

  • 输入数据

  • 爬取数据

  • 截屏

让我们开始吧!

导航网页

在构建向网页发送数据或从网页检索数据的流程之前,你将需要学习如何让机器人流程自动化(RPA)与浏览器交互的基础知识。

我们将通过以下步骤涵盖导航网页的基本知识:

  1. 启动 Power Automate Desktop 应用程序。

  2. 点击“新建”,然后选择“流”。

  3. 在“创建流”页面上,输入流名称并点击“创建”。

  4. 流程加载后,在“操作”窗格中,展开“浏览器自动化”,然后选择“启动新的 Microsoft Edge”。将其拖到“主画布”区域。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_395_0.png

图 20.1 - 添加“启动 Microsoft Edge”操作

  1. 在“启动新的 Microsoft Edge”屏幕上,点击“初始 URL”字段内部。输入一个网站网站地址,例如 https://www.yahoo.com 。

  2. 点击“保存”。

  3. 点击“运行”按钮。

到此为止,一切顺利!你现在已经启动了一个浏览器会话!关闭浏览器窗口并返回 Power Automate Desktop 应用。

接下来,我们将查看如何从网页上爬取(收集)数据。

爬取数据

爬取数据是一项用于广泛目的常见活动——特别是当无法通过 API 轻松获取结构化数据时。一些常见用途包括:

  • 市场和竞品研究,例如跟踪新产品、价格变化、促销活动和客户评论

  • 为机器学习收集数据

  • 跟踪突发新闻

  • 监控品牌声誉

  • 与多个平台和来源进行数据对比

  • 构建聚合工具或网站,如 Zillow、Kayak 或 Apartments.com

爬取单页

在本节中,我们将使用 Edge 浏览器和录制器进行一些基础爬取操作。

要开始爬取,我们需要一些示例数据。对于这个练习,我们将从本章之前列出的示例网站之一提取数据。我们要关注的页面包含电子商务商店中以表格格式排列的项目列表,如图 20.2 所示。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_396_0.png

完成页面后,我们将数据保存到 Excel 文件中。让我们开始吧!

  1. 启动一个新的 Microsoft Edge 浏览器会话并导航到 https://web-scraping.dev/products 。

  2. 返回 Power Automate Desktop,并打开上一个练习中的示例流。它应该有一个操作——启动新的 Microsoft Edge。

  3. 双击 启动新的 Microsoft Edge 操作。将初始 URL 更新为 https://web-scraping.dev/products 。

  4. 将“窗口状态”设置为“最大化”。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_397_0.png

图 20.3 – 配置浏览器会话设置

  1. 点击“保存”。

  2. 在“操作”窗格中,选择“从网页上提取数据”并将其拖到画布上。

  3. 接受默认值。

  4. 在任务栏上,选择你已打开的 Edge 浏览器会话。你会注意到“实时网页助手”应用程序打开了并获取了焦点。该应用程序将在你移动页面上移动鼠标时,通过在每个元素周围放置红色边框,帮助你识别你想要爬取的字段。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_398_0.png

图 20.4 – 使用网页助手突出显示内容

  1. 悬停在产品名称上,例如 Box of Chocolate Candy,然后右键点击它。指向“提取提取元素值”,然后选择下一个项目文本('Box of Chocolate...'),并点击它。该项目名称将用绿色虚线框突出显示。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_398_1.png

图 20.5 – 选择第一个元素

  1. 重复该过程,选择该电子商务网站上的项目标题 Dark Red Energy Potion。注意其他相同类型的示例元素是如何被选中并显示在提取预览下的。网页助手应用程序已检测到模式,并将处理该数据。

  2. 再次重复该过程,这次突出显示巧克力盒的价格。右键点击价格,指向“提取元素值”并选择文本('$24.99')。

  3. 再次悬停在项目标题(Box of Chocolate Candy)上,右键点击它,指向“提取元素值”并选择 Href('https://web-scra...')。注意实时网页助手中的所有值都已填充。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_399_0.png

图 20-6 - 添加项目的 URL

  1. 点击“完成”。

  2. 在“从网页上提取额外数据”操作中点击“保存”。

  3. 点击流中的“运行”。一个浏览器窗口应该会启动。片刻后,返回 Power Automate Desktop 应用的“变量”窗格。

  4. 在“变量”窗格中,你应该能在“流变量”下看到名为 DataFromWebPage 的新数据。双击它以查看返回到 Power Automate Desktop 的值。

恭喜!你已经爬取了你的第一个网页!

接下来,我们将学习一种处理多个页的方法。

使用默认分页器爬取多个页面

大多数网站会将内容分多个多个显示(通常每页有固定数量的项目)。这个过程被称为分页。在爬取数据时,你可能希望检索多个页的数据。你可以使用称为“分页器”的东西来实现此。

让我们看看它是如何工作的!

  1. 在 Power Automate Desktop 打开的状态下,双击“从网页上提取数据”操作。

  2. 返回你的网页。实时网页助手应该会重新打开。

  3. 在实时网页助手上,点击“高级设置”按钮。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_400_0.png

图 20.7 – 启动高级设置

  1. 将“使用”切换置到“开启”。

  2. 点击“确定”。

  3. 在网页上,点击“下一页”按钮(在这个示例页面上,它是一个 > 符号)。右键点击它并选择“将元素作为分页器”。参见图 20.8。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_400_1.png

图 20.8 – 设置分页器

  1. 点击“完成”返回流。

  2. 在“从网页上提取数据”操作中,选择“提取数据从”下拉菜单并选择“可用”。

  3. 将“物理点击下一页”切换置到“开启”。

  4. 点击“保存”。

  5. 将“关闭浏览器”操作拖到流的末尾。

  6. 点击“运行”。

观察流的执行。它应该启动浏览器。滚动到页面底部,点击分页器,直到没有更多。你可以通过查看变量窗格来验证这一点。

使用 LoopIndex 爬取多个页面

然而,如果你遇到不规则的网页,或者页面元素没有按预期工作(例如,它从未到达末尾,或者示例页面上有错误),仍然有方法!

这种方法稍微复杂,涉及一个循环。让我们来看看!

  1. 在打开你的爬取流时,选择“从网页上提取数据”操作并进行编辑。

  2. 切换浏览器窗口以加载网页助手应用。

  3. 点击高级设置并将“使用”切换置到“关闭”,以禁用 Power Automate 分页器。

  4. 点击“完成”返回 Power Automate 应用。

  5. 在“操作”窗格中,搜索“循环”操作。

  6. 将其拖到步骤 1(启动新的 Microsoft Edge)和步骤 2(从网页上提取数据)之间。

  7. 在“循环”操作页面上,将“从开始值”设置为 1,“结束值”设置为 1000000,然后将“增量值”设置为 1。参见图 20.10。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_402_0.png

图 20.10 - 添加循环操作

  1. 点击“保存”。

第 20 章

375

  1. 将“从网页提取数据”操作移动到“循环开始”和“循环结束”步骤之间,如图 20.11 所示。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_403_0.png

图 20.11 – 移动“从网页提取数据”操作

  1. 在“从网页提取数据”操作之后和“循环结束”操作之前,添加“如果网页包含”操作。

  2. 选择 UI 元素下拉列表。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_403_1.png

图 20.12 – 选择 UI 元素下拉列表

376 使用 RPA 实现网页自动化

  1. 点击“添加 UI 元素”以启动 UI 元素拾取器。

  2. 切换到带有示例页面的网页浏览器。

  3. 按住键盘上的 Control 键,然后选择 > 符号(表示下一页)。这将被添加到“如果网页包含”操作的 UI 元素部分,如图 20.13 所示。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_404_0.png

图 20.13 - 更新 UI 元素

  1. 点击铅笔图标编辑 UI 元素。

  2. 滚动到“锚点元素”并选择 Href 属性。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_405_0.png

图 20.14 – 选择 Href 元素

  1. 将 Href 运算符设置为“包含”(Contains)。

  2. 将 Href 值更新为 =。点击保存。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_406_0.png

图 20.15 – 更新 HREF 元素

  1. 点击保存以关闭“如果网页包含”操作。

  2. 在“如果网页包含”操作之后立即添加“点击网页上的链接”操作。

  3. 在“点击网页上的链接”操作中,在 UI 元素下选择锚点元素。

  4. 点击保存。

  5. 在“点击网页上的链接”操作之后立即插入“否则”(Else)操作。

  6. 在“否则”操作之后立即插入“退出循环”操作。见图 20.16。

  7. 将“启动 Excel”操作作为第 2 步,放在 Microsoft Edge 和“循环”操作之间。将“实例可见”设置为“关闭”(Off)。点击保存。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_407_1.png

图 20.17 – 配置“启动 Excel”操作

  1. 在“循环”操作内部,在“从网页提取数据”操作之前立即添加“从 Excel 中获取第一列/第一行”操作。接受变量 FirstColumn 和 FirstRow 的默认值。

  2. 在“从网页提取数据”之后,添加“写入 Excel”操作。

  3. 在“要写入的值”字段中,添加 %DataFromWebPage%。

  4. 在“列”字段中,输入 A(代表第一列)。

  5. 在“行”字段中,添加 %FirstRow% 变量。见图 20.18。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_408_0.png

图 20.18 - 配置“写入 Excel”工作表

  1. 将 Excel 操作拖到“关闭网页浏览器”操作之后。

  2. 在“关闭 Excel 之前”字段中,选择“另存为”(Save as)。

  3. 在“文档路径”中,输入工作站硬盘上的一个路径,例如 C:\Temp\Demo.xlsx。

  4. 点击保存。

  5. 最后,将“停止”操作拖到流程的最末端。

  6. 点击保存图标保存浏览器自动化流。

  7. 点击“运行”以执行流程。

流程运行后,检查你指定的保存文件位置的位置。用 Excel 打开文档并查看数据。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_409_0.png

接下来,我们将向流程中添加数据输入。

输入数据

当你的浏览器打开示例网站 https://web-scraping.dev 时,点击“登录”链接查看该页面的凭据:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_409_1.png

在此练习中,我们将把凭据存储在变量中,然后按照以下步骤登录网站:

  1. 在打开 Power Automate 流程的情况下,将“设置变量”操作拖到流程中第一步之前。

  2. 将变量名更新为 username,并将值更新为 user123。

  3. 点击保存。

  4. 在步骤 2 添加另一个“设置变量”操作,直接跟在第一个“设置变量”操作之后。

  5. 将变量名更新为 password,并将值更新为 password。

  6. 在“关闭网页浏览器”之前添加“转到网页”操作。

  7. 在“转到网页”操作上,将 URL 字段设置为 https://web-scraping.dev/login 。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_410_0.png

图 20.21 – 更新浏览器 URL

  1. 点击保存。

  2. 在“转到网页”和“关闭网页浏览器”操作之间,添加“在网页上填充文本字段”操作。

  3. 点击 UI 元素下拉列表,然后选择“添加 UI 元素”。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_411_0.png

图 20.22 - 添加 UI 元素

  1. 切换回带有登录页面的浏览器会话。

  2. 打开 UI 元素拾取器的情况下,按住 Control 键并左键点击用户名字段。

  3. 在“文本”字段中,添加 %username% 变量。

  4. 在“关闭网页浏览器”之前添加“在网页上填充文本字段”操作。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_412_0.png

图 20.23 - 添加 UI 元素

  1. 切换回浏览器会话。

  2. 在 UI 元素拾取器打开的情况下,按住 Control 键并左点击密码字段。

  3. 在“文本”字段中,添加 %password% 变量。

  4. 在“关闭网页浏览器”之前添加“在网页上填充文本字段”操作。

  5. 点击 UI 元素下拉列表并选择“添加 UI 元素”。

  6. 按住 Control 键并左点击“提交”按钮。保存。

点击“运行”启动流程。

最后,让我们查看截图的操作。

截图

在 Power Automate Desktop 中,你可以针对浏览器会话或整个工作站显示进行截图。按照以下步骤配置截图操作,以日期生成的名称保存文件。

  1. 在打开 Power Automate 流程的情况下,将“获取当前日期和时间”操作拖到“点击网页上的按钮”之后。点击保存。

  2. 从操作面板中,将“日期转换为文本”操作拖到“获取当前日期和时间”和“关闭网页浏览器”之间。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_413_0.png

图 20.24 – 配置日期转换为文本操作

  1. 在“要转换日期”字段中,添加 %CurrentDateTime% 变量。

  2. 在“使用格式”字段中,选择“自定义”。

  3. 在“自定义格式”区域输入 yyyyMMddHHmm,配置四位年份、两位月份、两位小时和分钟。点击保存。

  4. 在“日期转换为文本”和“关闭网页浏览器”之间添加“设置变量”操作。

  5. 将变量更新为 filename。

  6. 将值更新为 %FormattedDateTime_%screenshot.png 并点击保存。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_414_0.png

图 20.25 – 更新“设置变量”操作

  1. 从操作面板中,将“工作站”部分的“截图”操作拖到“设置变量”和“关闭网页浏览器”所在的画布上。

  2. 在“保存截图到”下拉列表中,选择“文件”。

  3. 在“图像文件”字段中,添加 C:\temp\%filename% 变量。

  4. 将“图像格式”下拉列表设置为 PNG。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_415_0.png

  1. 点击保存。

流程运行后,你应该在指定的文件夹中同时拥有一个 Excel 文档和一个截图。

获取本书的 PDF 版本及专属额外内容

扫描二维码(或访问 packptub.com/unlock)。按名称搜索此书,确认版本,然后按照页面上的步骤操作。

注意:请妥善保存发票。直接从 Packt 购买不需要发票。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_416_0.png

介绍 AI 模型和生成式 AI

在本书的示例中,你已经使用条件来确定执行流的哪个分支。你使用过如下条件:

  • 购买请求金额是否大于 $1,000 美?

  • 用户的 X/Twitter 粉丝数是否多于或少 100 人?

  • 审批响应是否等于已批准(Approved)?

当你处理硬性数据(数字、布尔值或精确字符串匹配)时,这类评估非常有用。但当你尝试根据不那么直观的数据做出决策时,会发生什么呢?

这就是 AI 模型变得有用的地方。AI 模型利用人工智能对各种不同的内容和数据类型进行判断。例如,人类阅读名片并确定哪个值是个人姓名、哪个值是个人职位非常容易,无论它们位于名片的什么位置。然而,对于计算机来说,完成这项任务要困难得多。随着名片设计的不断变化,数据字段会移动,传统的自动化引擎更难识别和辨别它们。AI 模型帮助为数据带来上下文感知,使自动化执行得更像人类。

介绍 AI 模型和生成式 AI

Microsoft Power Automate 包含了多个预构建的 AI 模型,还具有训练和自定义多个额外模型的能力。预构建模型聚焦于已经通过特定数据集预训练以执行特定类型任务的 AI,而自定义模型则需要更多的配置以及使用你自己的数据集进行训练。Power Automate 允许你使用最新的生成式 AI 技术(如 ChatGPT、Azure OpenAI 和 Copilot)来增加创意,并帮助解释细微的内容。

在本章中,我们将重点学习 Power Platform 中 AI 的广阔能力,并准备你的环境以开始使用 AI。我们将涵盖的主题如下:

  • 学习 AI 模型

  • 学习生成式 AI

  • 探索用于 Power Platform 的 Copilot

  • 技术要求

让我们开始吧!

学习 AI 模型

Power Platform 中提供了许多类型的模型,涵盖了广泛的数据类型和场景。你可以使用模型来分析文本并扫描文档、图像、电子邮件或你可以提供给服务的任何其他类型的输入。

表 21.1 中的数据描述了模型设计工作的内容类型、模型名称、模型的构建类型(是预构建模型还是自定义模型)以及示例的业务用例。

| 模型名称 | 数据类型 | 构建类型 | 业务案例 |

|---|---|---|---|

| 名片读取器 | 文档 | 预构建 | 名片扫描 |

| 表单处理 | 文档 | 自定义 | 职位申请处理 |

| 文本识别 | 文档 | 预构建 | 识别犯罪现场照片中的文本 |

| 收据处理 | 文档 | 预构建 | 自动生成报销单 |

| 类别分类 | 文本 | 预构建或自定义 | 焦点小组反馈分类 |

| 实体提取 | 文本 | 预构建或自定义 | 从产品或服务评论中提取见解 |

| 模型名称 | 数据类型 | 构建类型 | 业务案例 |

|---|---|---|---|

| 关键短提取 | 文本 | 预构建 | 获取提及品牌的新闻或社交媒体帖的警报 |

| 语言检测 | 文本 | 预构建 | 识别提交文本的语言 |

| 情感分析 | 文本 | 预构建 | 分类正面和负面的客户反馈 |

| 文本翻译 | 文本 | 预构建 | 将电子邮件支持请求翻译为支持工程师的语言 |

| 预测 | 结构化数据 | 自定义 | 欺诈交易告警 |

| 图像分类 | 图像 | 自定义 | 识别客户上传图像中的不当内容 |

| 目标检测 | 图像 | 自定义 | 通过拍照快速识别车间地面机器的类型 |

表 21.1 – AI 模型类型

每个模型都有自己的优势。根据业务目标,你可能甚至需要使用多个 AI 模型来完成端到端的处理。

学习生成式 AI 模型

Power Automate 对生成式 AI 的集成——特别是通过 Copilot 和基于生成式预训练转换器 (GPT) 的模型——改变了自动化的设计、部署和维护方式。

如果你使用 ChatGPT 等生成式 AI 工具,你已经熟悉该技术的一些功能。就像 ChatGPT 一样,Power Platform 中的生成式 AI 操作是由提示(prompts)驱动的——即用户可以向模型调用创意的自然语言问题或指令。

生成式 AI 还增强了现有流的智能性。通过 GPT 集成,Power Automate 可以分析上下文数据、总结长内容、生成适应响应,甚至自动编写自然语言电子邮件或报告。例如,流可以从客户支持系统中提取信息,总结工单活动,并起草每周状态报告供评审。同样,AI 驱动的情感分析、文本分类和数据提取允许做出更明的决策——根据语气、紧急性或检测到的意图优先处理任务、路由请求并升级问题。这实现了从纯静态、基于规则的自动化向自适应、上下文感知自动化的转变。

你可以将 GPT 驱动的操作直接嵌入到流中,引入内容生成、翻译或总结等功能。结果是结合了传统的确定性过程自动化与高级推理及创意的工具——这允许组织超越重复性任务自动化,进入业务流程的智能编排。

探索用于 Power Platform 的 Microsoft Copilot

除了使用生成式 AI 为流生成内容外,你还可以使用 Microsoft Copilot AI 平台帮助加速自动化的开发。

与其手动配置每个条件、操作和连接器,Copilot 会智能地生成一个运行的流。例如,你可以输入“当发票共享邮箱箱收到来自客户的新邮件时,将附件保存到发票 SharePoint 站点并向 Teams 上的应付账组发送消息”,Power Automate 将逐步构建该自动化流程。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_420_0.png

图 21.1 – 通过 Copilot 的“描述它 (Describe it)”功能创建流

几刻之后,Copilot 将返回一个建议,如图 21.2 所示:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_421_0.png

该过程可能会生成几个示例。如果你发现了一个想要开始的示例,可以选择“保留并继续”,你将被带到带有流的画布。

你只需要更新操作以指向正确的邮箱箱、站点或组。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_421_1.png

Copilot 甚至可以根据组织模式或过去的使用情况推荐优化、识别缺失的触发器并建议额外的集成。这种对话方法允许所有技术水平的用户在几分钟而不是几小时内实现复杂工作流的自动化。例如,你可以向 Copilot 实际关于流的问题。

在图 21.14 所示的示例中,我们要求 Copilot 提供动态重命名附件的方法,将发送者的电子邮件地址作为文件名:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_422_0.png

图 21.14 – 让 Copilot 提出建议

Power Automate 的生成式 AI 能力扩展到了流程理解和精炼。通过流程挖掘和任务挖掘的帮助,AI 可以分析工作在组织内部实际发生的方式——识别出用于自动化的重复性手动步骤。Copilot 通过生成建议的流流来协助简化这些流程,有效地将业务活动转化为可操作的蓝图。这不仅缩短了发现自动化机会所需的时间,还确保自动化反映了真实的用户行为,从而提高了效率和采用率。

接下来,我们将重点关注使用基于 AI 的解决方案的技术要求。

技术要求

AI 模型(通过 Power Platform 中的 AI Builder 管理)需要访问 Microsoft Dataverse。如果你在本书早之前的章节中完成过需要访问 Dataverse 的示例,那么你应该已经满足了这些要求。如果你尚未创建 Dataverse 数据库,可以使用以下流程:

  1. 导航到 Power Automate 制作者网页门户 (https://make.powerautomate.com)。

  2. 选择 AI hub(AI 中枢)。如果你的环境已过配置,你将看到图 21.5 所示的屏幕:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_423_0.png

图 21.5:启动 AI Builder

  1. 然而,如果 Dataverse 尚未配置,你将看到一个与图 21.6 所示类似的屏幕:

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_424_0.png

图 21.6 – 创建数据库

  1. 如果显示此屏幕,点击 Create a database(创建数据库)。

  2. 在提示时,选择一种货币和语言。

  3. 点击 Create my database(创建我的数据库):

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_424_1.png

图 21.7 – 创建 Dataverse 数据库

  1. 使用浏览器的刷新按钮更新 AI hub 落地页。

  2. 在屏幕顶部,点击 Start free trial(开始免费试用):

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_425_0.png

图 21.8 – AI Builder 试用

此试用将激活 AI Builder 并让你访问模型。一旦试用成功启动,你就可以开始使用 AI 模型。

除了 Dataverse 功能外,你还需要 AI Builder 额容量。AI Builder 容量是单独许可的,尽管高级版 Power Platform 计划中包含了一些容量。如果你已经订阅了试用许可证(例如带有 Attended RPA 计划的 Power Automate 每用户计划),你应该有足够的容量来开始学习 AI 模型。

有关许可和容量的更多信息,请参阅 https://learn.microsoft.com/en-us/ai-builder/administer-licensing 。

总结

在本章中,你从内容操作和处理的角度,以及在帮助创建流和其他自动化任务的方面,学习了 Power Platform 内置的 AI 能力。你使用 Copilot 建议了新的自动化,并通过提示(prompting)对其进行了精炼。

接下来,我们将通过创建一个使用情感分析的流来深入研究 AI 模型!

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_426_0.png

创建情感分析流

到目前为止,我们已经了解了 Power Platform 中的 AI(特别是微软的 Copilot 和 AI Builder)如何帮助我们创建和修改工具(如流和应用)。虽然它们可能很有帮助,但通常情况下,要让这类通用助手执行非常特定的以步骤为导向的任务,需要付出大量的额外努力。

正如第 21 章 介绍 AI 模型和生成式 AI 中提到的,Microsoft Power Platform 允许你利用人工智能对广泛的内容和数据类型进行判断,帮助以机器速度模拟人类评估。

例如,人类可以一眼看名片并识别出人的姓名和职位,无论使用何种字体、它们在名片上的位置、颜色或文本字段的方向如何。然而,对于传统的计算机逻辑来说,执行这项任务要困难得多。随着名片设计的演变,数据字段不断演变……(注:此处原文存在大量重复文本,已按要求处理)。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_431_0.png

图 22.3 – 查看共享邮箱箱

在添加共享邮箱箱飞出窗中,输入名称并根据需要调整电子邮件地址。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_431_1.png

图 22.4 – 创建共享邮箱箱

点击向你的共享邮箱箱添加成员。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/workflow-automation-with-microsoft-power-automate/img/bfc58bb450784476738fab1c5bfe829d_431_2.png

图 22.5 – 查看新创建的邮箱箱

  1. 在共享成员飞出窗中,点击添加成员。您需要从组织中选择至少一个拥有邮箱箱许可证的用户(访问共享邮箱箱的必要条件),然后点击添加。

  2. 关闭飞出窗。

在使用 Power Automate 时,您将需要使用第 5 步中授予权限的账户凭据。

接下来,您将创建一个团队。

posted @ 2026-09-25 20:42  绝不原创的飞龙  阅读(5)  评论(0)    收藏  举报