How to Query Salesforce Attachments / Email Attachments / Chatter Feed Files using APEX?
12:20 PM
There are quite a few ways content (files) are stored in Salesforce. This article shows you ways to access them through a SOQL query.
EMAIL ATTACHMENT:
Let's consider the scenario where we have attachments against email messages related to a Case. Let's see how to query it in SOQL.
SOQL Query:
Assuming case number 123
ATTACHMENTS against a Case:
Salesforce Files Attached to a Case Feed:
EMAIL ATTACHMENT:
Let's consider the scenario where we have attachments against email messages related to a Case. Let's see how to query it in SOQL.
SOQL Query:
Assuming case number 123
Case cs = [Select Id from Case where CaseNumber=123];
Map<Id,EmailMessage> caseEmails = new Map<Id,EmailMessage>([Select Id from EmailMessage where ParentId=:cs.Id and HasAttachment = true]);
Set<Id> caseRelatedIds = new Set<Id>();
if(caseEmails != null){
caseRelatedIds.addAll(caseEmails.keySet());
}
List<Attachment> AttachedFiles = [SELECT Id, Name, Body, ContentType FROM Attachment WHERE ParentId IN :caseRelatedIds];
ATTACHMENTS against a Case:
Case cs = [Select Id from Case where CaseNumber=123];
List<Attachment> AttachedFiles = [SELECT Id, Name, Body, ContentType FROM Attachment WHERE ParentId IN =:cs.Id];
Salesforce Files Attached to a Case Feed:
Case cs = [Select Id from Case where CaseNumber=123];
List<CaseFeed> caseChatterFiles = [SELECT Id, Type, Body, Title, LinkUrl, ContentData, ContentSize, ContentFileName, ContentType From CaseFeed where Type = 'ContentPost' and parentId = :cs.Id];
1 comments
Excellent ! Thanks.
ReplyDelete