以下是一些有关解决触发器问题的提示和技巧。
确定特定流运行
有时,您可能需要确定特定的流运行来对流进行故障排除。
我的触发器未触发
原因可能在于数据丢失防护策略。
管理员可能创建数据丢失防护 (DLP) 策略,这些策略可以充当护栏,帮助防止用户无意中泄露组织数据。 DLP 策略会强制实施一些规则,对于这些规则,可以通过将连接器归类为业务或非业务来一起使用连接器。 如果您将某个连接器放在业务组中,则它只能与任何给定应用或流内该组中的其他连接器一起使用。
如果您的流违反了 DLP 策略,它将会挂起,导致触发器不触发。 若要了解流是否被挂起,请尝试编辑流并保存它。 如果流违反了 DLP 策略,流检查程序就会报告。 您的管理员可以更改 DLP 策略。
触发器可能失败。 执行以下步骤进行确认:
登录到 Power Automate。
转到我的流,然后选择您的流。
您是否在详细信息中看到以下错误?
此错误的意思是 Power Automate 多次尝试建立连接以注册触发器,但失败了。 在解决此问题之前,您的流不会触发。
此故障的常见原因之一是 Power Automate 服务终结点不在允许列表中。 若要解决此问题,请确认您的 IT 部门已将这些终结点添加到允许列表中。
请参阅此支持文章,详细了解如何修复触发器的问题。
问题解决后,修改流,然后保存。 然后可以将其更改回原始状态,然后再次保存。 流会意识到其配置已更改,并尝试再次注册触发器。
验证连接
使用默认设置时,用户只需登录一次连接。 然后,他们可以使用该连接,直到管理员撤销它。 可能的情况是,连接的密码可能会过期,或组织中可能有一个策略,该策略设置连接器的身份验证令牌在特定时间后过期。 令牌生命周期策略在 Microsoft Entra ID 上配置。 有关详细信息,请查看此 Azure 文章。
按照以下步骤验证连接是否断开:
登录到 Power Automate。
转到数据>连接。
查找流使用的连接。
选择修复连接,然后在状态列旁边显示修复连接消息时更新连接的凭据。
验证流是否使用高级连接器触发器
编辑流以查找触发器的连接器名称。
转到连接器列表,然后搜索该连接器。 如果连接器是高级连接器,会在连接器的名称下方显示高级。
需要单独的 Power Apps 或 Power Automate 许可证才能访问所有高级、本地和自定义连接器。 您可以随时购买许可证。
检查许可证类型
按照以下步骤查看您已有的许可证的类型:
- 登录到 Power Automate。
- 在左窗格中转到我的流。
- 选择任何一个流。
- 在详细信息部分,查找计划。 将列出您当前的许可证计划。
验证是否跳过触发器检查
您刚完成了一个事件。 例如,您添加了新的列表项或发送了一填充应该会触发流,但流未运行的电子邮件。
在左侧窗格中转到我的流,然后选择流。 在 28 天运行历史记录中,选择所有运行。
如果预期流会运行,但流没有运行,请查看是否显示当时跳过了触发器检查。 如果跳过了触发器检查,这表明不满足流触发的触发条件。 验证流的输入和触发条件,确认您是否在使用最新配置触发流。
验证输入和触发条件
有时,输入和触发条件可能会导致失败。 按照以下步骤来验证您的输入和条件。
备注
登录到 Power Automate。
编辑流。
展开第一个卡片,查看触发器中使用了哪些文件夹、站点、邮箱等。
选择设置。
查找触发条件。
如果此字段为空,表示没有其他自定义,卡片的标题(在本示例中是创建或修改项目时)指示触发器引发的时间。
如果在触发条件中还有其他自定义,请确认您使用的是预期或正确的输入来触发流。
检查权限
验证您是否有权访问触发器中使用的文件夹、站点或邮箱。 例如,要能够通过 Power Automate 从共享收件箱发送电子邮件,您需要具有通过共享收件箱发送电子邮件的权限。 从 Outlook 中的共享邮箱发送测试电子邮件。
验证管理模式是否打开
如果环境的管理模式打开,所有后台进程(包括流)将关闭,导致流不触发。
按照以下步骤禁用管理模式。
- 使用环境管理员或系统管理员角色凭据,转到 Power Platform 管理中心并登录。
- 从左侧菜单,选择环境,然后选择沙盒或生产环境。
- 在详细信息页上,选择编辑。
- 在管理模式下,将滑块设置为禁用。
如果一切看起来不错,但是您的流仍未触发,请验证流在每个步骤之后是否触发。
请尝试以下步骤
我的触发器针对旧事件触发
有轮询触发器或 Webhook 触发器这两种类型的触发器。
如果您关闭了流,然后重新打开,根据您的触发器类型,旧触发器可能会被处理。
轮询触发器会定期调用您的服务以查找新数据,而 Webhook 触发器则响应从服务推送新数据。
请查看下表,理解流在重新打开时的响应方式。
触发器类型 | 说明 |
---|---|
轮询,例如 recurrence 触发器 |
再次打开流时,会处理所有未处理或挂起的事件。 如果您不希望在重新打开流时处理挂起项目,请删除然后重新创建流。 |
Webhook | 再次打开流时,将处理在打开流以后生成的新事件。 |
按照以下步骤确定流使用的触发器类型。
我的流会多次触发或某些操作会多次运行
您可能会遇到单个流运行部分(或全部)操作重复执行的情况。 虽然 UI 未显示此问题,但您可能会看到重复的流结果。 例如,发送了重复的电子邮件,或创建了重复的列表项。
发生这种情况的原因之一是采用了 Azure 逻辑应用的“至少一次”设计。
大多数时候,这表明 Azure 服务存在问题。 通常,这些问题会很快自动解决。 为确保您的流不会产生重复项,请确保将它们设计为等幂 - 也就是说,流需要考虑重复输入的可能性。
幂等性的一个示例是在尝试创建重复的 SharePoint 文档之前检查它是否已经存在,或者使用 Dataverse 中的键约束来防止创建重复的记录。
另一种可能性适用于多次触发流可能是在基于相同条件触发的不同环境中激活流副本的情况。 使用触发条件来自定义触发器以减少它的触发次数。
我的定期触发器提前运行
确认您已在定期卡上设置开始时间,以确保它仅在需要的时间运行。 例如,将开始时间设置为“2022-10-10T10:00:00Z”,以在上午 10:00 启动触发器。
我的触发器在触发前有延迟
如果触发器是轮询触发器,它将定期唤醒以检查是否发生了新事件。 唤醒时间取决于运行流的许可证计划。
例如,如果使用的是免费许可证计划,流可能每 15 分钟运行一次。 使用免费计划,如果云端流在其最近一次运行之后的 15 分钟内被触发,该流将加入队列,直到 15 分钟过去。
如果您的许可证是适用于 Office 365 的 Flow 计划(来自您的 Enterprise 许可证 E3、E5 等)或适用于 Dynamics 365 的 Flow 计划,五分钟内流不会再次运行。 因此,在触发事件发生与流开始之间可能间隔几分钟。
按照以下步骤检查触发器唤醒频率。
如果流触发所用的时间比预期要长得多,最有可能是以下两个原因:
对连接器或流的调用过多,导致其受到限制。 若要验证流是否受到限制,请手动测试流来查看它是否立即触发。 如果立即触发,说明未受到限制。
您可以查看 Power Automate 分析,了解有关您的流的更多信息。
如果您的流经常被限制,请重新设计流以使用更少的操作。 在了解平台限制并避免节流中了解详细信息。
其他技巧:
获取 Power Automate Premium(以前称为 Power Automate 每用户)或 Power Automate Process 许可证(以前称为 Power Automate 每流) 获取后,打开然后保存流,以刷新与其关联的权利和更改限制模式。
将流拆分为多个实例。 如果流处理数据,您可以将此数据分成几个子集(按国家/地区、业务区域等)。
之后,您可以在流上使用另存为来创建多个处理各自数据的实例。 由于配额是按流分配的,因此可以将此作为解决方法。
发生阻止 Power Automate 响应触发器事件的通信问题。 可能是由于服务中断、策略更改、密码过期等原因,这些会导致延迟。 您可以查看帮助与支持,来发现当前是否有任何中断。 您还可以清除浏览器的缓存,然后重试。
Power Apps 触发器问题
无法重命名云端流中的操作 – 这是使用 Power Apps 触发器的流的已知问题。 重命名操作的一个替代方法是删除触发器。 根据需要重命名操作,添加 Power Apps 触发器,然后配置变量。
应用发布后,复制该应用用于进行更新的流。 对发布的应用引用的云端流的任何更新都可能中断现有用户。 在所有用户都已升级到应用的新发布版本之前,请勿删除或关闭现有流。
SharePoint 触发器问题
SharePoint 触发器(例如,创建或修改文件时),如果在子文件夹中添加或更新文件,则不会触发。 如果需要流在子文件夹上触发,请创建多个流。
用户无法运行与他们共享的流,但负责人可以
您可以尝试以下方法之一:
修复或更新连接。
如果您的流使用手动触发器,则需要触发流的用户的连接。 如果它使用的是定期触发器,可以在流制作者的连接上运行。
确认用户具有流中连接的适当许可证。
用户需要 Power Automate 许可证才能执行像保存、关闭等操作。 仅有 Power Apps、Dynamics 365 或 Microsoft 365 许可证是不够的。 与之共享使用高级连接器的流的每个用户需要 Power Automate Premium(以前称为 Power Automate 每用户)或 Power Automate Process 许可证(以前称为 Power Automate 每流)来编辑或手动触发流。 如果用户以前能够保存或修改流,他的许可证可能已过期。
或者,您可以为每用户计划开始 90 天的试用,此后,您需要付费计划来运行或编辑使用高级连接器的流。 您可以在许可证页面或这篇支持文章中找到更多信息。
更改环境 URL 后,我的流没有触发
要解决此问题,请编辑每个流并保存。 触发器应会再次开始触发。
触发器不尊重其中使用的表达式
对于触发器,仅当保存流时才会计算表达式的值。 例如,如果触发器在输入中使用了 utcNow()
,则在保存流时会计算 utcNow()
,并将当前 UTC 时间作为硬编码值插入触发器定义中。 每次触发流时,都不会重新计算 utcNow()
。