如何通过批量删除作业删除无近期关联案例的Dynamics 365联系人记录?
结论
该筛选逻辑无法仅通过Dynamics 365原生**高级查找(Advanced Find)**或批量删除作业的自带筛选功能实现,核心原因是原生高级查找的关联实体筛选不支持「不存在符合条件的关联记录」的反向判断逻辑,你之前调整的规则实际是筛选「存在符合时间条件的关联活动的联系人」,和你需要的「13个月内无任何关联活动的非活跃联系人」逻辑完全相反,因此会返回不符合要求的结果。
可落地实现方案
方案1:原生功能组合实现(无额外工具)
- 首先在联系人(Contact)实体新增两个自定义字段:
- 最后活动日期(Last Activity Date):类型为日期时间,设置为计算字段,计算公式取该联系人关联的所有活动(邮件、电话、任务、约会等)的最晚发生时间
- 可删除标记:布尔型计算字段,判断逻辑为
最后活动日期 早于 13个月前 AND 创建时间 早于 13个月前 AND 修改时间 早于13个月前,可根据实际业务规则调整判断条件
- 等待系统完成存量联系人的计算字段值同步,数据量不大的情况下24小时内可完成,也可手动触发批量计算作业
- 完成后直接在批量删除作业的筛选条件中添加
可删除标记 = 是即可,该筛选完全兼容原生高级查找逻辑
方案2:无实体改造需求的轻量工具实现
- 可用Microsoft 365生态内置的Power Automate做定时自动化流:
- 触发器设置为每月定时运行,匹配GDPR定期清理要求
- 调用Dataverse的
List rows接口拉取全量联系人 - 遍历每个联系人,查询其关联的所有活动记录,确认是否存在13个月内的活跃记录,无活跃记录则执行删除动作
- 若环境允许自定义代码部署,也可编写后台批量作业插件实现,逻辑和Power Automate流一致
内容的提问来源于stack exchange,提问作者Andrew Coates
相关产品推荐
相关产品推荐

