Performs multiple batch operations (one after another) on a set of records.
It executes a number of Integration Procedures-based batch jobs in succession. It also supports the pre and post-processing steps on every batch.
For example, you could use it for various group-level (Quote/Order Group) actions to perform different sequential batch jobs on a set of quotes and orders.
-
Validate and Price:
-
Validation
-
Pricing (gets fired once the validation batch-job is finished)
-
-
Create and Submit Order:
-
Create Order (Quote checkout with price:false)
-
Price Sub-Orders
-
Submit Order (checkout the orders created in the initial batch)
-
For other uses, see invokeBatchSerially Method.
Input Parameters
batchInput expects the list of objects as input. Every individual object represents a single batch job to execute.
|
Parameter |
Required |
Description |
|---|---|---|
|
batchOperationTypeindicates |
Required |
The name of the batch process. |
|
batchSize |
Required |
Batch-size configuration for the batch job to run. |
|
className |
Required |
The corresponding Apex class to invoke for the batch job. This class should extend MSInvokeVIPInBatch and can override start, execute, and finish methods if required. |
|
classParams |
Required |
The Integration Procedures to execute at different stages of the batch job.
Also, |
Example Input Data
"batchInput": [
{
"batchOperationType": "Validate",
"batchSize": 1,
"className": "vlocity_cmt.MSInvokeCartValidationBatch",
"classParams": {
"startVIP": {
"vipName": "",
"vipParams": {}
},
"executeVIP": {
"vipName": "MultiService_RunCartValidation",
"vipParams": {}
},
"finishVIP": {
"vipName": "MultiService_FinishCartValidation",
"vipParams": {}
}
}
},
{
"batchOperationType": "Price",
"batchSize": 1,
"className": "vlocity_cmt.MSInvokeCartPricingBatch",
"classParams": {
"startVIP": {
"vipName": "",
"vipParams": {}
},
"executeVIP": {
"vipName": "MultiService_RunCartPricing",
"vipParams": {}
},
"finishVIP": {
"vipName": "MultiService_FinishCartPricing",
"vipParams": {}
}
}
}
]
Example Output Data
{
"isJobStarted": "false",
"error": "OK",
"errorLabel" : "Batch Job Failed to Start",
"message": "Batch job cannot be started as salesforce limit exceeded. Please contact administrator."
}
Process Different Records
This remote action can also support the scenario where the next batch is expected to process a different set of records than the previous one.
For example, in the Create and Submit Order batch, the finish stage of Create-Order and the whole Price and Submit-Order batches should process the new orders created by the previous batch. This is possible by splitting the finish of the Create-Order process into three steps:
-
Run
beforeCtxSwitchFinishVIP. -
Perform context switch.
-
Run
afterCtxSwitchFinishVIP.
The corresponding batch-object of the input is shown in the following example.
{
"batchOperationType": "CreateOrder",
"batchSize": 1,
"className": "vlocity_cmt.MSInvokeCreateOrderBatch",
"classParams": {
"startVIP": {
"vipName": "MultiService_StartCheckoutQuote",
"vipParams": {}
},
"executeVIP": {
"vipName": "MultiService_CheckoutQuote",
"vipParams": {}
},
"beforeCtxSwitchFinishVIP": {
"vipName": "",
"vipParams": {}
},
"afterCtxSwitchFinishVIP": {
"vipName": "MultiService_FinishCheckoutQuote",
"vipParams": {}
}
}
}