使用 Power Automate 筛选和复制数据

本教程介绍如何创建一个云端流,用于监视源中新建或更改的项,然后将这些更改复制到目标。 如果用户在一个位置输入数据,但团队需要在另一个位置或以另一种格式获得该数据,则可以创建此类云端流。

尽管本教程将数据从 Microsoft SharePoint 列表(源)复制到 Azure SQL 数据库表(目标),但在 Power Automate 支持的超过 900 种连接器之间均可以复制数据。

小费

关于通过 Power Automate 使用 SharePoint 的详细信息,请访问 SharePoint 文档

先决条件

  • 对数据源和目标的访问权限。 本教程不包括创建源和目标的步骤。

  • Power Automate 的访问权限。

  • 大致了解如何存储数据。

  • 熟悉创建流的基础知识。 可以查看如何添加操作、触发器条件。 以下步骤假设用户了解如何执行这些操作。

小费

源和目标中的每个列名称不需要匹配。 但是,在插入或更新项目时,您必须提供所有必需列的数据。 Power Automate 标识了必填字段。

步骤的简要概述

如果熟悉 Power Automate,请使用这些简要步骤将数据从一个数据源复制到另一个数据源。

重要提示

在目标中所做的更改不会复制到源,因为不支持双向同步。 如果尝试设置双向同步,会创建一个无限循环,在源和目标之间无休止地发送更改。

  1. 标识要监视的源和要将更改的数据复制到的目标。 确认拥有两者的访问权限。

  2. 标识至少一个可唯一标识源和目标中的项的列。 在以下示例中,我们使用标题列,但也可以使用任何想要的列。

  3. 设置用于监视源中的更改的触发器。

  4. 搜索目标以确定是否存在已更改的项。

  5. 按如下方式使用条件

    • 如果目标中不存在新建或更改的项,则创建它。
    • 如果目标中存在新建或更改的项,则更新它。
  6. 触发流,然后确认新建或更改的项正在从源复制到目标。

如果之前未创建与 SharePoint 或 Azure SQL 数据库的连接,请在收到登录提示时按照说明进行操作。

下面是创建该流的详细步骤。

监视源中的更改

  1. 登录到 Power Automate

  2. 依次选择我的流 > 从空白创建

  3. 搜索 SharePoint > 从触发器列表中选择 SharePoint - 当创建或修改项时触发器

  4. 输入站点地址,然后选择当创建或修改项时卡上的列表名称

  5. 为流监视新建或更新项的 SharePoint 列表提供站点地址列表名称

搜索目标中新建或更改的项

使用 SQL Server - 获取行操作搜索目标中新建或更改的项。

  1. 选择新建步骤>添加操作

  2. 搜索获取行,选择 SQL Server - 获取行,然后从表名称列表中选择要监视的表。

  3. 选择显示高级选项

  4. 筛选器查询框中,输入 Title eq ',从动态内容列表中选择标题令牌,然后输入 '

    上一步假设要将源和目标中的行标题匹配。

    获取行卡片的外观现在应如以下屏幕截图所示:

    尝试从目标数据库中获取项。

检查是否找到了新建或更改的项

我们使用条件操作检查是否找到新的或更改的项。

  1. 选择新步骤>添加条件打开条件卡。

  2. 在“条件”卡上:

    1. 选中左侧的框。

      此时会打开从此流中使用的应用和连接器添加动态内容列表。

    2. 获取行类别中选择

    小费

    确认已从获取行类别中选择。 不要从当创建或修改项时类别中选择

  3. 从中央框中的列表中选择等于

  4. 在右侧的框中输入 0(零)。

    条件卡现在类似于下图:

    显示条件卡片的屏幕截图。

  5. 选择在高级模式中进行编辑

    高级模式打开时,您可在框中看到 @equals(body('Get_rows')?['value'], 0) 表达式。 通过围绕 body('Get_items')?['value'] 函数添加 length() 来编辑此表达式。 整个表达式现在显示如下:@equals(length(body('Get_rows')?['value']), 0)

    条件卡现在类似于下图:

    显示更新的条件卡的屏幕截图。

    小费

    添加 length() 函数可使流检查列表,并确定它是否包含任何项。

流从目标中获取项时,有两种可能的结果。

结果 下一步
项存在 更新该项
项不存在 新建一个项目

备注

下面显示的插入行更新行卡的图像可能与实际外观有所不同,因为这些卡显示在流中使用的 Azure SQL 数据库表中的列名称。

在目标中创建该项

如果目标中不存在该项,则使用 SQL Server - 插入行操作创建它。

条件如果是分支上:

  1. 选择添加操作,搜索插入行,然后选择 SQL Server - 插入行

    将打开插入行卡。

  2. 表名称列表中,选择将插入新建项的表。

    插入行卡将展开并显示选定表中的所有列。 带有星号 (*) 的字段是必填字段,必须填充才能使行生效。

  3. 选择要填充的每个列,并输入数据。

    可以手动输入数据,从动态内容中选择一个或多个令牌,或者在列中输入文本和令牌的任何组合。

    插入行卡片现在类似于以下屏幕截图:

    新状态的条件卡的屏幕截图。

在目标中更新项

如果目标中存在该项,则更新其更改。

  1. SQL Server - 更新行操作添加到条件如果否分支。

  2. 按照此文档的创建项目部分中的步骤填充表中的列。

    目标项的屏幕截图。

  3. 在页面顶部,在流名称框中输入流名称,然后选择创建流来保存它。

现在,每当 SharePoint 列表(源)中的项发生更改时,流都会触发,并在 Azure SQL 数据库(目标)中插入新项或更新现有项。

备注

当从源中删除项时,不会触发流。 如果这是一个重要方案,请考虑添加一个单独的列,用于指示何时不再需要项。

使用数据操作