我是 Salesforce 中文件处理的新手。我想获取附加到自定义对象的所有记录的所有文件。有人可以帮我吗?
2 回答
老派 SF 用过Attachment
object,你可以简单地去SELECT Body, ContentType, Name FROM Attachment WHERE ParentId = '...'
。
在 Lightning 中,您的附件很可能被称为“文件”(实际的 API 名称是ContentDocument
/ ContentVersion
)。检查附件的 ID 是否以 068 或 069 开头。它们没有直接链接到您的记录。相反ContentDocumentLink
,中间有一张桌子,用于交叉共享同一个文件。(你上传一次,浪费数据库空间,然后你可以在 Chatter 帖子,群组,其他记录中交叉链接它......)
官方ERD不是很好,请尝试在 Setup -> Schema Builder 中单击它,否则此答案可能会有所帮助:https ://salesforce.stackexchange.com/a/160285/799 。有一个示例查询,您可能需要对其进行微调,例如SELECT ContentDocument.LatestPublishedVersion.VersionData
获取实际有效负载。
在此处查看有关ContentVersion
. 例如https://stackoverflow.com/a/48668673/313628(这是相反的方式,关于上传,但应该给你一个好主意)。
您可以使用开源 sfdx-hardis 插件命令导出所有笔记和附件
- 首先,定义一个文件导出
sfdx hardis:org:configure:files
当提示输入 SOQL 请求时,您可以输入SELECT Id,Name FROM YourCustomObjectName__c
- 然后,运行文件导出
sfdx hardis:org:files:export
本文中的更多详细信息
免责声明:我公司作者 sfdx-hardis 插件