Loading
Lernen
Inhalt
Filter auswählen

          Keine Ergebnisse
          Keine Ergebnisse
          Hier sind einige Suchtipps

          Überprüfen Sie die Schreibweise Ihrer Stichwörter.
          Verwenden Sie allgemeinere Suchbegriffe.
          Wählen Sie weniger Filter aus, um Ihre Suche auszuweiten.

          Gesamte Salesforce-Hilfe durchsuchen
          Zuordnen von benutzerdefinierten Feldern mithilfe der erweiterten Transaktionsdetailseitenpreise

          Zuordnen von benutzerdefinierten Feldern mithilfe der erweiterten Transaktionsdetailseitenpreise

          Benutzer können benutzerdefinierte Felder für Vertriebstransaktionselemente oder Details zu Vertriebstransaktionselementen über Preisgestaltungsverfahren mithilfe der Funktion "Erweiterte Detailbelegpostenpreise" aktualisieren. Mit dieser Funktion müssen Benutzer keine benutzerdefinierten Auslöser oder Flows mehr verwenden, um diese Felder zu aktualisieren. Diese Funktion ist für Anwendungsfälle zur Änderung, Verlängerung und Stornierung nützlich.

          Erforderliche Editionen

          Verfügbarkeit: Lightning Experience
          Verfügbarkeit: Enterprise, Unlimited und Developer Edition von Revenue Cloud mit aktivierter Transaktionsverwaltung
          Erforderliche Benutzerberechtigungen
          Einrichten und Verwenden der erweiterten Detailbelegpostenpreise:

          Salesforce-Administrator

          UND

          Berechtigungssatz "Preisgestaltungszeitbenutzer"

          Führen Sie zunächst die folgenden Aufgaben aus.

          • Wenn Sie die Funktion "Erweiterte Detailbelegpostenpreise" aktivieren möchten, suchen Sie unter "Setup" nach Umsatzeinstellungen, wählen Sie diese Option aus und aktivieren Sie dann die Einstellung "Erweiterte Detailbelegpostenpreise".
          • Konfigurieren Sie Ihr Preisgestaltungsverfahren.

          Aktualisieren des Umsatzpreisverfahrens

          Ändern Sie zum Konfigurieren der erweiterten Detailbelegpostenpreise Ihr Umsatzpreisverfahren.

          1. Suchen Sie im App Launcher nach Preisgestaltungsverfahren, wählen Sie diese Option aus und wählen Sie dann ein Preisgestaltungsverfahren aus, das aktualisiert werden soll.
          2. Ändern Sie das Preisgestaltungsverfahren, indem Sie ein neues Kartenbelegposten-Element als zweites Element neben der Preiseinstellung im Preisgestaltungsverfahren hinzufügen.
          3. Fügen Sie dem Kartenbelegposten Kontext-Tag-Zuordnungen hinzu.

            Eingabevariable

            Ausgabevariable

            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

            Nach dem Hinzufügen der Kontext-Tag-Zuordnungen werden die Standardzuordnungen zwischen SalesTransaction und SalesTransactionItemDetail mit aktualisierten Kontextdefinitionen angezeigt.

          Aktualisieren des abgeleiteten Preiserkennungsverfahrens

          Wenn Sie abgeleitete Preise verwenden, nehmen Sie nach Abschluss der Änderungen an Ihrem Umsatzpreisverfahren zusätzliche Änderungen an Ihrem Discovery-Verfahren vor. Diese Änderungen sind erforderlich, um gültige beitragende und abgeleitete Produkte zu bestimmen.

          1. Suchen Sie im App Launcher nach Erkennungsverfahren, wählen Sie diese Option aus und wählen Sie dann ein zu aktualisierendes Erkundungsverfahren aus.
          2. Fügen Sie dem Discovery-Verfahren zwei neue Elemente zum Preis abgeleiteter Produkte hinzu: Discovery-Einstellungen und Kartenbelegposten.
            Fügen Sie diese Variablen den Discovery-Einstellungen hinzu.
            • Eingabevariable: Belegposten
            • Ausgabevariable: LineItem
            Fügen Sie dem Kartenbelegposten diese Variablen hinzu.
            • Eingabevariable: SalesTransactionItem
            • Ausgabevariable: SalesTransactionItemDetail

            Fügen Sie dem Kartenbelegposten diese zusätzlichen Variablen hinzu.

            Eingabevariable

            Ausgabevariable

            LineItem

            SalesTrxnItemDetailSource

            EffectiveFrom

            ItemDetailEffectiveFrom__std

            EffectiveTo

            ItemDetailEffectiveTo__std

            DerivedPricingAttribute

            ItemDetailDerivedPricingAttribute__std

          3. Unterstützen Sie benutzerdefinierte Felder, indem Sie Preisgestaltungsverfahren für Änderungs-, Verlängerungs- und Stornierungsanwendungsfälle verwenden.
            Das Setup für benutzerdefinierte Felder ist anwendbar, wenn Sie ARC-APIs verwenden und benutzerdefinierte Felder verwenden möchten.
            1. Fügen Sie den Objekten "QuoteLineItem", "QuoteLineItem Detail", "OrderProduct" und "OrderProductDetails" benutzerdefinierte Felder hinzu.
            2. Erstellen Sie in der Kontextdefinition einen Eintrag für diese benutzerdefinierten Felder in den Knoten SalesTransactionItem und SalesTransactionItemDetail.
            3. Erstellen Sie die erforderlichen Zuordnungen in QuoteEntitiesMapping und OrderEntitiesMapping.
          4. Ändern Sie das Umsatzpreisgestaltungsverfahren für benutzerdefinierte Felder.
            1. Ändern Sie das MapLineItem-Element im Preisgestaltungsverfahren, um eine Zuordnung zwischen SalesTransactionItem.CustomField und SalesTransactionItemDetail.CustomField hinzuzufügen.
            2. Erstellen Sie alle erforderlichen Anpassungselemente im Rahmen des Preisgestaltungsverfahrens, um SalesTransactionItem.CustomField einen Wert zuzuweisen.

              Das Preisgestaltungsverfahren erkennt automatisch, ob ein bestimmter Belegposten Detaileinträge aufweist, und schreibt in SalesTransactionItemDetail.CustomField, sofern vorhanden. Andernfalls wird in SalesTransactionItem.CustomField geschrieben.

              Bei neuen Verkaufstransaktionen wird CustomField für SalesTransactionItem ausgefüllt. Bei ARC-Szenarien mit Detailzeilen wird die Detailzeile in "CustomField" in SalesTransactionItemDetail geschrieben. Wenn keine Detailzeilen für das Center für handlungsrelevante Beziehungen erstellt werden, wird die Detailzeile in CustomField auf SalesTransactionItem geschrieben.

          5. Wenn Sie benutzerdefinierte Felder in "QuoteLineItem" oder "OrderProducts" mit Detailzeilen schreiben möchten, führen Sie diese zusätzliche Einrichtung mit Verfahrensplänen und Apex Klassen aus.
            1. Aktivieren Sie einen Verfahrensplan. Suchen Sie unter "Setup" nach Umsatzeinstellungen, wählen Sie diese Option aus und aktivieren Sie die Einstellung "Verfahrensplanorchestrierung für Preise".
            2. Erstellen Sie einen Verfahrensplan für das Angebot und den Auftrag.
            3. Überprüfen Sie im Verfahrensplan, ob alle Schritte das Element MapLineItem enthalten. Ändern Sie die Zuordnungen anhand der im Preisgestaltungsverfahren verwendeten Felder.
            4. Verwenden Sie dieses Apex-Klassenbeispiel für Apex CustomFieldHandler, das Sie bei Bedarf erweitern können, um mehrere benutzerdefinierte Felder zu aktualisieren. Diese Klasse fragt die Knoten SalesTransactionItem und SalesTransactionItemDetail ab, extrahiert benutzerdefinierte Feldwerte aus Detailelementen und aktualisiert dann die entsprechenden benutzerdefinierten Felder in SalesTransactionItem.
          Beispiel
          Beispiel
          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;
              }
          }
          
          Wichtig
          Wichtig Erstellen Sie geeignete kontextübergreifende Zuordnungen, um dem Vermögenswert-Lebenszyklus und der Vermögenswert-Aktionsquelle benutzerdefinierte Feldinformationen hinzuzufügen.
           
          Laden
          Salesforce Help | Article