MS Automate流程问题:批量创建SharePoint项及邮件多文件信息展示
Power Automate流程问题解决方案
问题1:Execute Until循环仅创建1个SharePoint列表项
原因
Execute Until的循环条件设置错误。原条件int 小于等于指定值(如指定值为5)会导致循环仅执行一次:初始int=5,执行完一次循环体(创建标题5的项,int减为4)后,检查条件4<=5为真,循环直接停止。
修改步骤
- 保持
int变量初始值为5不变 - 修改Execute Until的循环条件为
@variables('int') < 1(或@variables('int') <= 0) - 循环体内逻辑不变:创建标题为当前
int值的列表项,然后执行递减int变量的操作
该设置会让循环执行5次(int从5依次递减到0,当int=0时满足条件停止),自动创建5个列表项。
问题2:邮件仅显示单个文件信息
原因
- 使用单个
link1变量存储附件链接,每次循环会覆盖之前的值,最终仅保留最后一次的链接 - 邮件HTML中硬编码了5行表格内容,但所有行都调用同一个
Get Item的输出,未收集所有5个项的信息
解决步骤
步骤1:调整变量设置
删除原link1变量,新增数组类型变量(例如命名为fileTableRows),用于存储每个文件对应的HTML表格行。
步骤2:修改循环内流程逻辑
在Execute Until循环内部,完成Get Item、Get Attachment、Apply to Each操作后,添加**「Append to array variable」**操作:
- 选择数组变量
fileTableRows - 在「Value」中填入当前文件对应的HTML行代码(修正原代码的语法错误):
<tr> <td>@{outputs('Get_Item')?['body/OData__x5de5__x5177_/Value']}</td> <td><span style="font-size:11px"><a href="@{outputs('Get_Attachment')?['body/AbsoluteUri']}">@{outputs('Get_Item')?['body/OData__x540d__x79f0_']}</a></span></td> <td>@{outputs('Get_Item')?['body/OData__x63cf__x8ff0_']}</td> </tr>
步骤3:修改邮件HTML内容
将原邮件中硬编码的5行<tr>...</tr>替换为数组变量的拼接结果,同时删除多余的<iframe>标签:
<table id="customers"> <tbody> <tr> <th>TYPE</th> <th>NAME</th> <th>DESCRIPTION</th> </tr> @{join(variables('fileTableRows'), '')} </tbody> </table>
内容的提问来源于stack exchange,提问作者Colin
相关产品推荐
相关产品推荐

