You are here:
VlocityOpenInterface2
VlocityOpenInterface2 supports normal remote calls and remote calls that use the Continuation object. It differs slightly due to the return time of the invokeMethod on an object. In VlocityOpenInterface, the invokeMethod returns a Boolean. In VlocityOpenInterface2, the invokeMethod returns an object.
Only classes that implement VlocityOpenInterface2 can be used in continuations. For more information, see Apex Continuations: Asynchronous Callouts from Visualforce Pages.
Type
Loosely typed
Triggered When
See individual implementations.
Called In
See individual implementations.
Signature
Access |
Implementation | Signature |
|---|---|---|
global |
OmniCPQServiceWrapperOmniCPQServiceWrapper |
|
Default Implementation
None
Other Implementations
The OmniCPQServiceWrapperOmniCPQServiceWrapper implementation is a class for OmniScript that supports named methods used in guided selling.
Parameters
See OmniCPQServiceWrapperOmniCPQServiceWrapper.
Sample Implementation
global with sharing class OmniCPQServiceWrapper implements VlocityOpenInterface2 {
global Object invokeMethod(String methodName,
Map<String,Object> inputMap,
Map<String,Object> outMap, Map<String,Object> options) {
Boolean success = true;
String errors = 'OK';
try {
if (methodName == 'createOrder') {
createOrder(inputMap, outMap, options);
} else if (methodName == 'getProducts') {
getProducts(inputMap, outMap, options);
} else if (methodName == 'addToCart') {
if (options.get('vlcOperation').equals('Add'))
addProducts(inputMap, outMap, options);
else if (options.get('vlcOperation').equals('Remove'))
removeItemFromCart(inputMap, outMap, options);
else if (options.get('vlcOperation').equals('configureProd'))
configureProduct(inputMap, outMap, options);
} else if (methodName == 'updateCart') {
if (options.get('vlcOperation').equals('Delete'))
deleteItem(inputMap, outMap, options);
else if (options.get('vlcOperation').equals('Update'))
updateItem(inputMap, outMap, options);
else if (options.get('vlcOperation').equals('configureProdInCart'))
configureProductInCart(inputMap, outMap, options);
else if (options.get('vlcOperation').equals('saveProductsPostConfig'))
saveProductsPostConfig(inputMap, outMap, options);
else
getItems(inputMap, outMap, options);
} else if (methodName == 'submitOrder') {
submitOrder(inputMap, outMap, options);
} else if (methodName == 'upgradeAsset') {
upgradeAsset(inputMap, outMap, options);
} else if (methodName == 'getAssets') {
getAssets(inputMap, outMap, options);
}
} catch (Exception e) {
Logger.err(e.getStackTraceString());
errors = e.getMessage();
success = false;
}
outMap.put('success', success);
outMap.put('error', errors);
return success;
}
public void getAssets(Map<String,Object> inputMap, Map<String,Object> outputMap, Map<String,Object> options) {
}
public void upgradeAsset(Map<String,Object> inputMap, Map<String,Object> outputMap, Map<String,Object> option) {
}
public void createOrder(Map<String,Object> inputMap, Map<String,Object> outputMap, Map<String,Object> options) {
}
public void getUpdatedCart(Map<String,Object> inputMap, Map<String,Object> outputMap, Map<String,Object> options) {
}
public void getProducts(Map<String,Object> inputMap, Map<String,Object> outputMap, Map<String,Object> options) {
}
public void addProducts(Map<String,Object> inputMap, Map<String,Object> outputMap, Map<String,Object> options) {
}
public void removeItemFromCart(Map<String,Object> inputMap, Map<String,Object> outputMap, Map<String,Object> options) {
}
public void deleteItem(Map<String,Object> inputMap, Map<String,Object> outputMap, Map<String,Object> options) {
}
public void updateItem(Map<String,Object> inputMap, Map<String,Object> outputMap, Map<String,Object> options) {
}
public void submitOrder(Map<String,Object> inputMap, Map<String,Object> outputMap, Map<String,Object> options) {
}
public void getItems(Map<String,Object> inputMap, Map<String,Object> outputMap, Map<String,Object> options) {
}
}

