-
Notifications
You must be signed in to change notification settings - Fork 519
FilesRecipes
Demonstrates how to create, link and share Files
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.
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 |
Type
Database.SaveResult
Description
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
Database.SaveResult
Description
Database.SaveResult
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);
createFilesAttachedToRecords(List<FilesRecipes.FileAndLinkObject> toCreate) → List<Database.SaveResult>
Bulk method for inserting multiple files and link them to records
| Param | Description |
|---|---|
toCreate |
List<FilesRecipes.FileAndLinkObject> |
Type
List<Database.SaveResult>
Description
List<Database.SaveResult>
getFilteredAttachmentsForRecord(FilesRecipes.GenericFileType genericFileType,Id recordId) → List<ContentVersion>
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 SECURITY_ENFORCED' 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
List<ContentVersion>
Description
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
Database.SaveResult
Description
Database.SaveResult
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.
Internal exception class