Loading

Salesforce CPQ has removed dependency on Quote Line lookups for Assets and Subscriptions

Data pubblicazione: Dec 21, 2023
Descrizione
As of Summer '16, Salesforce CPQ has removed certain dependencies on Quote Line Lookups for Subscription and Asset records, allowing for Renewal/Amendment from legacy data. Previously, certain Quote Line data was pulled from the Asset/Subscription directly, while the rest was pulled from the original Quote Line through a lookup. The values these Quote Line lookups provided are now stored in new fields - with the same data types as the equivalent Quote Line fields - directly on the Subscription or Asset record itself.
Risoluzione

Users generating a Renewal or Amendment can now pull this data from the new Subscription or Asset fields rather than the equivalent Quote Line lookups. As of Summer '16, Salesforce CPQ will attempt to pull data from these Subscription and Asset fields before using the equivalent Quote Line field lookup.

This change in functionality is useful for customers who want to upload asset data (including bundles) from an external system while using Salesforce CPQ amendment functionality to modify bundles, add-ons and upgrades. Pulling asset data from an external system means the generated data will not have quote line lookups. Thus, customers can retrieve the same data from the relevant Asset and Subscription fields.

NOTE: As of Summer '16, this feature only works for:

  • Contract-based Renewals
  • Asset-based Renewals without Subscriptions

 Asset-based Renewals with Subscriptions are still dependent on Quote Line lookups.

Field Equivalency & New Field Tables

Quote Line fields

