Most of the scheduling job endpoints use the Job Chain Process Flow.
The Job Chain Process Flow provides a solution for the execution of several workers (jobs) that have dependencies between them. For example, one job requires the completion of another job before beginning its execution.
Worker Configuration (jobThreads)
Most scheduling endpoints accept a jobThreads parameter (or use the JobThreads property of the Job class) that controls the number of parallel workers the off-platform processing service uses to process the scheduled job items.
Important: Setting this parameter correctly can have a significant impact on batch processing throughput and duration.
Setting
Value
Default (when omitted)
5 workers
Maximum on production and full copy sandbox orgs
25 workers
Maximum on other sandbox orgs
3 workers
Recommendation: Always set jobThreads to 25 to maximize throughput. The processing service automatically caps the value to the environment’s configured maximum (25 on production and full copy sandbox orgs, 3 on other sandbox orgs), so setting 25 is always safe.
The effective number of workers is: min(jobThreads, environment maximum, number of job items).
The Job Class
Several scheduling endpoints use the <namespace>.Job class to pass job parameters. This global Apex class contains the following properties:
Property
Type
Description
Required
JobChainName
String
Unique name identifying the job chain. Typically includes a timestamp for uniqueness (e.g., ‘TPM_Calculation_Chain_’ + Datetime.now().getTime()).
Yes
JobName
String
Name of the specific job within the chain (e.g., ‘PromotionCalculation’, ‘AccountPlanCalculationBasic’).
Yes
BatchChainType
String
Type of the batch chain. Default: ‘default’.
No
JobThreads
Integer
Number of parallel workers. Default: 5 (applied by the backend if not set). Maximum: 25 (production and full copy sandbox) / 3 (other sandboxes). Recommended value: 25.
No (but strongly recommended)
JobModes
List<String>
Processing modes for the job.
No
Extra
Map<String, Object>
Additional job properties.
No
Example:
1<namespace>.Job job = new <namespace>.Job();2job.JobChainName = 'TPM_Calculation_Chain_' + Datetime.now().getTime();3job.JobName = 'AccountPlanCalculationBasic';4job.BatchChainType = 'default';5job.JobThreads = 25; // Recommended: use maximum available workers for optimal throughput
Begin a scheduling transaction for a job in a job chain. The job either starts an open transaction (if the number of job items is not announced) that must be explicitly committed to, or communicates the expected number of job items to the off-platform system.
Schedules one or multiple account plan categories for batch calculation. It accepts up to 1000 account plan categories and schedules them for calculation.
Enqueues a given list of funds for batch calculation. The calculation result is transferred back to Salesforce via the KPI Upload once the calculation is finished.
Performs off-platform data cleanup and reorganization. Promotions in Salesforce that are deleted, inactive, or cancelled are removed from off-platform data. Additionally, softly deleted measure data is hard deleted.