-
Notifications
You must be signed in to change notification settings - Fork 433
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
Param | Description |
---|---|
text |
String to write to the file |
firstLocation |
object to immediately link this file to |
Account acct = [SELECT Id FROM Account LIMIT 1];
FilesRecipes.createFileFromStringAttachedToRecord('Hello World', acct.Id);
System.debug('Look for files assoicated with account: ' + acct.id);
public static Database createFileAttachedToRecord(Blob fileContents, Id attachedTo, String fileName)
Creates a file and links it to a given record
Param | Description |
---|---|
fileContents |
the binary blob of the files contents |
attachedTo |
the record to link this file to, initially |
fileName |
the name of the file. Note that the system determines the filetype from the file extension here |
Type | Description |
---|---|
Database |
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
Param | Description |
---|---|
toCreate |
a FileAndLinkObject (inner class above) object representing the file to be created and linked |
Type | Description |
---|---|
Database |
Database.SaveResult |
public static List<Database.SaveResult> createFilesAttachedToRecords(List<FilesRecipes.FileAndLinkObject> toCreate)
Bulk method for inserting multiple files and link them to records
Param | Description |
---|---|
toCreate |
List<FilesRecipes.FileAndLinkObject> |
Type | Description |
---|---|
List<Database.SaveResult> |
List<Database.SaveResult> |
public static List<ContentVersion> getFilteredAttachmentsForRecord(FilesRecipes genericFileType, Id recordId)
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.
Param | Description |
---|---|
genericFileType |
Enum of image, audio, document |
recordId |
Record ID to limit searching to |
Type | Description |
---|---|
List<ContentVersion> |
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
Param | Description |
---|---|
cdl |
Content Document link record to publish |
Type | Description |
---|---|
Database |
Database.SaveResult |
Exception | Description |
---|---|
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));
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.
An inner class representing a file to be created and linked to a given record. Useful for bulk-creating files and linking them.
Internal exception class
Inheritance
FilesRecipesException