Example Implementation of Decoupled Decomposition and Orchestration Processes

Examples showing submitting orders for decomposition and orchestration separately.

Submit an order for decomposition asynchronously.

Map<String, Object> input = new Map<String, Object>{
        'orderIdList' => new List<String>{'801Ki0000000hcSIAQ'}
};
Map<String, Object> options = new Map<String, Object>{
        'submitMode' => 'Queueing',
        'decomposeOnly' => null,        // use either one of
        'queuePlanComposition' => null  // these two options
};
Map<String, Object> output = new Map<String, Object>();

vlocity_cmt.VOIInvoker.getInstance().invoke('OdinAPIHandler', 'submitOrder', input, output, options);

List<vlocity_cmt.CpqSubmitOrderResult> resultList = (List<vlocity_cmt.CpqSubmitOrderResult>) output.get('resultList');

Compose a plan in an asynchronous workflow.

Map<String, Object> input = new Map<String, Object>{
        'orderIdList' => new List<String>{'801Ki0000000hcSIAQ'}
};
Map<String, Object> options = new Map<String, Object>{
        'submitMode' => 'Queueing'
};
Map<String, Object> output = new Map<String, Object>();

vlocity_cmt.VOIInvoker.getInstance().invoke('OdinAPIHandler', 'composePlan', input, output, options);

List<vlocity_cmt.CpqSubmitOrderResult> resultList = (List<vlocity_cmt.CpqSubmitOrderResult>) output.get('resultList');