How to improve the performance of the continuous invoice run with large data sets?
← Setup and Service FAQ ← Billing & Invoice Management FAQ
The batch process for the continuous invoice run (BatchTransactionalInvoiceRun) may fail on large data sets (more than 1.000.000 records in the table) with a query timeout exception due to a full table scan.
To solve this:
- Open a support case with Salesforce to get the field
ON_Date__c
indexed. -
Edit the filter and change the use case from
Continuous
toContinuous Daily
.This will change the execution of the continuous invoice run to start a batch process on each day of the invoice run period. Instead of one batch process, the system will execute 31 batch processes per month.
Info
This solution only works if the Salesforce query optimizer choses the ON_Date__c
index over a full table scan. So the maximum number of unconverted records may not exceed 333.333 per day.
Note
The filter use case Continuous Daily
is ignored when creating a new invoice from a subscription.