-
Notifications
You must be signed in to change notification settings - Fork 460
FilesRecipes
Demonstrates how to create, link and share Files
Group Files Recipes
creates a file attachment containing the given string and links it to the object specified in firstLocation
public static void createFileFromStringAttachedToRecord(String text, Id firstLocation)
Name | Type | Description |
---|---|---|
text | String | String to write to the file |
firstLocation | Id | object to immediately link this file to |
void
Account acct = [SELECT Id FROM Account LIMIT 1];
FilesRecipes.createFileFromStringAttachedToRecord('Hello World', acct.Id);
System.debug('Look for files assoicated with account: ' + acct.id);
Creates a file and links it to a given record
public static Database.SaveResult createFileAttachedToRecord(Blob fileContents, Id attachedTo, String fileName)
Name | Type | Description |
---|---|---|
fileContents | Blob | the binary blob of the files contents |
attachedTo | Id | the record to link this file to, initially |
fileName | String | the name of the file. Note that the system determines |
the filetype from the file extension here |
Database.SaveResult
Blob fileContents = Blob.valueOf('Hello World 2');
Account acct = [SELECT Id FROM Account LIMIT 1];
FilesRecipes.createFileAttachedToRecord(
fileContents,
firstLocation,
'AwesomeFile1'
);
System.debug('Look for files assoicated with account: ' + acct.id);
Convenience method for creating a file and linking it to a given record
public static Database.SaveResult createFileAttachedToRecord(FilesRecipes.FileAndLinkObject toCreate)
Name | Type | Description |
---|---|---|
toCreate | FilesRecipes.FileAndLinkObject | a FileAndLinkObject (inner class above) object representing the file to be created and linked |
Database.SaveResult
Bulk method for inserting multiple files and link them to records
public static List<Database.SaveResult> createFilesAttachedToRecords(List<FilesRecipes.FileAndLinkObject> toCreate)
Name | Type | Description |
---|---|---|
toCreate | List<FilesRecipes.FileAndLinkObject> |
List<Database.SaveResult>
SUPPRESSWARNINGS
Searches for content version records linked to this record Filtering by a generic file type: image, audio, document etc.
Note: This method has a false-positive PMD warning. Our Query includes the keyword 'WITH USER_MODE' which prevents this Query from accessing fields and objects that they don't have permission to access. This is a form of inline CRUD/FLS Check.
public static List<ContentVersion> getFilteredAttachmentsForRecord(FilesRecipes.GenericFileType genericFileType, Id recordId)
Name | Type | Description |
---|---|---|
genericFileType | FilesRecipes.GenericFileType | Enum of image, audio, document |
recordId | Id | Record ID to limit searching to |
List<ContentVersion>
Account acct = [SELECT Id FROM Account LIMIT 1];
FilesRecipes.createFileFromStringAttachedToRecord('Hello World', acct.Id);
System.debug('Found the following ContentVersion Ids: ' + FilesRecipes.getFilteredAttachmentsForRecord(FilesRecipes.GenericFileType.ALL, acct.id));
Given a content document link, publish the content version
public static Database.SaveResult publishContent(ContentDocumentLink cdl)
Name | Type | Description |
---|---|---|
cdl | ContentDocumentLink | Content Document link record to publish |
Database.SaveResult
FilesRecipesException:
Account acct = [SELECT Id FROM Account LIMIT 1];
FilesRecipes.createFileFromStringAttachedToRecord('Hello World', acct.Id);
ContentDocumentLink cdl = [SELECT LinkedEntityId, ContentDocument.LatestPublishedVersionId FROM ContentDocumentLink WHERE LinkedEntityId = :acct.id LIMIT 1];
System.debug('Found the following ContentVersion Ids: ' + FilesRecipes.getFilteredAttachmentsForRecord(FilesRecipes.GenericFileType.ALL, acct.id));
An inner class representing a file to be created and linked to a given record. Useful for bulk-creating files and linking them.
public fileContents
Blob
public attachedTo
Id
public fileName
String
Internal exception class
This enum encapsulates a 'generic' filetype a 'filetype' that may have multiple file extension and mime types associated with it. For instance, IMAGE encapsulates: jpg, gif, jpeg, & png this allows developers to say, 'give me all image attachments' without worrying about the actual file extension.
Value | Description |
---|---|
IMAGE | |
AUDIO | |
DOCUMENT | |
ALL |