Performs multiple batch operations (one after another) on a set of records.
<!-- Section title is the name of the method followed by "Method". If appropriate, precede the method name with the class name and a colon.-->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.
Class
<!-- broken link--> <!-- Link(s) to the class(es) to which this method belongs. If more than one class implements the same interface, use an itemized list. Don't use a link if the class itself isn't documented for users, but do list the class name.-->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. <ul> |
<li>`vipName` listed in `startVIP` is executed at the start of the batch.</li>
<li>`executeVIP` is called as part of the execution process.</li>
<li>`finishVIP` runs during the finish process of the batch.</li>
<li>Additional VIP-level inputs can be provided in `vipParams`.</li>
</ul> Also, `classParams` can contain an additional set of class-level inputs.|
Output Parameters
| Parameter | Description |
|---|---|
| isJobStarted | True — The batch job has started successfully. |
Example Input Data
<!-- This is usually JSON, but it could be XML or a single value. For methods of classes implementing VlocityOpenInterface2 that have options parameters, include those here.-->
"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
<!-- This is usually JSON, but it could be XML or a single value. Salesforce uses Return Type, but this takes care of that.-->
{
"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": {}
}
}
}