Power Automate 不断添加“应用到每个”,并将我的“发送电子邮件”操作嵌套到下面,以至于我只收到错误

问题描述 投票:0回答:2

我正在创建一个流程,该流程将根据我在各个变量中设置的时间范围向用户发送通知 - 但是,为了测试这一点,我必须运行整个流程。问题就出在这里。

该流程从 SharePoint Online 列表中提取数据,用户从两个不同的列中使用,并用作通知消息的电子邮件收件人。然而,每次我添加动态内容时,P.A.创建一个新的“For Each”循环,并将我的“发送电子邮件”操作嵌套在该操作中。

见下图:

这是完整的流程 Full Flow

这是我目前正在工作的分支 15 Days Out Branch

我在此处添加了第一个收件人电子邮件地址,Power Automate 自动添加了“应用到每个” Added Lab Director Email

添加了第二个收件人电子邮件地址,并自动添加了第二个“应用到每个”操作,这将导致流程出错。 Added Responsible Person Email

这是我运行测试时遇到的错误:

Test Error

这几乎就是流程的范围,计算给定列的 15、45、90 和到期日期,并向这些收件人发送电子邮件 - 如果我只能克服我的电子邮件地址的这个驼峰,而不是在“申请到各”的动作。如果有人有这方面的经验,我将不胜感激!谢谢!

arrays object foreach sharepoint-online power-automate
2个回答
1
投票

导致 Power Automate 将您的操作包装在“应用于每个”中的原因是您的“人员”或“组”字段的设置方式可以选择多个用户。因此,Power Automate 让您的流程做好处理多个值的准备。

另一个问题是,在许多情况下,这些字段中只有一个值,因此在运行时 Power Automate 面对的是单个 Person 对象,而不是一组 Person 对象。

您可以执行以下操作:

  1. 为所有收件人初始化一个数组变量。
  2. 使用Apply to Each循环来迭代Directors和Responsibles,并使用Append to array变量将它们添加到数组变量中。这可以确保即使只有一个收件人,您也拥有数组类型。
  3. 使用“选择”操作将“人员”对象减少到他们的电子邮件地址。
  4. 使用“加入”操作连接所有电子邮件地址。使用分号分隔符。

现在您拥有包含所有电子邮件地址的单个字符串值,因此您可以最终发送一封电子邮件,其中“收件人”字段中包含所有收件人。 本文阐明了选择/加入部分。


0
投票

为了避免在Apply to every to the group/person中,另一个答案是正确的,选择 , join 来提取电子邮件地址。

但是最好的方法就是简单一点,在共享点列表中,用户输入的电子邮件地址,那就是最好的选择。

© www.soinside.com 2019 - 2024. All rights reserved.