Call OFC's Apex class from the Apex class and save the PDF file. Only PDF file format is supported.
*This feature is available in Office File Creator Pro.
*This feature will be released on Dec 9, 2024.
How to Call Apex Class
- From the Apex class, call the "execute" method of the OFC Apex class "ofc2.OFCSavePDF".
- The parameter is ofc2.OFCSavePDF.Requests class and the return value is ofc2.OFCSavePDF.Results class.
- Turn on saving of output logs to capture the details of errors.
Parameters
Variable Name | Setting details |
recordId | Record Id |
template | Template Api Name of the OFC_Template Record. |
save (file/att *default is file) | Set the file output method. The default is "file".
|
execution name | Set any execution name, which is stored in the “Execution Name” of the OFC_Log record.
|
Return Values
Variable Name | Result Values |
isSuccess | Returns the success or error of the file output result.
|
errorMessage | If isSuccess is False, it returns the error content. |
filename | File name (with extension) |
fileNameWithoutExtension | File name (without extension) |
fileExtension | File extension |
contentDocumentId | If the parameter ″save″ is "file", it returns the record Id of the ContentDocument object. |
contentDocumentVesionId | If the parameter ″save″ is "file", it returns the record Id of the ContentVersion object. |
attachmentId | If the parameter ″save″ is "att", it returns the record Id of the ContentVersion object. |
log Id | Returns the OFC_Log record Id. Returns the result if "Save Logs" is checked on the OFC_Template record. |
Sample Code
ofc2.OFCSavePDF.Requests req = new ofc2.OFCSavePDF.Requests();
req.recordId = 'xxxxxx';
req.templateApiName = 'OpportunityInvoice';
req.executionName = 'Call From Apex';
ofc2.OFCSavePDF.Results result = ofc2.OFCSavePDF.execute(req);
System.debug('result=' + result);
Apex Batch
Batch Size
The batch size must be set within a range where the total time for OFC processing and other processing is within 60 seconds; for the time to process one file for OFC, check the "Execution Time (sec)" in the OFC_Log record.
Approximate Batch Size
(60 seconds - other processing time) / maximum processing time for one file in OFC = batch size
e.g., If the maximum processing time for one file in OFC is 5 seconds and the other processing is 8 seconds, the batch size is 10
(60 seconds - 8 seconds) / 5 seconds = 10.4
Update Merge Fields Before Executing OFC
It is impossible to update records before OFC execution and use the updated values for the merge fields. When updating merge fields before OFC execution, create two batches, one for updating records and one for executing OFC, and call the OFC execution batch in the finish method in the record update batch.
Note for Apex Batch
- Batch size should be set to a maximum of 20 or less.
- OFC's per-file processing time is not constant and may unexpectedly exceed the batch governor limit of seconds. Set a smaller batch size than expected.
- If the governor limit seconds is exceeded, the error "First error: Apex CPU time limit exceeded" will occur. When a governor limit error occurs, OFC results are not returned because the application cannot catch the error. Also, OFC_Log records are not saved. Please check the batch success/error from Setup > Apex Jobs.
Note・Limitations
- Knowledge of Apex development is required. Inquiry support is unavailable for Apex development, such as instructions on how to create Apex.