Power Automate优化:将明日到期Planner任务汇总发送至Teams频道
Power Automate流程修改方案
一、实现所有经办人姓名拼接
在「筛选明日到期任务」步骤后,添加两个初始化变量操作:
- 变量1:类型
String,名称任务汇总文本,默认值留空; - 变量2:类型
String,名称当前任务经办人,默认值留空。
- 变量1:类型
新增
Apply to each操作,选择「筛选明日到期任务」的输出作为循环对象(即每一条明日到期的任务)。在这个循环内部:
a. 处理经办人拼接:- 再新增一个嵌套的
Apply to each,选择当前任务的Assignments字段(所有经办人集合)作为循环对象。 - 在嵌套循环里添加
Get user profile (V2),输入参数User (UPN or ID)选当前循环项的Assignment User ID。 - 添加
Append to string variable操作,目标变量选当前任务经办人,输入内容用条件判断:
自动给非第一个经办人添加逗号分隔。if(empty(variables('当前任务经办人')), body('Get_user_profile_(V2)')?['displayName'], concat(', ', body('Get_user_profile_(V2)')?['displayName']))
b. 获取创建人姓名:保留原有的
Get user profile (V2)操作,输入当前任务的Created By User ID,建议将该操作重命名为Get_user_profile_(V2)_创建人,避免和经办人操作混淆。c. 追加当前任务信息到汇总文本:
添加Append to string variable操作,目标变量选任务汇总文本,输入内容示例:- 任务标题:@{items('Apply_to_each')?['title']} 创建人:@{body('Get_user_profile_(V2)_创建人')?['displayName']} 经办人:@{variables('当前任务经办人')} 截止日期:@{formatDateTime(items('Apply_to_each')?['dueDateTime'], 'yyyy-MM-dd HH:mm')}d. 重置经办人变量:添加
Set variable操作,把当前任务经办人设为空字符串,防止下一个任务的经办人串连。- 再新增一个嵌套的
二、实现单条Teams消息汇总发送
- 删除原来循环内部的「发送数据至MS Teams频道」操作。
- 在外部的
Apply to each循环结束后,新增Post message in a chat or channel操作。 - 在消息内容里引用
任务汇总文本变量,可添加标题优化格式:📅 明日到期任务汇总: @{variables('任务汇总文本')} - 配置好目标Teams团队和频道,完成发送。
可选优化
- 添加条件判断:在循环结束后,先检查「筛选明日到期任务」的输出是否为空。如果为空,发送「明日无到期任务」的消息,避免发送空内容。
- 用
Select+Join简化经办人处理:在任务循环内,用Select操作提取所有经办人的姓名(需先对每个经办人ID调用Get user profile),再用Join操作把结果用,拼接,替代嵌套循环,流程更简洁。
内容的提问来源于stack exchange,提问作者cycero
相关产品推荐
相关产品推荐

