Loading
Prepare for Email to Become the Default Login ExperienceRead More
Get Started with Communications, Media, and Energy & Utilities (CME)...
VlocityOpenInterface

VlocityOpenInterface

The VlocityOpenInterface is a general-purpose interface class upon which you can create implementations across application domains, including pricing, merge, and so on. Using the VlocityOpenInterface, all implementation and method names are data-driven. You can add new delegates without breaking interfaces or requiring upgrades. You can delegate reuse and extend the interface.

VlocityOpenInterface Model

VlocityOpenInterface Model diagram

Type

Loosely typed

Triggered When

See individual implementations.

Called In

See individual implementations.

Signatures

Note
Note

Information in the Signatures table is subject to change.

Access

Implementation

Signature

public

CPQSubmitFlowImplementationCPQSubmitFlowImplementation

DefaultCPQSubmitFlowImplementationDefaultCPQSubmitFlowImplementation

Boolean cpqSubmit(Map inp, Map outp)

global

CPQSubmitFlowImplementationCPQSubmitFlowImplementation

DefaultCPQSubmitFlowImplementationDefaultCPQSubmitFlowImplementation

Boolean invokeMethod(String methodName, Map input, Map output, Map options)

global

DefaultPricebookDefaultImplementationDefaultPricebookDefaultImplementation

CustomPricingPlanStepImplementationCustomPricingPlanStepImplementation

Boolean invokeMethod(String methodName, Map input, Map output, Map options)

global

EligibilityFlowOpenImplementationEligibilityFlowOpenImplementation

EligibilityMatrixFlowImplementationEligibilityMatrixFlowImplementation

Boolean invokeMethod(String methodName, Map inputMap, Map outputMap, Map options)

public

PricingMatrixCalculationService

XLIBatchValidationConfiguration

XLIBatchValidationNotificationXLIBatchValidationNotification

XLIConfigurationValidationServiceXLIConfigurationValidationService

XLIEligibilityValidationServiceXLIEligibilityValidationService

XLIMergeServiceXLIMergeService

XLIPricingValidationServiceXLIPricingValidationService

Boolean invokeMethod(String methodName, Map inputMap, Map outMap, Map options)

public

ProductRelationshipValidationImplProductRelationshipValidationImpl

XLIAvailabilityValidationServiceXLIAvailabilityValidationService

static void validateLineItems(List itemsList)

public

XLIMergeServiceXLIMergeService

void invokeMergeHandler(String mergeMode, Map input, Map output, Map options)

public

XLIMergeServiceXLIMergeService

Boolean mergeFromParent(Map input, Map output, Map options)

public

XLIMergeServiceXLIMergeService

Boolean mergeItemsToRoot(Map input, Map output, Map options)

public

XLIMergeServiceXLIMergeService

Boolean mergeItems(List srcListArg, List tgtListArg, Boolean ignoreParentLinkedFlg)

public

XLIMergeServiceXLIMergeService

Boolean mergeRootsInParent(Map input, Map output, Map options)

public

XLIMergeServiceXLIMergeService

Boolean mergeRoots(Map input, Map output, Map options)

public

XLIMergeServiceXLIMergeService

static void renumber(Id parentIdVal, Id rootItemId, String parentLookup, String filterQ, Boolean forceRenumber)

Default Implementations

  • DefaultCPQSubmitFlowImplementationDefaultCPQSubmitFlowImplementation provides sample code that does not invoke the actual CPQ flow.

  • DefaultPricebookDefaultImplementationDefaultPricebookDefaultImplementation defines a default price book ID according to specific logic.

  • The XLIBatchValidationConfiguration implementation configures the batch validation process. It defines the object to validate—Opportunity, Order, or Quote; where to get the data; which validation services to use; and which merge service to execute after validation.

  • The XLIBatchValidationNotificationXLIBatchValidationNotification implementation sends an email message with the validation results to the user who executed the batch validation process.

