Loading
Lär
Innehållsförteckningar
Välj filter

          Inga resultat
          Inga resultat
          Här är några söktips

          Kontrollera stavningen av dina nyckelord.
          Använd mer allmänna söktermer.
          Välj färre filter för att utöka din sökning.

          Sök hela Salesforce-hjälpen
          Använd avancerad transaktionsdetaljprissättning för att mappa egna fält

          Använd avancerad transaktionsdetaljprissättning för att mappa egna fält

          Användare kan uppdatera egna fält i försäljningstransaktionsobjekt eller försäljningstransaktionsobjektdetaljer genom prissättningsprocesser genom att använda funktionen Avancerad detaljradprissättning. Med denna funktion behöver användare inte längre använda egna utlösare eller flöden för att uppdatera dessa fält. Denna funktion är användbar för användningsfall för ändring, förnyelse och annullering.

          Versioner som krävs

          Tillgängliga i: Lightning Experience
          Tillgängliga i: Enterprise, Unlimited och Developer Editions av Revenue Cloud där transaktionshantering är aktiverat
          Användarbehörigheter som krävs
          Konfigurera och använda avancerad detaljlinjeprissättning:

          Salesforce-administratör

          OCH

          Behörighetsuppsättningen Användare av prissättningsdesigntid

          Innan du börjar, utför dessa uppgifter.

          • För att slå på funktionen Avancerad detaljradprissättning: i Inställningar, hitta och välj Intäktsinställningar och slå sedan på inställningen Avancerad detaljradprissättning.
          • Konfigurera din prissättningsprocess.

          Uppdatera prissättningsförfarande för intäkter

          För att konfigurera avancerad detaljprissättning, ändra din intäktsprissättningsprocess.

          1. Sök fram och öppna Prissättningsprocesser i Appstartaren och välj sedan en prissättningsprocess att uppdatera.
          2. Ändra prissättningsförfarandet genom att lägga till ett nytt kartradartikelelement som det andra elementet bredvid prissättningsinställningen i prissättningsförfarandet.
          3. Lägg till mappningar av sammanhangstaggar i kartradartikeln.

            Indatavariabel

            Utdatavariabel

            LineItem

            SalesTrxnItemDetailSource

            LineItemQuantity

            ItemDetailQuantity

            NetUnitPrice

            ItemDetailNetUnitPrice

            price_water_fall

            DetailPriceWaterfallIdentifier

            InputUnitPrice

            ItemDetailUnitPrice

            ItemBillingReference

            ItemDetailBillingReference

            ItemNetTotalPrice

            ItemDetailTotalPrice

            Total radbelopp

            ItemDetailTotalLineAmount

            Gällerfrån

            ItemDetailEffectiveFrom__std

            EffectiveTo

            ItemDetailEffectiveTo__std

            PricingTermCount

            ItemDetailPricingTermCount__std

            itemTransientEndDate

            ItemDetailTransientEndDate__std

            ItemPricingSource

            ItemDetailPricingSource__std

            DerivedPricingAttribute

            ItemDetailDerivedPricingAttribute__std

            ItemGroupSummarySubtotal

            ItemDetailGroupSummaryTotal__std

            ListPrice

            ItemDetailListPrice__std

            IsContracted

            ItemDetailIsContracted__std

            ItemContractPrice

            ItemDetailContractPrice__std

            STI_TenantName__c

            STID_TenantName__c

            När du har lagt till mappningarna för sammanhangstaggar ser du standardmappningarna mellan SalesTransaction och SalesTransactionItemDetail med uppdaterade sammanhangsdefinitioner.

          Uppdatera Discovery-procedur för härledd prissättning

          Om du använder deriverad prissättning, gör ytterligare ändringar av din upptäcktsprocess efter att du har slutfört ändringarna av din intäktsprissättningsprocess. Dessa ändringar är nödvändiga för att avgöra giltiga bidragande och härledda produkter.

          1. Sök fram och öppna Upptäcksprocesser i Appstartaren och välj sedan en upptäcksprocess att uppdatera.
          2. Lägg till två nya element i upptäcktsförfarandet för prisderiverade produkter: Discovery-inställningar och kartradartikel.
            Lägg till dessa variabler i upptäcktsinställningar.
            • Indatavariabel: Radartikel
            • Utdatavariabel: LineItem
            Lägg till dessa variabler i kartradartikeln.
            • Indatavariabel: SalesTransactionItem
            • Utdatavariabel: SalesTransactionItemDetail

            Lägg till dessa ytterligare variabler i kartradartikeln.

            Indatavariabel

            Utdatavariabel

            LineItem

            SalesTrxnItemDetailSource

            Gällerfrån

            ItemDetailEffectiveFrom__std

            EffectiveTo

            ItemDetailEffectiveTo__std

            DerivedPricingAttribute

            ItemDetailDerivedPricingAttribute__std

          3. Stöd för egna fält genom att använda prissättningsprocesser för användningsfall för att ändra, förnya och annullera (ARC).
            Konfiguration av egna fält gäller om du använder ARC API och vill använda egna fält.
            1. Lägg till egna fält i objekten QuoteLineItem, QuoteLineItem Detail, OrderProduct och OrderProductDetails.
            2. I sammanhangsdefinitionen, skapa en post för dessa egna fält i både SalesTransactionItem- och SalesTransactionItemDetail-noderna.
            3. Skapa de mappningar som behövs i QuoteEntitiesMapping och OrderEntitiesMapping.
          4. Ändra prissättningsförfarandet för intäkter för egna fält.
            1. I prissättningsförfarandet, ändra MapLineItem-elementet för att lägga till en mappning mellan SalesTransactionItem.CustomField och SalesTransactionItemDetail.CustomField.
            2. Skapa de anpassningselement som behövs inom prissättningsförfarandet för att tilldela ett värde till SalesTransactionItem.CustomField.

              Prissättningsförfarandet upptäcker automatiskt om en specifik rad har detaljposter och skriver till SalesTransactionItemDetail.CustomField om de finns. Annars skriver den till SalesTransactionItem.CustomField.

              Under nya försäljningstransaktioner fylls CustomField i SalesTransactionItem. För ARC-scenarion med detaljlinjer skrivs detaljlinjen till CustomField i SalesTransactionItemDetail. Om inga detaljlinjer skapas för ARC är detaljlinjen den skriven till CustomField på SalesTransactionItem.

          5. För att skriva egna fält i QuoteLineItem eller OrderProducts med detaljlinjer, utför denna ytterligare konfiguration som involverar procedurplaner och Apex klasser.
            1. Aktivera en procedurplan. I Inställningar, hitta och välj Intäktsinställningar och slå på inställningen Orkestrering av processplan för prissättning.
            2. Skapa en procedurplan för offerten och ordern.
            3. I förfarandeplanen, kontrollera att alla steg inkluderar elementet MapLineItem. Ändra mappningarna baserat på de fält som används i prissättningsförfarandet.
            4. Använd detta ApexCustomFieldHandler Apex klassexempel, som du kan utöka för att uppdatera flera egna fält om det behövs. Denna klass frågar SalesTransactionItem och SalesTransactionItemDetail-noder, extraherar egna fältvärden från detaljobjekt och uppdaterar sedan motsvarande egna fält i SalesTransactionItem.
          Exempel
          Exempel
          global class ApexCustomFieldHandler implements RevSignaling.SignalingApexProcessor {
          
              public virtual class BaseException extends Exception {}
              public class OtherException extends BaseException {}
              
              public RevSignaling.TransactionResponse execute(RevSignaling.TransactionRequest request) {
                  
                  String contextId = request.ctxInstanceId;
                  Context.IndustriesContext industriesContext = new Context.IndustriesContext();
                  
          
                  // STEP 2 - Query SalesTransactionItem nodes
                  Map<String, Object> inputQueryItem = new Map<String, Object>{
                      'contextId' => contextId,
                      'tags' => new List<String>{ 'SalesTransactionItem', 'SalesTransactionItemDetail' }
                  };
                  Map<String, Object> itemQueryOutput = industriesContext.queryTags(inputQueryItem);
                  Map<String, Object> itemQueryResult = (Map<String, Object>) itemQueryOutput.get('queryResult');
                  List<Object> itemData = (List<Object>) itemQueryResult.get('SalesTransactionItem');
                  List<Object> itemDetailData = (List<Object>) itemQueryResult.get('SalesTransactionItemDetail');
          
          
                  Map<String, String> salesTransactionItemIdToCustomAggregatedValue = new Map<String, String>();
                  
                  // STEP 3 - Custom Field Value from SalesTransactionItemDetail
                  for(Object itemDetailObj : itemDetailData) {
                      Map<String, Object> itemDetailNode = (Map<String, Object>) itemDetailObj;
                      Map<String, Object> detailTagMap = (Map<String, Object>) itemDetailNode.get('tagValue');
                      
                      String lineItemId = (String)((Map<String, Object>) detailTagMap.get('SalesTrxnItemDetailParent')).get('tagValue');
                      String cfValue = (String)((Map<String, Object>) detailTagMap.get('STID_TenantName__c')).get('tagValue');
                      
                      System.debug('Custom Field Value for Detail Item' + cfValue);
                      if(cfValue != null) {
                          salesTransactionItemIdToCustomAggregatedValue.put(lineItemId, cfValue);
                      }
                  }
          
          
                  // STEP 4 - Build update list
                  List<Map<String, Object>> itemNodeUpdates = new List<Map<String, Object>>();
          
                  for (Object itemObj : itemData) {
                      Map<String, Object> itemNode = (Map<String, Object>) itemObj;
                      Map<String, Object> tagMap = (Map<String, Object>) itemNode.get('tagValue');
                      
                      String lineItemId = (String)((Map<String, Object>) tagMap.get('LineItem')).get('tagValue');
                      
                      List<Object> dataPath = (List<Object>) itemNode.get('dataPath');
          
                      dataPath.remove(0); // Remove contextId
          
                      itemNodeUpdates.add(new Map<String, Object>{
                          'nodePath' => new Map<String, Object>{ 'dataPath' => dataPath },
                          'attributes' => new List<Object>{
                              new Map<String, Object>{
                                  'attributeName' => 'STI_TenantName__c',
                                  'attributeValue' => salesTransactionItemIdToCustomAggregatedValue.get(lineItemId)
                              }
                          }
                      });
                  }
          
                  // STEP 5 - Create collection context update
                  if (!itemNodeUpdates.isEmpty()) {
                      Map<String, Object> updateInput = new Map<String, Object>{
                          'contextId' => contextId,
                          'nodePathAndAttributes' => itemNodeUpdates
                      };
                      
                      //Step 6 - Update context
                      System.debug('--- PREHOOK: SUBMITTING CONTEXT UPDATE ---');
                      System.debug(JSON.serializePretty(updateInput));
                      industriesContext.updateContextAttributes(updateInput);
                  }
          
                  RevSignaling.TransactionResponse response = new RevSignaling.TransactionResponse();
                  response.status = RevSignaling.TransactionStatus.SUCCESS;
                  return response;
              }
          }
          
          Viktig
          Viktig För att lägga till egen fältinformation i Tillgångstillståndsperiod och Tillgångsåtgärdskälla, skapa lämpliga korssammanhangsmappningar.
           
          Laddar
          Salesforce Help | Article