Loading
Lær
Innhold
Velg filtre

          Ingen resultater
          Ingen resultater
          Her er noen søketips

          Kontroller stavemåten i søkeordene.
          Bruk mer generelle søkebegreper.
          Velg færre filtre for å utvide søket.

          Søk i all Salesforce Hjelp
          Bruke avanserte transaksjonsdetaljlinjepriser til å tilordne tilpassede felt

          Bruke avanserte transaksjonsdetaljlinjepriser til å tilordne tilpassede felt

          Brukere kan oppdatere tilpassede felt i salgstransaksjonselementer eller salgstransaksjonselementdetaljer via prisprosedyrer ved å bruke funksjonen Avansert detaljlinjeprising. Med denne funksjonen trenger ikke brukere lenger å bruke tilpassede utløsere eller flyter til å oppdatere disse feltene. Denne funksjonen er nyttig for brukstilfeller med endring, fornyelse og kansellering.

          Nødvendige utgaver

          Tilgjengelig i Lightning Experience
          Tilgjengelig i Enterprise, Unlimited og Developer Edition i Revenue Cloud der Transaksjonsbehandling er aktivert
          Nødvendig brukertillatelse
          For å konfigurere og bruke avansert detaljlinjeprising:

          Salesforce-administrator

          OG

          Tillatelsessettet Prisutformingstidsbruker

          Utfør disse oppgavene før du begynner.

          • Hvis du vil slå på funksjonen Avansert pris på detaljlinjer, finner og velger du innstillinger for omsetning i Oppsett, og deretter slår du på innstillingen Avansert pris på detaljlinjer.
          • Konfigurer din prisprosedyre.

          Oppdatere omsetningsprisprosedyre

          Endre omsetningsprisprosedyren for å konfigurere avanserte detaljlinjepriser.

          1. Finn og velg Prisprosedyrer fra Appstarter, og velg deretter en prisprosedyre som skal oppdateres.
          2. Endre prisprosedyren ved å legge til et nytt kartlinjeelement som det andre elementet ved siden av prisinnstillingen i prisprosedyren.
          3. Legg til kontekstkodenettilordninger i kartlinjeelementet.

            Inndatavariabel

            Utdatavariabel

            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

            ItemGroupSummaryUndertotal

            ItemDetailGroupSummaryTotal__std

            ListPrice (Listepris)

            ItemDetailListPrice__std

            IsContracted (Erkontraktert)

            ItemDetailIsContracted__std

            ItemContractPrice

            ItemDetailContractPrice__std

            STI_TenantName__c

            STID_TenantName__c

            Når du har lagt til kontekstkodenes tilordninger, ser du standardtilordningene mellom SalesTransaction og SalesTransactionItemDetail med oppdaterte kontekstdefinisjoner.

          Oppdatere oppdagelsesprosedyre for utledede priser

          Hvis du bruker utledet pris, gjør du flere endringer i oppdagelsesprosedyren etter å ha fullført endringer i omsetningsprisprosedyren. Disse endringene er nødvendige for å bestemme gyldige bidrags- og utledede produkter.

          1. Finn og velg Oppdagelsesprosedyrer fra Appstarter, og velg deretter en oppdagelsesprosedyre som skal oppdateres.
          2. Legg til to nye elementer i oppdagelsesprosedyren for prisutledede produkter: Innstillinger for oppdagelse og Tilordningslinjeelement.
            Legg til disse variablene i oppdagelsesinnstillinger.
            • Inndatavariabel: Linjeelement
            • Utdatavariabel: LineItem
            Legg til disse variablene i kartlinjeelementet.
            • Inndatavariabel: SalesTransactionItem
            • Utdatavariabel: SalesTransactionItemDetail

            Legg til disse ekstra variablene i kartlinjeelementet.

            Inndatavariabel

            Utdatavariabel

            LineItem

            SalesTrxnItemDetailSource

            EffectiveFrom

            ItemDetailEffectiveFrom__std

            EffectiveTo

            ItemDetailEffectiveTo__std

            DerivedPricingAttribute

            ItemDetailDerivedPricingAttribute__std

          3. Støtt tilpassede felt ved å bruke prisprosedyrer for brukstilfeller med endring, fornyelse og kansellering (ARC).
            Tilpasset feltoppsett gjelder hvis du bruker ARC API-er og vil bruke tilpassede felt.
            1. Legg til tilpassede felt i objektene QuoteLineItem, QuoteLineItem Detail, OrderProduct og OrderProductDetails.
            2. I kontekstdefinisjonen oppretter du en oppføring for disse tilpassede feltene i både SalesTransactionItem- og SalesTransactionItemDetail-nodene.
            3. Opprett de nødvendige tilordningene i QuoteEntitiesMapping og OrderEntitiesMapping.
          4. Endre omsetningsprisprosedyren for tilpassede felt.
            1. I prisprosedyren endrer du MapLineItem-elementet for å legge til en tilordning mellom SalesTransactionItem.CustomField og SalesTransactionItemDetail.CustomField.
            2. Opprett eventuelle nødvendige tilpassingselementer i prisprosedyren for å tildele en verdi til SalesTransactionItem.CustomField.

              Prisprosedyren oppdager automatisk om en bestemt linje har detaljoppføringer, og skriver til SalesTransactionItemDetail.CustomField hvis de finnes. Ellers skriver den til SalesTransactionItem.CustomField.

              Ved nye salgstransaksjoner fylles CustomField på SalesTransactionItem ut. Når det gjelder ARC-scenarier med detaljlinjer, skrives detaljlinjen til CustomField i SalesTransactionItemDetail. Hvis ingen detaljlinjer opprettes for ARC, er detaljlinjen den som skrives til CustomField på SalesTransactionItem.

          5. Hvis du vil skrive tilpassede felt på QuoteLineItem eller OrderProducts med detaljlinjer, utfører du dette ekstra oppsettet som involverer prosedyreplaner og Apex.
            1. Aktiver en prosedyreplan. Finn og velg omsetningsinnstillinger under Oppsett, og slå på innstillingen Prosedyreplanorkestrering for pris.
            2. Opprett en prosedyreplan for tilbudet og bestillingen.
            3. I prosedyreplanen kontrollerer du at alle trinn inkluderer MapLineItem-elementet. Endre tilordningene basert på feltene som brukes i prisprosedyren.
            4. Bruk dette ApexCustomFieldHandler Apex-klasseeksempelet, som du kan forbedre for å oppdatere flere tilpassede felt hvis det er nødvendig. Denne klassen spør SalesTransactionItem- og SalesTransactionItemDetail-nodene, trekker ut tilpassede feltverdier fra detaljelementer, og oppdaterer deretter de tilsvarende tilpassede feltene i SalesTransactionItem.
          Eksempel
          Eksempel
          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 Hvis du vil legge til informasjon om tilpassede felt i Aktivumtilstandsperiode og Aktivumhandlingskilde, oppretter du riktige konteksttilordninger.
           
          Laster
          Salesforce Help | Article