计划云流(Scheduled Cloud Flow):如何给SharePoint列表人员列用户发邮件?
问题描述
- SharePoint列表包含以下列:
- Step:整数类型,起始值为1
- Document:来自SharePoint库的查找列(Lookup Column)
- Assigned User:允许多选的人员/组列(Person/Group Column)
列表示例:
| Step | Document | Assigned User |
|---|---|---|
| 1 | Doc1 | Smith,John、Smith, Mary |
| 2 | Doc1 | Smith, Anne |
需求:在**定时云流(Scheduled Cloud Flow)**中,给列表里Document为Doc1且Step为1的所有指定用户(即Smith,John和Smith, Mary)发送邮件。
遇到的问题:
使用「Get Items」动作获取列表数据时,最初设置的Filter Query为Document eq 'Doc1' and Step eq 1,后续步骤只要选择「Get Items」输出中的「Assigned User」,就会被自动放入「Apply to each」循环且无法移出,流程运行后未成功发送邮件。
解决方法
修正「Get Items」的Filter Query
由于Document是查找列,不能直接用Document eq 'Doc1',正确的筛选语法为:Document/Title eq 'Doc1' and Step eq 1(注:此处Step值需匹配需求中的目标步骤,示例需求为Step=1)
处理多选人员的邮件发送
「Assigned User」是允许多选的人员列,需通过「Apply to each」循环遍历每个用户:- 在「Apply to each」中选择「Get Items」输出里的「Assigned User」集合
- 在循环内添加「发送邮件」动作,收件人选择当前循环项的「邮件」字段(即
items('Apply_to_each')?['Email']) - 若需一次性给所有用户发邮件,可先通过「Compose」动作将所有用户的邮箱拼接为逗号分隔的字符串,再在「发送邮件」中使用该字符串作为收件人:
(需确保「Get Items」仅返回一条匹配的列表项,否则需调整拼接逻辑)join(body('Get_Items')?['value']?[0]?['Assigned User'], ',')
内容的提问来源于stack exchange,提问作者faujong
相关产品推荐
相关产品推荐

