本次的工作流案例是实现将Sharepoint列表中的数据复制到任意站点的列表,要实现的目标是:当列表A中创建或修改数据时,工作流会获取该数据并复制到列表B中,同样列表A中的数据发生修改时,列表B中存在的数据同步发生修改。
下面以两个列表进行举例,列表A和B的相关数据字段示例如下:
列表A:代表项目网站的问题/风险列表,ID字段代表该列表的默认ID(自带),Total_ID字段在此处忽略,在该案例中并未用到。
列表B:代表任意站点的总问题/风险列表,Total_ID字段是该列表的默认ID(自带)
列表A和B中有自定义的Proj_RiskID数据列,该列设置为数字类型且是唯一值,该字段将作为列表A和B同一数据行的唯一标识ID。
列表字段准备好之后便可开始创建工作流了,此处我们新建自动化工作流,进入PowerAutomate的工作页面,点击左侧的创建,之后选择创建“自动化云端流”,该流指由指定的事件触发,对应在流中会有触发器。
接下来输入自定义的流名称以及要选择的触发器,如下图所示,该案例中用到的是SharePoint连接器中的“创建或修改项时“的触发器。当然在该步骤可以选择直接跳过,在编辑流的过程中也可定义流的名称以及触发器,需要注意的是:自动化云端流在流开始时必须选择触发器,之后才能进行后续操作。
“创建或修改项时“触发器中,有”站点地址“和”列表名称“两个必填项,”站点地址“选择对应项目网站的地址,即列表A所在的地址,在输入地址时,如果下拉选项中不存在该地址,则可以点击”输入自定义值“,将该地址直接复制到输入框中即可,这里的地址如果存在中文会存在自动编码,是正常情况;如果下拉列表中存在该地址,直接选择就好,通常地址显示格式为”网站名称-网站地址(中文编码)“,”列表名称“中输入列表A的名称,如果是中文名称且下拉列表中不存在该名称,直接输入该列表的名称并点击下方的”使用‘风险’作为自定义值“,高级选项中的”按视图限制列“跳过即可。
接下来点击“+新步骤“,搜索SharePoint,在下方的操作中找到“获取多个项”操作。
“获取多个项”操作中,有“站点地址”、“列表名称“两个必填项,”站点地址“字段选择列表B所在的站点地址,”列表名称“字段选择对应列表B的名称即可。高级选项中还存在一个筛选查询字段,该字段需要输入类似如下格式的内容:筛选字段名称 eq’唯一标识字段名称’。这里的唯一标识字段名称是根据上一步骤中修改数据中获得的字段,需要在右侧的动态内容框中选择上一步骤中得到的ID内容,下图中是在该案例中该步骤前设置了该ID的变量,方便后续其他操作,这里先不讲解,在完善该流时进行详细讲解,因此在“筛选查询”字段选择上一步骤“创建或修改项时”下的“Proj_RiskID”即可,如下图所示。
完成后可保存该工作流,保存完成后点击右上方的“测试”,第一次执行流时选择“手动”,然后点击“测试”,之后便可在列表A中尝试新建数据,下图是工作流的执行情况以及网站的相关信息,点击”单击下载“可以分别查看各个操作中获取的数据。
完成该步骤后继续添加“新步骤“,选择”控件“连接器下的”条件“。
”条件“控件中点击左侧输入框,在右侧弹出的对话框中点击”表达式“,在公式输入框中复制以下公式” equals(length(body('获取多个项')?['value']),0) ”,该公式也可以直接用下方的函数中拼接,比如equals();之后中间的输入框中默认选择“等于”,右侧框中输入“true”,该条件是用来判断上一步骤”获取多个项“操作中获取到列表B的数据,不在第一步骤获取到的列表A的数据中,如果不存在则执行”如果是“,存在则执行”如果不是“。
接下来在”如果是“中添加SharePint连接器下的”创建项“操作。
在”创建项“操作中,存在”站点地址“、”列表名称“、”标题“三个必填选项,”站点地址“输入列表B所在地址,”列表名称“选择列表B的名称,下方的其他三个字段是咋输入” 站点地址“、”列表名称“两个字段后自动增加出来的,列表B中存在多少数据列,便显示多少字段信息,其中“标题”是必填项,右侧动态内容中选择“创建或修改项时”下的对应内容,下方其他字段类似。
完成该步骤后再次点击”保存“并测试,测试时可以选择”自动“,“自动”选项下选择先前执行成功的流记录,点击“测试”,点击执行成功的“创建项”操作,可以看到执行成功的且创建的数据信息,同样可以在列表B中看到该条数据,如果未出现则刷新一下。
以上便完成了两个列表的数据创建同步,之后在添加列表数据间同步修改的操作,在”如果不是“中添加“更新项”操作,同样搜索SharePoint连接器下的“更新项”操作。
在“更新项2“的操作中,有”站点地址“、”列表名称“、”ID“三个必填选项,站点地址同样选择列表B所在的地址,”列表名称“选择列表B的名称,”ID“选择”获取多个项“下的动态内容ID值即可,即列表B的默认ID,此时会自动将”更新项“操作置于”应用到每一个“操作中,该操作相当于循环,即当有多条数据发生修改时,会循环更新这些数据,输入站点地址后会自动显示其他字段信息,依次分别选择”创建或修改项时“的对应动态内容即可。
完成后点击”保存“并执行手动测试,之后对列表A中存在的数据进行修改,修改完成后会发现该流执行右侧分支”如果不是“操作,执行成功后在该操作中便可查看修改后获取到的相关数据,同样在列表B中也会对应显示修改后的数据,执行成功后如下图。
完整的工作流示意图如下:
至此,该工作流便可基本满足两个列表之间的数据同步了,当然该流还存在一定的改进空间,比如之前提到的数据唯一标识ID,当我们在更改列表A的地址为其他地址时,需要对”获取多个项“以及”创建项“操作中的Proj_RiskID字段进行多次修改,因为该字段只能选择”创建或修改项时“触发器下选择该动态内容ID,所以在该触发器后设置变量,将”创建或修改项时“触发器下的Proj_RiskID赋值给该变量,替换以上两处操作中使用到Proj_RiskID字段的动态内容,便解决了修改时的繁琐操作。添加并设置变量需要在“内置”中分别添加“初始化变量”以及“设置变量”等操作。
变量的操作按照下图设置即可。
完成后,该工作流便可直接使用了。文章来源:https://www.toymoban.com/news/detail-500558.html
注意:该工作流的弊端在于只能同步两个列表间的数据同步,如果需要将多个列表的数据同步到一个列表中,需要多次更改触发器中的地址,或者可以复制多个流,分别在触发器中输入列表地址,当然工作流的条数也有上限,详细信息参考微软官方信息。文章来源地址https://www.toymoban.com/news/detail-500558.html
到了这里,关于PowerAutomate工作流实现将Sharepoint列表中的数据复制到任意站点的某个列表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!