我不熟悉 Salesforce 中的文件处理。我想获取附加到自定义对象所有记录的所有文件。有人可以帮我吗?
Attachment
对象,你可以简单地去SELECT Body, ContentType, Name FROM Attachment WHERE ParentId = '...'
.
在 Lightning 中,您的附件很有可能被称为“文件”(实际的 API 名称是
ContentDocument
/ ContentVersion
)。检查附件的 ID 是否以 068 或 069 开头。它们没有直接链接到您的记录。取而代之的是 ContentDocumentLink
桌子,用于交叉共享相同的文件。 (你上传它一次就浪费了数据库空间,然后你可以在 Chatter 帖子、群组、其他记录中交叉链接它……)
官方 ERD 不是很好,请尝试在设置 -> 架构生成器中单击它,否则此答案可能会有所帮助: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 插件
您可以尝试批量下载的 AppExchange 工具,Satrang Mass File Download AppExchange App 只需点击几下即可帮助从标准和自定义对象下载批量文件和附件。
网址 - https://appexchange.salesforce.com/listingDetail?listingId=a0N3A00000EcsAOUAZ&tab=e
免责声明:我在 Satrang Technologies 工作,这是此海量文件下载 AppExchange 应用程序的发布者。