使用 Power Automate 筛选和复制数据
本教程介绍如何创建一个云端流,用于监视源中新建或更改的项,然后将这些更改复制到目标。 如果用户在一个位置输入数据,但团队需要在另一个位置或以另一种格式获得该数据,则可以创建此类云端流。
尽管本教程将数据从 Microsoft SharePoint 列表(源)复制到 Azure SQL 数据库表(目标),但在 Power Automate 支持的超过 900 种连接器之间均可以复制数据。
提示
关于通过 Power Automate 使用 SharePoint 的详细信息,请访问 SharePoint 文档。
对数据源和目标的访问权限。 本教程不包括创建源和目标的步骤。
对 Power Automate 的访问权限。
大致了解如何存储数据。
提示
源和目标中的每个列名称不需要匹配。 但是,在插入或更新项目时,您必须提供所有必需列的数据。 Power Automate 标识了必填字段。
如果熟悉 Power Automate,请使用这些简要步骤将数据从一个数据源复制到另一个数据源。
重要
在目标中所做的更改不会复制到源,因为不支持双向同步。 如果尝试设置双向同步,会创建一个无限循环,在源和目标之间无休止地发送更改。
标识要监视的源和要将更改的数据复制到的目标。 确认拥有两者的访问权限。
标识至少一个可唯一标识源和目标中的项的列。 在以下示例中,我们使用标题列,但也可以使用任何想要的列。
设置用于监视源中的更改的触发器。
搜索目标以确定是否存在已更改的项。
按如下方式使用条件:
- 如果目标中不存在新建或更改的项,则创建它。
- 如果目标中存在新建或更改的项,则更新它。
触发流,然后确认新建或更改的项正在从源复制到目标。
如果之前未创建与 SharePoint 或 Azure SQL 数据库的连接,请在收到登录提示时按照说明进行操作。
下面是创建该流的详细步骤。
登录到 Power Automate。
依次选择我的流 > 从空白创建。
搜索 SharePoint > 从触发器列表中选择 SharePoint - 当创建或修改项时触发器。
输入站点地址,然后选择当创建或修改项时卡上的列表名称。
为流监视新建或更新项的 SharePoint 列表提供站点地址和列表名称。
使用 SQL Server - 获取行操作搜索目标中新建或更改的项。
选择新建步骤>添加操作。
搜索获取行,选择 SQL Server - 获取行,然后从表名称列表中选择要监视的表。
选择显示高级选项。
在筛选器查询框中,输入 Title eq ',从动态内容列表中选择标题令牌,然后输入 '。
上一步假设要将源和目标中的行标题匹配。
获取行卡片的外观现在应如以下屏幕截图所示:
我们使用条件操作检查是否找到新的或更改的项。
选择新步骤>添加条件打开条件卡。
在“条件”卡上:
选中左侧的框。
此时会打开从此流中使用的应用和连接器添加动态内容列表。
从获取行类别中选择值。
提示
确认已从获取行类别中选择值。 不要从当创建或修改项时类别中选择值。
从中央框中的列表中选择等于。
在右侧的框中输入 0(零)。
条件卡现在类似于下图:
选择在高级模式中进行编辑。
高级模式打开时,您可在框中看到 @equals(body('Get_rows')?['value'], 0) 表达式。 通过围绕 body('Get_items')?['value'] 函数添加 length() 来编辑此表达式。 整个表达式现在显示如下:@equals(length(body('Get_rows')?['value']), 0)
条件卡现在类似于下图:
提示
添加 length() 函数可使流检查值列表,并确定它是否包含任何项。
流从目标中获取项时,有两种可能的结果。
备注
下面显示的插入行和更新行卡的图像可能与实际外观有所不同,因为这些卡显示在流中使用的 Azure SQL 数据库表中的列名称。
如果目标中不存在该项,则使用 SQL Server - 插入行操作创建它。
在条件的如果是分支上:
选择添加操作,搜索插入行,然后选择 SQL Server - 插入行。
将打开插入行卡。
从表名称列表中,选择将插入新建项的表。
插入行卡将展开并显示选定表中的所有列。 带有星号 (*) 的字段是必填字段,必须填充才能使行生效。
选择要填充的每个列,并输入数据。
可以手动输入数据,从动态内容中选择一个或多个令牌,或者在列中输入文本和令牌的任何组合。
插入行卡片现在类似于以下屏幕截图:
如果目标中存在该项,则更新其更改。
将 SQL Server - 更新行操作添加到条件的如果否分支。
按照此文档的创建项目部分中的步骤填充表中的列。
在页面顶部,在流名称框中输入流名称,然后选择创建流来保存它。
现在,每当 SharePoint 列表(源)中的项发生更改时,流都会触发,并在 Azure SQL 数据库(目标)中插入新项或更新现有项。
备注
当从源中删除项时,不会触发流。 如果这是一个重要方案,请考虑添加一个单独的列,用于指示何时不再需要项。