This table shows Quote Line fields and existing (pre-Summer '16 release) Subscription/Asset fields that pull equivalent data directly from the Subscription/Asset. For all Subscription/Asset fields listed as NEW FIELD, SteelBrick CPQ has created new Subscription/Asset values that will store the equivalent Quote Line field values on the Subscription/Asset record. These fields are listed in the New SubscriptionCLI Fields and New Asset Fields tables below.

Users with legacy data model (pre-Summer '16) Subscription/Asset records should not delete Quote Line references for any Quote Line field with an equivalent Subscription/Asset field listed in this table as NEW FIELD. These Subscription/Asset fields didn't exist before Summer 16, so deleting the equivalent Quote Line lookup will cause the record to lose data and not function.
 

Quote Line FieldSubscription FieldAsset Field
QuoteLine__c.Dimension__cDimension__cDimension__c
QuoteLine__c.BundledQuantity__cNEW FIELDNEW FIELD
QuoteLine__c.OptionLevel__cNEW FIELDNEW FIELD
QuoteLine__c.Bundle__cNEW FIELDNEW FIELD
QuoteLine__c.Bundled__cNEW FIELDNEW FIELD
QuoteLine__c.ProductOption__cNEW FIELDNEW FIELD
QuoteLine__c.OptionDiscount__cNEW FIELDNEW FIELD
QuoteLine__c.OptionType__cNEW FIELDNEW FIELD
QuoteLine__c.Number__cNEW FIELDNEW FIELD
QuoteLine__c.OriginalUnitCost__cOriginalUnitCost__cNEW FIELD
QuoteLine__c.OptionDiscountAmount__cNEW FIELDNEW FIELD
QuoteLine__c.SegmentIndex__cNEW FIELDNEW FIELD
QuoteLine__c.SegmentLabel__cNEW FIELDNEW FIELD
QuoteLine__c.MarkupRate__cMarkupRate__cNEW FIELD
QuoteLine__c.MarkupAmount__cMarkupAmount__cNEW FIELD
QuoteLine__c.UnitCost__cUnitCost__cNEW FIELD
QuoteLine__c.AdditionalDiscountAmount__cAdditionalDiscountAmount__cNEW FIELD
QuoteLine__c.Discount__cDiscount__cNEW FIELD
QuoteLine__c.PricingMethod__cNEW FIELDNEW FIELD
QuoteLine__c.DiscountScheduleType__cNEW FIELDNEW FIELD
QuoteLine__c.PartnerDiscount__cPartnerDiscount__cNEW FIELD
QuoteLine__c.DistributorDiscount__cDistributorDiscount__cNEW FIELD
QuoteLine__c.ListPrice__cListPrice__cNEW FIELD
QuoteLine__c.RegularPrice__cRegularPrice__cNEW FIELD
QuoteLine__c.DiscountSchedule__cNEW FIELDNEW FIELD
QuoteLine__c.TermDiscountSchedule__cNEW FIELDNEW FIELD
QuoteLine__c.DynamicOptionId__cNEW FIELDNEW FIELD
QuoteLine__c.RequiredBy__r.Product__cNEW FIELDNEW FIELD
QuoteLine__c.Quote__cN/AN/A
QuoteLine__c.EndDate__cEndDate__cN/A
QuoteLine__c.Uplift__cSegmentUplift__cN/A
QuoteLine__c.ComponentSubscriptionScope__cNEW FIELDN/A
QuoteLine__c.ProductOption__r.RenewalProductOption__cNEW FIELDN/A
QuoteLine__c.ProductOption__r.RenewalProductOption__r.OptionalSKU__cNEW FIELDN/A
QuoteLine__c.ProductOption__r.RenewalProductOption__r.OptionalSKU__r.SubscriptionPricing__cNEW FIELDN/A
QuoteLine__c.Product__cProduct__cProduct2Id
QuoteLine__c.Quantity__c,Quantity__cQuantity
QuoteLine__c.RequiredBy__cRequiredById__c (this is a Sub/Asset, not a QL)RequiredById__c / RequiredBySubscription__c / RequiredByAsset__c
QuoteLine__c.SegmentKey__cSegmentKey__cSegmentKey__c

 

New SubscriptionCLI Fields

Source FieldTypeDestination Field
QuoteLine__c.BundledQuantity__cNumber(10, 2)BundledQuantity__c (Original Quantity)
QuoteLine__c.OptionLevel__cNumber(5, 0)OptionLevel__c
QuoteLine__c.Bundle__cCheckboxBundle__c
QuoteLine__c.Bundled__cCheckboxBundled__c (Package)
QuoteLine__c.ProductOption__cLookup(Product Option)ProductOption__c
QuoteLine__c.OptionDiscount__cPercent(3, 2)OptionDiscount__c (Option Discount (%))
QuoteLine__c.OptionType__cPicklistOptionType__c
QuoteLine__c.Number__cNumber(5, 0)Number__c
QuoteLine__c.OptionDiscountAmount__cCurrency(10, 2)OptionDiscountAmount__c (Option Discount (Amt))
QuoteLine__c.SegmentIndex__cNumber(2, 0)SegmentIndex__c
QuoteLine__c.SegmentLabel__cText(25)SegmentLabel__c
QuoteLine__c.PricingMethod__cPicklistPricingMethod__c
QuoteLine__c.DiscountScheduleType__cPicklistDiscountScheduleType__c
QuoteLine__c.ComponentSubscriptionScope__cPicklistComponentSubscriptionScope__c (Component Percent of Total Scope)
QuoteLine__c.DiscountSchedule__cLookup(Discount Schedule)DiscountSchedule__c
QuoteLine__c.TermDiscountSchedule__cLookup(Discount Schedule)TermDiscountSchedule__c
QuoteLine__c.DynamicOptionId__cText(40)DynamicOptionId__c
QuoteLine__c.RequiredBy__r.Product__cLookup(Product)RequiredByProduct__c (Parent Product)
QuoteLine__c.ProductOption__r.RenewalProductOption__cFormula(Text)RenewalProductOptionId__c
QuoteLine__c.ProductOption__r.RenewalProductOption__r.OptionalSKU__cFormula(Text)RenewalProductOptionProductId__c
QuoteLine__c.ProductOption__r.RenewalProductOption__r.OptionalSKU__r.SubscriptionPricing__cFormula(Text)RenewalProductOptionSubscriptionPricing__c
QuoteLine__c.Dimension__r.Type__cFormula(Text)DimensionType__c
QuoteLine__c.ComponentDiscountedByPackage__cCheckboxComponentDiscountedByPackage__c

New Asset Fields

Source FieldTypeDestination Field
QuoteLine__c.BundledQuantity__cNumber(10, 2)BundledQuantity__c (Original Quantity)
QuoteLine__c.OptionLevel__cNumber(5, 0)OptionLevel__c
QuoteLine__c.Bundle__cCheckboxBundle__c
QuoteLine__c.Bundled__cCheckboxBundled__c (Package)
QuoteLine__c.ProductOption__cLookup(Product Option)ProductOption__c
QuoteLine__c.OptionDiscount__cPercent(3, 2)OptionDiscount__c (Option Discount (%))
QuoteLine__c.OptionType__cPicklistOptionType__c
QuoteLine__c.Number__cNumber(5, 0)Number__c
QuoteLine__c.OriginalUnitCost__cCurrency(14,2)OriginalUnitCost__c
QuoteLine__c.OptionDiscountAmount__cCurrency(10, 2)OptionDiscountAmount__c (Option Discount (Amt))
QuoteLine__c.SegmentIndex__cNumber(2, 0)SegmentIndex__c
QuoteLine__c.SegmentLabel__cText(25)SegmentLabel__c
QuoteLine__c.MarkupRate__cPercent(6,2)MarkupRate__c (Markup (%))
QuoteLine__c.MarkupAmount__cCurrency(14,2)MarkupAmount__c (Markup (Amt))
QuoteLine__c.UnitCost__cCurrency(14,2)UnitCost__c
QuoteLine__c.AdditionalDiscountAmount__cCurrency(12,2)AdditionalDiscountAmount__c (Additional Disc. (Amt))
QuoteLine__c.Discount__cPercent(9,2)Discount__c (Additional Disc. (%))
QuoteLine__c.PricingMethod__cPicklistPricingMethod__c
QuoteLine__c.DiscountScheduleType__cPicklistDiscountScheduleType__c
QuoteLine__c.PartnerDiscount__cPercent(3,2)PartnerDiscount__c
QuoteLine__c.DistributorDiscount__cPercent(3,2)DistributorDiscount__c
QuoteLine__c.ListPrice__cCurrency(12,2)ListPrice__c
QuoteLine__c.RegularPrice__cCurrency(12,2)RegularPrice__c
QuoteLine__c.DiscountSchedule__cLookup(Discount Schedule)DiscountSchedule__c
QuoteLine__c.TermDiscountSchedule__cLookup(Discount Schedule)TermDiscountSchedule__c
QuoteLine__c.DynamicOptionId__cText(40)DynamicOptionId__c
QuoteLine__c.RequiredBy__r.Product__cLookup(Product)RequiredByProduct__c (Parent Product)
QuoteLine__c.Dimension__r.Type__cFormula(Text)DimensionType__c
QuoteLine__c.ComponentDiscountedByPackage__cCheckboxComponentDiscountedByPackage__c

Legacy User and Legacy Data

When Salesforce CPQ performs an amendment or renewal, it now looks at the Asset/Subscription's Number field, which was created after the Quote Line Lookup data model change. If this field is populated, Salesforce CPQ will pull quote line data from the Asset or Subscription record. If the Number field is not populated, Salesforce CPQ assumes the Quote Line was created before the data model change and will pull data from the original Quote Line. Thus, records built using the legacy data model will still function normally.

NOTE: If you want to use these new fields to recreate Quote Lines, you should first set up the same Product in your Salesforce CPQ org and contract it to see the Asset/Subscription record fields that are automatically populated. These will be the minimum fields will be required to recreate the Quote Line if there is no original Quote Line.

   
Numero articolo Knowledge

000383096

 
Caricamento
Salesforce Help | Article