Loading
Automatiser dine forretningsprocesser
Indhold
Vælg filtre

          Ingen resultater
          Ingen resultater
          Her er nogle søgetips

          Kontroller stavemåden for dine søgeord.
          Brug mere generelle søgeudtryk.
          Vælg færre filtre for at gøre søgningen bredere.

          Søg efter alle i Hjælp til Salesforce
          Eksempel på massebehandling af registreringer for at undgå CPU-begrænsninger

          Eksempel på massebehandling af registreringer for at undgå CPU-begrænsninger

          Lær, hvordan du omstrukturerer forløb for at bruge massebehandlingsmønstre, der forhindrer Apex_CPU_TIME_LIMIT_EXCEEDED-fejl. Dette eksempel viser forskellen mellem ineffektivt og optimeret forløbsdesign.

          EditionsHeading

          Vis understøttede versioner.
          Brugertilladelser påkrævet
          Hvis du vil åbne, redigere, oprette, aktivere eller deaktivere et forløb ved brug af alle forløbstyper, elementer og funktioner, der er tilgængelige i Flow Builder, herunder Einstein og Agentforce for Flow: Administrer forløb

          Dette eksempel viser, hvordan du transformerer et forløb, der udfører DML (Data Manipulation Language) i en løkke, til et massebehandlet forløb, der behandler registreringer effektivt. Få vist en før-og-efter-sammenligning, og få kendskab til principperne for forløbsmassificering.

          Scenarie

          Opbyg et registreringsudløst forløb, der kører, når en salgsmulighed lukkes. For hver lukket-vundet salgsmulighed opretter forløbet en opfølgningsopgave for hvert medlem af salgsmulighedsteamet. Forløbet:

          • Henter alle salgsmulighedsteammedlemmer.
          • Opretter en opgave, der er tildelt til hvert teammedlem.
          • Fungerer effektivt, selv når brugere opdaterer flere salgsmuligheder på en gang.
          • Undgår Apex_CPU_TIME_LIMIT_EXCEEDED fejl under massehandlinger.

          Salesforce håndhæver en enkelt CPU-tidsgrænse på 10.000 millisekunder (10 sekunder) pr. synkron transaktion. Hvert stykke automatisering i denne transaktion – Apex, forløb, arbejdsflowregler og processer – trækker fra det samme budget. Et ineffektivt forløbsdesign forværrer problemet. Andre automatiseringer i transaktionen trækker det delte budget ned først, og et ineffektivt forløb forbruger mere end nødvendigt af det, der er tilbage.

          Den rækkefølge, som forløb køres i, afhænger af forløbstypen. Dette eksempel bruger et efter lagring registreringsudløst forløb, der kører senere i rækkefølgen end før lagring-forløb. Hvis du ønsker oplysninger om kørselsrækkefølgen, kan du se Udløsere og kørselsrækkefølge.

          Ineffektiv tilgang: DML-handlinger i en løkke

          Denne tilgang medfører CPU-begrænsningsfejl, når der behandles flere salgsmuligheder.

          Forløbsstruktur: Forløbet starter med et registreringsudløst forløb på salgsmulighedsobjektet, der køres efter en registreringsopdatering, når Fase er lig med "Lukket Vundet". Forløbet bruger Hent registreringer til at hente Salgsmulighedsteammedlemmer for den udløsende registrering og kører derefter gennem samlingen. I løkken opretter et Opret registreringer-element en opgave for hvert teammedlem.

          Hvorfor denne tilgang mislykkes:

          • Hver løkkeiteration udfører en separat DML-handling.
          • En salgsmulighed med 5 teammedlemmer resulterer i 5 DML-handlinger.
          • Når brugere opdaterer 20 salgsmuligheder på en gang, behandler forløbet alle salgsmuligheder i en transaktion.
          • 20 salgsmuligheder × 5 teammedlemmer hver = 100 DML-handlinger i en transaktion.
          • Den akkumulerede CPU-tid fra 100 DML-handlinger overskrider styringsbegrænsningen.
          • Resultat: APEX_CPU_TIME_LIMIT_EXCEEDED-fejl.

          Effektiv tilgang: Samlingsbaseret massebehandling

          Denne tilgang behandler registreringer effektivt, uanset mængden.

          Forløbsstruktur: Forløbet starter med et registreringsudløst forløb på salgsmulighedsobjektet og bruger Hent registreringer til at hente salgsmulighedsteammedlemmer. Forløbet opretter en opgaveregistreringsvariabel og en opgaveregistreringssamlingsvariabel. Registreringsvariablen indeholder den aktuelle opgave, som forløbet arbejder på, og registreringssamlingen indeholder de opgaver, der skal oprettes. Forløbet kører gennem teammedlemmerne. I løkken opbygger et tildelingselement hver opgaveregistrering ved at angive værdier for registreringsvariablen Opgave og relaterer opgaven til det aktuelle teammedlem i løkken. Et andet tildelingselement føjer registreringsvariabelværdierne for opgaven til opgaveregistreringssamlingen. Når løkken er fuldført, opretter et enkelt Opret registreringer-element alle opgaver fra samlingen.

          Hvorfor dette fungerer:

          • Løkken opbygger en samling af opgaveregistreringer uden at udføre DML-handlinger.
          • Der sker kun en DML-handling, når løkken er fuldført.
          • En salgsmulighed med 5 teammedlemmer resulterer stadig i kun 1 DML-handling (oprettelse af 5 opgaver på en gang).
          • Når brugere opdaterer 20 salgsmuligheder på en gang, udfører forløbet i alt 20 DML-handlinger (en pr. salgsmulighed).
          • Betydelig reduktion i forbrug af CPU-tid.
          • Resultat: Forløbet fuldføres korrekt uden at nå styringsbegrænsninger.

          Sammenligning af ydeevne

          Scenarie Ineffektiv (DML i løkke) Effektiv (masseinddelt)
          1 salgsmulighed med 5 teammedlemmer 5 DML-handlinger 1 DML-handling
          20 salgsmuligheder (masseopdatering) med 5 teammedlemmer hver

          100 DML-handlinger

          (Sandsynligvis mislykkes med CPU-grænsefejl)

          20 DML-handlinger

          (Fuldfører korrekt)

          100 salgsmuligheder (dataindlæsning) med 3 teammedlemmer hver

          300 DML-handlinger

          (Selvfølgelig mislykkes)

          100 DML-handlinger

          (Fuldfører korrekt)

          Nøgleprincipper for massebehandling

          • Udfør aldrig DML-handlinger i løkker. Indsaml altid registreringer i en samlingsvariabel under løkken, og udfør derefter DML, når løkken er fuldført.
          • Design til masseoperationer fra starten. Antag, at registreringsudløste forløb behandler flere registreringer samtidigt.
          • Brug registreringssamlingsvariabler. Samlingsbaserede DML-handlinger er dramatisk mere effektive end individuelle handlinger.
          • Test med realistiske mængder. Fejlretningstilstand med en registrering afslører ikke problemer med massehandling. Test med guiden Dataimport, Data Loader eller masseopdateringer.
          • Overvåg ydeevne. Gennemse fejlretningslogfiler for at identificere forløb, der nærmer sig styringsbegrænsninger, før de mislykkes i produktion.

          Trin på højt niveau

          Gennemse trinene i dette eksempel. Følg dem i rækkefølge, eller gå til et afsnit for at få flere specifikke instruktioner.

          Opret forløbet

          Opsæt det registreringsudløste forløb til at køre, når salgsmuligheder lukkes.

          1. Åbn listevisningen Forløb.
            • Skriv Forløb i feltet Find hurtigt i Opsætning, og vælg derefter Forløb.
            • Fra appen Automatisering skal du vælge fanen Forløb.
            • Fra fanen Forløb i enhver Lightning-app skal du klikke på handlingsmenuen og vælge Åbn forløb.
          2. Opret et registreringsudløst forløb.
            1. Fra Lightning-appen Automatisering skal du klikke på Ny. Søg efter og vælg Registreringsudløst forløb.
            2. Klik på Nyt forløb i Opsætning, søg efter og vælg registreringsudløst forløb.
            Panelet Konfigurer start åbnes.
          3. Konfigurer startelementet.
            1. For Objekt skal du vælge Salgsmulighed.
            2. For Udløser forløbet hvornår skal du vælge En registrering opdateres.
            3. I afsnittet Angiv indtastningsbetingelser for Betingelseskrav skal du vælge Alle betingelser er opfyldt (OG).
            4. For Felt skal du vælge Fase.
            5. Vælg Er lig med for Operator.
            6. For Værdi skal du vælge Lukket Vundet.
            7. For Optimer forløb skal du vælge Handlinger og relaterede registreringer.

          Opret ressourcer

          Opret de variabler, der er nødvendige for massebehandling.

          1. Hvis du vil opbygge hver opgave, skal du oprette en registreringsvariabel til opbygning af opgaveregistreringer.
            1. Klik på Ikonet Værktøjskasse. for at åbne værktøjskassen.
            2. Klik på Ny ressource, og vælg derefter Variabel.
            3. For API-navn skal du angive TaskRecord.
            4. For Datatype skal du vælge Registrering.
            5. For Objekt skal du vælge Opgave.
            6. Klik på Udført.
          2. Hvis du vil lagre alle opgaver, skal du oprette en registreringssamlingsvariabel for alle opgaver.
            1. Klik på Ny ressource, og vælg derefter Variabel.
            2. For API-navn skal du angive TasksToCreate.
            3. For Datatype skal du vælge Registrering.
            4. For Objekt skal du vælge Opgave.
            5. Vælg dette for at Tillad flere værdier (samling).
            6. Klik på Udført.

          Hent teammedlemmer

          Hent registreringer for salgsmulighedsteammedlem til behandling ved brug af et Hent registreringer-element.

          1. Klik på Tilføj element plus-ikon, og søg efter og vælg derefter Hent registreringer.
          2. Konfigurer elementet.
            1. For Betegnelse skal du skrive Hent salgsmulighedsteammedlemmer.
            2. For Objekt skal du vælge Salgsmulighedskontaktrolle.
              I dette eksempel lagrer forløbet teammedlemmer i objektet Salgsmulighedskontaktrolle. Et objekt, der linker salgsmuligheder til kontakter.
            3. Vælg Salgsmuligheds-id i afsnittet Filtrer salgsmulighedskontaktrolleregistreringer for Felt.
            4. Vælg Er lig med for Operator.
            5. For Værdi skal du vælge Udløser salgsmulighed og derefter Salgsmuligheds-id.
            6. For Hvor mange registreringer der skal gemmes skal du vælge Alle registreringer.
            7. For Sådan gemmes registreringsdata skal du vælge Gem automatisk alle felter.

          Tilføj en beslutning for at kontrollere for teammedlemmer

          Tilføj et beslutningselement for at undgå behandling, når der ikke er nogen teammedlemmer.

          1. Klik på Tilføj element plus-ikon, og søg efter og vælg derefter Beslutning.
          2. Konfigurer beslutningen.
            1. For Betegnelse skal du angive Fandt teammedlemmer?.
            2. API-navnet udfyldes automatisk.
            3. For Resultatbetegnelse skal du skrive Ja.
            4. API-navnet udfyldes automatisk.
            5. For Ressource skal du vælge Salgsmulighedskontaktroller fra Hent salgsmulighedsteammedlemmer.
            6. For Operator skal du vælge Er nul.
            7. For Værdi skal du vælge Falsk.
            8. Klik på Standardresultat.
            9. For Betegnelse skal du angive Nej.

          Tilføj et løkkeelement

          Tilføj et løkkeelement for at gentage gennem teammedlemmer.

          1. I stien Ja skal du klikke på Tilføj element plus-ikon og derefter søge efter og vælge Løkke.
          2. Konfigurer løkken.
            1. For Betegnelse skal du skrive Iterate Through Teammedlemmer.
            2. API-navnet udfyldes automatisk.
            3. For Samlingsvariabel skal du vælge Salgsmulighedskontaktrolle fra Hent salgsmulighedsteammedlemmer.
              Denne ressource vises som entals, selvom den indeholder flere registreringer.
            4. For Retning skal du vælge Første element til sidste element.

          Opbyg opgaveregistreringer i løkken

          Udfyld feltværdier for TaskRecord-registreringsvariablen for hvert teammedlem i løkken.

          1. Efter For hver skal du klikke på Tilføj element plus-ikon og derefter søge efter og vælge Tildeling.
          2. Konfigurer tildelingen.
            1. For Betegnelse skal du angive Opbyg opgaveregistrering.
            2. API-navnet udfyldes automatisk.
            3. For Variabel skal du vælge TaskRecord og derefter vælge Emne.
            4. Vælg Er lig med for Operator.
            5. For værdi skal du skrive Følg op på lukket salgsmulighed.
            6. Klik på + Tilføj tildeling.
            7. Fortsæt med at tilføje tildelinger og indstille værdier.
              Ressource Operator Værdi
              TaskRecord>Status Er lig med Ikke startet
              TaskRecord>Prioritet Er lig med Høj
              TaskRecord>Tildelt til id Er lig med Aktuelt element fra løkke>Kontakt-id
              TaskRecord>Relateret til id Er lig med Udløsersalgsmulighed>Salgsmuligheds-id

          Føj opgaver til samlingen

          Føj hver opgaveregistrering til samlingsvariablen TasksToCreate til masseoprettelse.

          1. Klik på Tilføj element plus-ikon efter elementet Tildeling, og vælg derefter Tildeling.
          2. Konfigurer tildelingen.
            1. For Betegnelse skal du skrive Føj opgave til samling.
            2. For Variabel skal du vælge TasksToCreate.
            3. For Operator skal du vælge Tilføj.
            4. For Værdi skal du vælge TaskRecord og derefter Hele ressourcen.

          Opret alle opgaver efter løkken

          Brug et enkelt Opret registreringer-element til at oprette alle opgaver i en handling.

          1. Når løkken er slut, skal du klikke på Tilføj element plus-ikon og derefter søge efter og vælge Opret registreringer.
          2. Konfigurer elementet.
            1. For Betegnelse skal du skrive Opret alle opgaver.
            2. For Sådan angives registreringsfeltværdier skal du vælge Fra en registreringsvariabel.
            3. For Hvor mange registreringer der skal oprettes skal du vælge flere.
            4. For Registreringssamling skal du vælge TasksToCreate.
          3. Gem forløbet.
          4. For Betegnelse skal du skrive Opret opgaver for salgsmulighedsteammedlemmer.
          5. API-navnet udfyldes automatisk.

          Tilføj fejlhåndtering

          Konfigurer fejlstyring for at registrere og rapportere fejl.

          1. Hvis du vil administrere fejl, skal du føje en fejlsti til Opret registreringer-elementet.
            1. Klik på de tre prikker på Opret alle opgaver-elementet, og vælg Tilføj fejlsti.
          2. Hvis du vil advisere Salesforce-administratorer om fejl i fejlstien, skal du tilføje en Send mail-handling.
            1. På fejlstien skal du klikke på Tilføj element plus-ikon og derefter søge efter og vælge Send mail.
            2. For Betegnelse skal du skrive Adviser administrator om fejl.
            3. API-navnet udfyldes automatisk.
            4. For Modtageradresser skal du angive mailadressen på den person, du ønsker at modtage adviseringen.
            5. For Emne skal du angive Et forløb kræver din opmærksomhed
            6. For Brødtekst skal du angive Forløbet Opret opgaver for salgsmulighedsteammedlemmer havde en fejl. Her er fejlen: .
            7. Klik på Indsæt en ressource.
            8. Vælg Kør forløb, og vælg derefter Fejlmeddelelse.
          3. Gem dit arbejde.

          Test med massedata

          Test af massebehandlede forløb kræver simulering af massehandlinger.

          1. Hvis du vil teste en individuel registrering, skal du bruge fejlretningstilstand til at opdatere en salgsmulighed og bekræfte, at forløbet opretter opgaver korrekt.
          2. Aktiver forløbet.
          3. Hvis du vil teste massehandlinger i en sandbox, skal du bruge guiden Dataimport, Data Loader eller en listevisning til at opdatere flere salgsmuligheder på en gang.
            1. Opret mellem 10 og 20 testmuligheder.
            2. Føj teammedlemmer til hver salgsmulighed.
            3. Brug Data Loader eller masseopdateringen til at ændre fasen til "Lukket Vundet" på alle salgsmuligheder samtidigt.
            4. Bekræft, at forløbet opretter alle opgaver uden fejl.
          4. Hvis du vil bekræfte ydeevnen, skal du gennemse Apex for at bekræfte, at CPU-tidsforbrug er inden for acceptable grænser.

          Flere optimeringsteknikker

          Optimer massebehandlede forløb yderligere med disse teknikker.

          Brug indtastningsbetingelser til at begrænse kørsel

          Føj betingelser til forløbsstartelementet for at sikre, at det kun kører, når det er nødvendigt. Behandl f.eks. kun salgsmuligheder over et bestemt beløb eller fra specifikke registreringstyper.

          Overvej efter lagring for ikke-kritiske handlinger

          Efter lagring kan registreringsudløste forløb oprette opfølgningsopgaver, når du har gemt salgsmuligheden. De kører asynkront og har højere styringsbegrænsninger.

          Batchproces for meget store mængder

          Hvis salgsmuligheder regelmæssigt har dusinvis af teammedlemmer, skal du bruge et planlagt forløb, der behandler lukkede salgsmuligheder i batches snarere end i realtid.

          Konverter eksisterende forløb

          Konverter forløb med DML-handlinger (Data Manipulation Language) i løkker til massebehandlede mønstre.

          Hvis du har eksisterende forløb med DML-handlinger i løkker, skal du følge disse trin for at konvertere dem.

          1. Hvis du vil finde DML-handlinger i løkker, skal du identificere alle Opret registreringer-, Opdater registreringer- og Slet registreringer-elementer i løkker.
          2. For hvert DML-element skal du udføre konverteringen.
            1. Hvis du vil opbygge registreringer, skal du oprette en registreringsvariabel for den pågældende objekttype.
            2. Hvis du vil lagre de registreringer, du vil behandle, skal du oprette en registreringssamlingsvariabel for den pågældende objekttype.
            3. Hvis du vil gemme feltværdier for registreringerne, skal du bruge et tildelingselement til at tildele værdier til registreringsvariablen.
            4. Hvis du vil indsamle de registreringer, der skal behandles, skal du bruge en tildeling til at føje registreringsvariablen til registreringssamlingen.
            5. Hvis du vil oprette registreringer effektivt, skal du efter løkken tilføje et DML-element, der behandler hele registreringssamlingen.
          3. Hvis du vil bekræfte konverteringen, skal du teste grundigt med massedata for at bekræfte, at omstruktureringen fungerede korrekt.
           
          Indlæser
          Salesforce Help | Article