无需审计日志,如何通过REST API/FetchXML获取MS Dynamics 365已删除记录?
获取Dynamics 365中已删除记录的直接方法(无需审计日志)
1. 通过Web API查询已删除记录
Dynamics 365 Web API支持直接筛选已删除记录,无需依赖审计日志。核心是利用IsDeleted字段作为过滤条件:
- 构造GET请求时,添加
$filter=IsDeleted eq true参数,同时用$select指定需要返回的字段(注意已删除记录的部分字段可能无法访问)。 - 示例请求:
GET [Organization URI]/api/data/v9.2/accounts?$filter=IsDeleted eq true&$select=accountid,name,createdon - 限制:已删除记录仅在系统保留期内可查询(默认14天,可通过组织设置调整),超过保留期的记录会被自动清理,无法再获取。
2. 使用FetchXML查询已删除记录
FetchXML同样支持筛选已删除记录,只需在查询中添加对应过滤条件:
- 示例FetchXML:
<fetch> <entity name="account"> <attribute name="accountid" /> <attribute name="name" /> <attribute name="createdon" /> <filter> <condition attribute="isdeleted" operator="eq" value="true" /> </filter> </entity> </fetch> - 可将该FetchXML URL编码后,通过Web API的
fetchXml参数传递:GET [Organization URI]/api/data/v9.2/accounts?fetchXml=<fetch>...</fetch>
关键注意事项
- 执行查询的用户必须拥有读取已删除记录的权限(通常为系统管理员或具备对应权限的角色)。
- 已删除记录的关联数据可能无法被检索,若关联记录已被删除或清理。
- 记录保留时长由组织的「数据删除设置」控制,一旦记录被清理,任何方式都无法恢复。
内容的提问来源于stack exchange,提问作者Dishant
相关产品推荐
相关产品推荐