Other Implementations

  • The ConfigRuleHandler implementation is an internal service class that handles product relationships, which are triggered by Rules.

    Note
    Note

    The ConfigRuleHandler implementation is not documented because it is an internal service class.

  • CPQSubmitFlowImplementationCPQSubmitFlowImplementation uses CPQSubmitFlow, which executes a CPQSubmitAction that creates a quote, order, or asset based on the input object ID and action.

  • EligibilityFlowOpenImplementationEligibilityFlowOpenImplementation uses the Eligibility Rules flow, which executes defined eligibility rules.

  • EligibilityMatrixFlowImplementationEligibilityMatrixFlowImplementation calls the Eligibility Matrix flow, which executes defined eligibility rules.

  • The EntityFilterSupportEntityFilterSupport implementation is a service implementation used to run a set of filters against a set of objects.

  • The OfferingRuleHandler implementation is an internal service class that handles offering procedures triggered by rules.

    Note
    Note

    The OfferingRuleHandler implementation is not documented because it is an internal service class.

  • The PricingCalculationMergeInputService is an internal implementation called by the pricing calculation service.

    Note
    Note

    The PricingCalculationMergeInputService implementation is not documented because it is an internal implementation.

  • The PricingCalculationPostProcessExample implementation is an example class.

  • The PricingCalculationPreProcessExample implementation is an example class.

    Note
    Note

    PricingCalculationPostProcessExample and PricingCalculationPreProcessExample are not documented because they are example classes.

  • The PricingCalculationServiceFlowImpl implementation is an internal-only implementation that supports rules.

  • The PricingInitializationPricingInitialization implementation is a wrapper class to call the default pricing implementation through the custom action in flows.

  • The PricingMatrixCalculationService implementation invokes calculation procedures. This is the default service used in OmniScript for calculation actions.

  • The PricingRuleHandler implementation is an internal service class that handles the pricing procedures that are specified in rules.

    Note
    Note

    The PricingRuleHandler implementation is not documented because it is an internal service class.

  • The ProductRelationshipValidationImplProductRelationshipValidationImpl implementation (deprecated) checks for required or excluded products when a product is added to the cart.

  • The RuleSupportRuleSupport implementation is a service implementation that runs a set of rules against a set of objects, which are defined in the flowMap.

  • The XLIAvailabilityValidationServiceXLIAvailabilityValidationService implementation invokes availability rules to validate opportunity, order, and quote input.

  • TheXLIBatchValidationConfiguration implementation invokes compatibility rules to validate opportunity, order, and quote input.

  • The XLIEligibilityValidationServiceXLIEligibilityValidationService implementation invokes eligibility rules to validate opportunity, order, and quote input.

  • The XLIMergeServiceXLIMergeService implementation merges opportunity, order, and quote line items. It supports mergeRoots, mergeItemsToRoot, mergeFromParent, and mergeRootsInParent.

  • The XLIPricingValidationServiceXLIPricingValidationService invokes pricing rules to validate opportunity, order, and quote input.

Parameters

See individual implementations.

Canonical VlocityOpenInterface

/*
*   Single Generic Interface/method, which is similar to a method table
*/
global interface VlocityOpenInterface {
 public Boolean InvokeMethod(
  String methodName,
  Map<String,Object> input,
  Map<String,Object> output,
  Map<String,Object> options);
}

Sample Implementation

public with sharing class DefaultCustomerDetailsImplementation implements VlocityOpenInterface {
   public Boolean InvokeMethod(
      String methodName,
      Map<String,Object> input,
      Map<String,Object> output,
      Map<String,Object> options) {
      if (methodName.isEquals('getCustomerBalance') {
         // Delegated to another method or a helper class
         return getCustomerBalance(input, output, options);
      } else if (methodName.isEquals('getBillingUsage') {
         return BillingService.getBillingUsage(input, output, options);
         }
      }
   public Boolean getCustomerBalance(input,
      Map<String,Object> output,
      Map<String,Object> options); {
      ...
   }
 
Loading
Salesforce Help | Article