如何在Power Automate流中获取Dataverse字段的修改前值?
获取Power Automate行修改前的值方法
默认的“When a row is added, modified or deleted”触发器不会直接返回修改前的值,得通过额外配置实现,下面是两种可行方案:
方案1:启用数据源的变更追踪
- 先在你的数据源里开启变更追踪功能:
- Dataverse:进入表设置,找到“变更追踪”选项,勾选“启用变更追踪以用于数据流和其他服务”
- SharePoint:列表设置→版本设置,将“创建版本历史记录”设为“是”,并设置保留的版本数
- 开启后,在Power Automate里添加获取行版本(SharePoint)或检索已更改的行(Dataverse)动作,就能提取到修改前的字段值
- 注意:不同数据源操作有差异,比如SharePoint通过版本历史取旧值,Dataverse依赖变更追踪的专用动作
方案2:手动存储旧值(适合简单场景)
- 在行被修改前,先添加获取行动作,提前读取当前行所有字段值并存入变量
- 触发流后,对比变量里的旧值和触发器返回的新值,就能得到字段修改前后的差异
- 这种方法不用依赖数据源额外配置,适合字段较少的场景,但要确保“获取行”动作在修改操作执行前完成
实用技巧
- 邮件里展示差异时,可使用表达式
if(旧值 != 新值, concat(字段名, ": ", 旧值, " → ", 新值), ""),只显示有变化的字段,让内容更简洁
内容的提问来源于stack exchange,提问作者JasonYeung
相关产品推荐
相关产品推荐

