Large File Support

Overview

Version 4.11 of the 3B Onboarding app, a Salesforce native application, marks a significant update with the introduction of large file support. This version enhances the app's capabilities in handling and managing files within Salesforce, specifically allowing for larger files of up to 50MB to be managed efficiently.

New Features and Enhancements

Large File Support

The highlight of version 4.11 is the support for large files, enabling users to handle files up to 50MB. This is a substantial improvement over previous versions, catering to the needs of businesses dealing with larger datasets and documents.

New Token Generation Process

A new token generation process has been introduced in this version. This process is crucial for the new large file support feature, as it allows the app to retrieve and save larger files more effectively.

Initial Configuration Changes

For the initial setup, system administrators must now populate new fields in the existing custom setting b3o__Onboarding_Default_Settings__c. These fields are:

  • b3o__API_Username__c
  • b3o__API_Password__c
  • b3o__API_Token__c

These fields should contain the credentials of an API User or System Administrator.

New Functions in GeneralUtils/services/data.js

Two new functions have been added to the GeneralUtils/services/data.js global static resource. These are critical for the functionality of the large file support:

getFile: This function allows the retrieval of files from Salesforce. It accepts parameters such as contentDocumentId and contentVersionId, with the latter being optional for fetching the latest version of a file.

await getFile({
    contentDocumentId: // Content Document Id to get
    contentVersionId: null // Get latest version if left null
})

saveFile: This function enables saving or updating files in Salesforce. It takes parameters like recordId, pathOnClient, fileData, fileName, and an optional contentDocumentId for updating existing files.

await saveFile({
    recordId: // parent salesforce record
    pathOnClient: // file name with file extension
    fileData: getBase64Content(),
    fileName: // filename
    contentDocumentId: // optional, updates the file if provided
})