Loading
Leren
Inhoudsopgave
Filters selecteren

          Geen resultaten
          Geen resultaten
          Hier zijn enkele zoektips

          Controleer de spelling van uw trefwoorden.
          Gebruik meer algemene zoektermen.
          Verwijder filters om uw zoekopdracht uit te breiden.

          De Help van Salesforce volledig doorzoeken
          Geavanceerde transactiedetailregelprijzen gebruiken om aangepaste velden toe te wijzen

          Geavanceerde transactiedetailregelprijzen gebruiken om aangepaste velden toe te wijzen

          Gebruikers kunnen aangepaste velden voor verkooptransactie-items of details van verkooptransactie-items bijwerken via prijsstellingsprocedures met behulp van de voorziening Geavanceerde detailregelprijsstelling. Met deze voorziening hoeven gebruikers niet langer aangepaste triggers of stromen te gebruiken om die velden bij te werken. Deze voorziening is handig voor gebruikscases voor wijziging, verlenging en annulering.

          Vereiste editions

          Beschikbaar in: Lightning Experience
          Beschikbaar in: Enterprise, Unlimited en Developer Edition van Revenue Cloud waarin Transactiebeheer is ingeschakeld
          Vereiste gebruikersmachtigingen
          Geavanceerde detailregelprijsstelling instellen en gebruiken:

          Salesforce-beheerder

          EN

          Machtigingenset Design Time-gebruiker voor prijzen

          Voltooi voordat u begint deze taken.

          • Als u de voorziening Geavanceerde detailregelprijsstelling wilt inschakelen, zoekt en selecteert u in Set-up Omzetinstellingen en schakelt u vervolgens de instelling Geavanceerde detailregelprijsstelling in.
          • Configureer uw prijsstellingsprocedure.

          Procedure voor omzetprijzen bijwerken

          Als u geavanceerde detailregelprijsstelling wilt configureren, wijzigt u uw procedure voor omzetprijsstelling.

          1. Zoek en selecteer vanuit de Appstarter Prijsprocedures en selecteer vervolgens een bij te werken prijsprocedure.
          2. Wijzig de prijsstellingsprocedure door een nieuw toewijzingsregelitemelement toe te voegen als het tweede element naast de prijsstelling in de prijsstellingsprocedure.
          3. Voeg contexttagtoewijzingen toe aan het kaartregelitem.

            Invoervariabele

            Uitvoervariabele

            LineItem

            SalesTrxnItemDetailSource

            LineItemQuantity

            ItemDetailQuantity

            NetUnitPrice

            ItemDetailNetUnitPrice

            price_water_fall

            DetailPriceWaterfallIdentifier

            InputUnitPrice

            ItemDetailUnitPrice

            ItemBillingReference

            ItemDetailBillingReference

            ItemNetTotalPrice

            ItemDetailTotalPrice

            TotalLineAmount

            ItemDetailTotalLineAmount

            EffectiveFrom

            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

            Nadat u de toewijzingen van contexttags hebt toegevoegd, ziet u de standaardtoewijzingen tussen SalesTransaction en SalesTransactionItemDetail met bijgewerkte contextdefinities.

          Procedure voor het ontdekken van afgeleide prijzen bijwerken

          Als u afgeleide prijzen gebruikt, brengt u aanvullende wijzigingen aan in uw ontdekkingsprocedure nadat u wijzigingen in uw prijsstellingsprocedure voor omzet hebt voltooid. Deze wijzigingen zijn noodzakelijk om geldige bijdragende en afgeleide producten te bepalen.

          1. Zoek en selecteer vanuit de Appstarter Ontdekkingsprocedures en selecteer vervolgens een ontdekkingsprocedure om bij te werken.
          2. Voeg twee nieuwe elementen toe aan de ontdekkingsprocedure om afgeleide producten te prijzen: Discovery-instellingen en Regelitem toewijzen.
            Voeg deze variabelen toe aan ontdekkingsinstellingen.
            • Invoervariabele: Regelitem
            • Uitvoervariabele: LineItem
            Voeg deze variabelen toe aan het kaartregelitem.
            • Invoervariabele: SalesTransactionItem
            • Uitvoervariabele: SalesTransactionItemDetail

            Voeg deze extra variabelen toe aan het kaartregelitem.

            Invoervariabele

            Uitvoervariabele

            LineItem

            SalesTrxnItemDetailSource

            EffectiveFrom

            ItemDetailEffectiveFrom__std

            EffectiveTo

            ItemDetailEffectiveTo__std

            DerivedPricingAttribute

            ItemDetailDerivedPricingAttribute__std

          3. Ondersteun aangepaste velden door middel van prijsstellingsprocedures voor gebruikscases voor wijzigen, verlengen en annuleren (ARC).
            Set-up van aangepaste velden is van toepassing als u ARC-API's gebruikt en aangepaste velden wilt gebruiken.
            1. Voeg aangepaste velden toe aan de objecten QuoteLineItem, QuoteLineItem Detail, OrderProduct en OrderProductDetails.
            2. Maak in de contextdefinitie een ingang voor deze aangepaste velden in zowel SalesTransactionItem- als SalesTransactionItemDetail-knooppunten.
            3. Maak de vereiste toewijzingen in QuoteEntitiesMapping en OrderEntitiesMapping.
          4. Wijzig de prijsstellingsprocedure voor omzet voor aangepaste velden.
            1. Wijzig het MapLineItem element in de prijsstellingsprocedure om een toewijzing toe te voegen tussen SalesTransactionItem.CustomField en SalesTransactionItemDetail.CustomField.
            2. Maak alle noodzakelijke aanpassingselementen binnen de prijsstellingsprocedure om een waarde toe te wijzen aan SalesTransactionItem.CustomField.

              De prijsstellingsprocedure detecteert automatisch of een specifieke regel detailgegevens heeft en schrijft naar SalesTransactionItemDetail.CustomField als deze bestaan. Anders wordt er geschreven naar SalesTransactionItem.CustomField.

              Tijdens nieuwe verkooptransacties wordt CustomField voor SalesTransactionItem ingevuld. Voor ARC-scenario's met detailregels wordt de detailregel geschreven naar CustomField op SalesTransactionItemDetail. Als er geen detailregels worden gemaakt voor ARC, is de detailregel dat deze wordt geschreven naar CustomField voor SalesTransactionItem.

          5. Als u aangepaste velden wilt schrijven voor QuoteLineItem of OrderProducts met detailregels, voltooit u deze aanvullende set-up met procedureplannen en Apex klassen.
            1. Schakel een procedureplan in. Zoek en selecteer in Set-up Omzetinstellingen en schakel de instelling Afstemming van procedureplan voor prijsstelling in.
            2. Maak een procedureplan voor de offerte en order.
            3. Controleer in het procedureplan of alle stappen het element MapLineItem bevatten. Wijzig de toewijzingen op basis van de velden die worden gebruikt in de prijsstellingsprocedure.
            4. Gebruik dit voorbeeld van ApexCustomFieldHandler Apex klasse, dat u kunt uitbreiden om indien nodig meerdere aangepaste velden bij te werken. Deze klasse voert een query uit op de knooppunten SalesTransactionItem en SalesTransactionItemDetail, extraheert aangepaste veldwaarden uit detailitems en werkt vervolgens de overeenkomende aangepaste velden voor SalesTransactionItem bij.
          Voorbeeld
          Voorbeeld
          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;
              }
          }
          
          Belangrijk
          Belangrijk Als u aangepaste veldgegevens wilt toevoegen aan Periode van activumstatus en Actiebron van activum, maakt u de juiste cross-contexttoewijzingen.
           
          Wordt geladen
          Salesforce Help | Article