Loading
Salesforce now sends email only from verified domains. Read More
Get Started with Communications, Media, and Energy & Utilities (CME)...
Table of Contents
Select Filters

          No results
          No results
          Here are some search tips

          Check the spelling of your keywords.
          Use more general search terms.
          Select fewer filters to broaden your search.

          Search all of Salesforce Help
          Customize the MarginRangeLoader Interface Implementation

          Customize the MarginRangeLoader Interface Implementation

          If you do not want to use a Vlocity calculation procedure to calculate your margin ranges, you can create a new one, name it in the pricing plan step, and build custom logic to load the margin range.

          Note
          Note

          This step is optional. Skip it if you want to use Salesforce's default MarginRangeLoader interface implementation.

          Name

          Properties

          Interface Name

          MarginRangeLoader

          Active Implementation Class

          DefaultMarginRangeLoaderImplementation

          Purpose

          Introduced in the Winter '19 release, this interface implementation loads the margin range data from a Vlocity calculation procedure and returns the data in an output map. You can pass the calculation procedure name, loadMarginRange, through the pricing plan step.

          1. Specify your input and output parameters.

            Input /Output Data Key

            Data Type

            Description

            Input Parameters

            parent

            sObject

            For order, opportunity, or quote

            lineItemList

            List<sObject>

            For orderItem, opportunityLineItem, or quoteLineItem

            Output Parameters

            matrix Output

            Map <Id, Map<String, Decimal>

            ID is lineItemID

            For line item id, you need to pass the Map<String, Decimal> map. The following keys are expected:

            • One Time Margin Lower Bound

            • One Time Margin Upper Bound

            • Recurring Margin Lower Bound

            • Recurring Margin Upper Bound

          2. Use the following sample code to customize the margin range interface implementation.
            global class SampleMarginRangeLoaderImplementation implements vlocity_cmt.VlocityOpenInterface
            {
                global Boolean invokeMethod(String methodName, Map<String, Object> input, Map<String, Object> output,
                                            Map<String, Object> options)
                {
                    if (methodName.equals('loadMarginRanges'))
                    {
                        loadMarginRanges(input, output, options);
                        return true;
                    }
                    return false;
                }
             
                private void loadMarginRanges(Map<String, Object> input, Map<String, Object> output,
                                              Map<String, Object> options)
                {
                    //write your own logic
                }
            }
           
          Loading
          Salesforce Help | Article