首页 > 解决方案 > 有没有办法使用 REST API 从 salesforce 中检索已删除的记录?

问题描述

我已将 Salesforce 对象数据加载到 Azure SQL。现在我希望删除 Salesforce 中的一条或多条记录,然后我可以使用 REST API 检索这些记录。

有没有办法为特定对象的这些记录创建 REST API?

标签: salesforceazure-sql-databaserest

解决方案


“对,但是”。

默认情况下,SF 软删除记录,它们仍然可以在回收站的 UI 中看到并从那里取消删除。(还有一个硬删除调用来跳过回收站)。

记录在那里最多保留 15 天。bin 的容量取决于您组织的数据存储,请参阅https://help.salesforce.com/articleView?id=home_delete.htm&type=5。因此,如果您大量删除了大量数据,则 bin 可能会溢出。

要检索这些,您需要调用/queryAll而不是/query服务。isDeleted并按未显示在设置中但几乎在每个对象上的列进行过滤。请参阅https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_queryall.htm

/services/data/v49.0/queryAll/?q=SELECT+Name+from+Account+WHERE+isDeleted+=+TRUE

如果这对您来说还不够好,如果您冒着 Bin 溢出或操作被硬删除的风险 - 您可以进行自己的软删除(将记录移动到角色层次结构之外的某个特殊所有者,以便除了系统管理员之外的所有人都看不到它们?)或改变策略。从 SF 推送信息而不是拉取信息。甚至在删除、手动或使用更改数据捕获时发送平台。(我认为 CDC 不会在硬删除时生成事件,但您必须阅读)


推荐阅读