Loading
Automatisere forretningsprosessene
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
          Feilsøke Apex_CPU_TIME_LIMIT_EXCEEDED-feil i flyter

          Feilsøke Apex_CPU_TIME_LIMIT_EXCEEDED-feil i flyter

          Når en transaksjon bruker for mye CPU-tid, utløser Salesforce en Apex_CPU_TIME_LIMIT_EXCEEDED-feil. Flyter deler denne grensen med alle andre automatiseringer i samme transaksjon, inkludert Apex.

          Nødvendige utgaver

          Se støttede versjoner.
          Nødvendig brukertillatelse
          For å åpne, redigere, opprette, aktivere eller deaktivere en flyt med alle flyttyper, elementer og funksjoner som er tilgjengelig i Flow Builder, inkludert Einstein og Agentforce for Flow: Behandle flyter
          For å vise oppsett og få tilgang til feilsøkingslogger: Vise oppsett og konfigurasjon
          For å vise, beholde og slette feilsøkingslogger og angi sporflagg: Vise alle data

          Salesforce håndhever en enkelt CPU-tidsgrense på 10 000 millisekunder (10 sekunder) per synkron transaksjon. Alle automatiseringer i denne transaksjonen, som Apex, flyter, arbeidsflytregler og prosesser, trekkes ut fra det samme budsjettet. Hvis annen automatisering bruker det meste av budsjettet først, kan selv en optimalisert flyt mislykkes. Utføringsrekkefølge avhenger av flyttype. Se Utløsere og utførelsesrekkefølge for å se den fullstendige rekkefølgen.

          • Flyter før lagring kjører tidligere i rekkefølgen enn flyter etter lagring.
          • Apex kjører før eller etter flyter avhengig av utløsertypen.

          For å feilsøke og optimalisere flyter som når CPU-tidsgrenser:

          • Forstå de vanlige mønstrene som fører til CPU-grensefeil
          • Identifisere hvilke elementer som bruker mest CPU-tid
          • bruke optimaliseringsteknikker til å redusere CPU-forbruk
          • Implementer retningslinjer for prevention for å unngå CPU-grensefeil

          Problemer, løsninger og preventivteknikker for CPU-grensefeil

          Identifiser vanlige CPU-begrensninger, bruk løsninger og følg forebyggingsteknikker for å unngå Apex_CPU_TIME_LIMIT_EXCEEDED-feil.

          Denne tabellen gir en referanse for feilsøking av CPU-grensefeil. Hver rad beskriver et vanlig problem, løsningen for å løse det og teknikker for å hindre det i fremtidige flyter. Start med å finne ut om noen av disse problemene gjelder for flyten. Hvis ingen brukes, trekkes en annen automatisering i samme transaksjon, som en Apex, en annen flyt eller en arbeidsflytregel, ut fra det samme CPU-budsjettet og kan være skyldig. Se gjennom Apex for å identifisere hva som bruker CPU på tvers av hele transaksjonen. Se Feilsøkingslogger for å få mer informasjon.

          Problem Løsning Forebyggingsteknikk

          Data Manipulation Language (DML) Operasjoner i sløyfer

          Utføring av Opprett poster-, Oppdater poster- eller Slett poster-operasjoner inne i en sløyfebane tar prosessortid med hver gjentagelse. Behandling av flere poster én om gangen kan raskt utnytte grensen.

          Eksempel: En flyt går gjennom 100 salgsmuligheter og bruker et Opprett poster-element i sløyfen til å opprette en oppgave for hver salgsmulighet, noe som fører til 100 separate DML-operasjoner.

          Bruk samlingsbaserte DML-operasjoner (Data Manipulation Language)

          Bruk Tildeling-elementer i sløyfen til å legge til poster i en postsamlingsvariabel. Når sløyfen er fullført, bruker du ett Opprett poster-, Oppdater poster- eller Slett poster-element til å behandle hele samlingen samtidig. Denne løsningen kalles masseutførelse.

          Eksempel: Slå gjennom salgsmuligheter og bruk et tildelingselement til å bygge en oppgave for hver salgsmulighet. Bruk deretter et annet tildelingselement til å legge til hver oppgave i en samlingsvariabel. Etter sløyfen bruker du et Opprett poster-element til å opprette alle oppgavene samtidig.

          Hvis du vil ha mer informasjon, kan du se Masseutførelse i flyten i transaksjoner.

          Plasser aldri DML-operasjoner i sløyfer. Utform alltid flyter for å samle inn poster i en samlingsvariabel i sløyfen, og utfør deretter DML når sløyfen er fullført.

          Mange spørringer inne i sløyfer

          Hent poster-elementer i en sløyfe bruker betydelig CPU-tid, spesielt når du spør store objekter eller bruker komplekse filtre.

          Eksempel: En flyt går i sløyfe gjennom kontoer og bruker Hent poster i sløyfen til å hente relaterte kontakter for hver konto, noe som fører til én spørring per konto.

          Spørringsdata før sløyfer

          Før sløyfen bruker du ett Hent poster-element og bruker funksjonaliteten Hent relaterte poster til å hente alle nødvendige data med riktige filtre. Bruk de innsamlede dataene i løpet av sløyfen i stedet for å spørre på hver gjentagelse. Hvis du ikke kan bruke ett Hent poster-element, bruker du et Hent poster-element til å hente primærpostene. Bruk deretter et annet Hent poster-element til å hente de sekundære postene. Filtrer de sekundære postene med et postfelt, operatoren I og den første Hent poster-samlingen. For eksempel Konto-ID > I > Kontoer fra Hent kontoer.

          Eksempel: Først henter du alle relaterte kontakter med et Hent poster-element som filtrerer etter konto-ID-ene, og deretter refererer du til kontaktsamlingen i sløyfen.

          Unngå spørringer i sløyfer. Hent alle nødvendige data før du går inn i sløyfen.

          Komplekse formler i sløyfer

          Tildelingselementer som kjører komplekse formelberegninger på hver sløyfegjentagelse, akkumulerer CPU-tid, spesielt med strengmanipulering, datobegreper eller nestede funksjoner.

          Eksempel: En flyt går i sløyfe gjennom 500 poster, og hver gjentagelse utfører flere formelberegninger for å utlede feltverdier.

          Forenkle formler

          Del opp komplekse formler i enklere trinn. Beregne verdier som ikke endres utenfor sløyfen. Unngå nestede funksjoner når det er mulig. Vurder å bruke formelfelt på objektet i stedet for flytformler.

          For operasjoner på hele samlinger, som filtrering, tilordning eller sortering, gjør et Transformer-element det mer effektivt enn en sløyfe. Hvis du vil hente alle relaterte poster i én enkelt spørring i stedet for én spørring per sløyfe-gjentagelse, bruker du et Hent poster-element med IN-operatoren.

          Hvis du vil ha mer informasjon, kan du se Transformer element.

          Forenkle formler og flytte beregninger som ikke endres utenfor sløyfen. Test formelytelsen med realistiske datavolumer.

          Behandle store postsamlinger

          Planlagte flyter eller gruppeoperasjoner som behandler tusenvis av poster i én enkelt transaksjon, selv med riktig masseutførelse, kan bruke for mye CPU-tid.

          Eksempel: En planlagt flyt får 5000 kontoposter og utfører komplekse transformasjoner på hver posts data før de oppdateres.

          Bruk alternative løsninger

          Vurder følgende for store datavolumer:

          • Dele inn arbeidet i flere planlagte flyter der hver behandler et delsett av poster
          • Bruke Apex for ekstreme datavolumer
          • Behandle poster inkrementelt over tid
          • Bruke plattformhendelser til å distribuere behandling på tvers av flere transaksjoner

          Filtrer data tidlig for å redusere antall behandlede poster. Bruk Hent poster-filtre til å hente bare postene du trenger. Test med realistiske datavolumer før du distribuerer til produksjonsorganisasjonen.

          Flere flyter i en transaksjon

          Når én flyt utløser andre flyter (gjennom postendringer eller underflyter), teller den kumulative CPU-tiden for alle flyter i transaksjonen mot grensen.

          Eksempel: En postutløst flyt i Kontooppdateringer kjører flere underflyter og utløser også andre postutløste flyter i relaterte objekter.

          Reduser flytkjeder

          Konsolider relatert automatisering i færre flyter. Se gjennom flytutløserkriteriene for å sikre at flyter kjøres bare når det er nødvendig. Vurder å bruke inngangsbetingelser til å begrense kjøring av postutløste flyter.

          Se gjennom den kumulative innvirkningen av all automatisering (flyter, prosesser, arbeidsflyter, utløsere) som kan kjøres i samme transaksjon. Overvåk og optimaliser hele automatiseringskjeden.

          Bulk Data Loads

          Postutløste flyter som kjøres under masseimport av data eller masseoppdateringer, krever effektiv behandling av alle poster. Ueffektive flyter når CPU-grenser under masseoperasjoner selv om de fungerer bra for individuelle poster.

          Eksempel: En bruker importerer 200 kontoposter. Den postutløste flyten før lagring utfører flere oppslag og beregninger for hver konto.

          Optimalisere for masseoperasjoner

          • Bruke samlingsbasert DML og spørringer
          • Vurder etterlagringsflyter for ikke-kritiske operasjoner (de kjører asynkront og har høyere CPU-grenser)
          • Bruk Transformer-elementer (Filter, Tilordning, Sortering) som fungerer på hele samlinger mer effektivt enn sløyfer

          Hvis du vil ha mer informasjon, kan du se Transformer element.

          Anta alltid at postutløste flyter behandler flere poster samtidig. Test med massedatalastinger (ved å bruke Data Loader eller masseoppdateringer) før du distribuerer til produksjonsorganisasjonen. Hvis den ikke er riktig utformet, kan en flyt som fungerer perfekt for enkeltposter, mislykkes under masseoperasjoner hvis den ikke er riktig utformet.

          Generelle retningslinjer for forebygging

          • Overvåkingsflytytelse: Se gjennom Apex regelmessig for å identifisere flyter som nærmer seg CPU-grenser, selv om de ikke har mislyktes ennå. Regelmessig overvåking hjelper deg å optimalisere flyter før de fører til produksjonsproblemer.
          • Test med realistiske data: Test flyter med realistiske datavolumer for å avdekke ytelsesproblemer før aktivering. Feilsøkingsmodus tester vanligvis med én post, noe som ikke viser problemer med masseoperasjoner.
          • Dokumentoptimaliseringsbeslutninger: Bruk elementbeskrivelser til å notere deg hvor du brukte masseutførelse eller andre optimaliseringer. Denne dokumentasjonen hjelper fremtidige vedlikeholdere med å forstå utformingen og hindrer utilsiktet innføring av ytelsesproblemer.
          • Start enkelt og optimaliser: Bygg flyter i små trinn og test ytelsen i hvert trinn. Det er enklere å optimalisere en arbeidsflyt enn å fikse en kompleks brutt flyt.

          Identifisere CPU-intensive elementer i en flyt

          Bruk Apex til å finne ut hvilke elementer i flyten som bruker mest CPU-tid.

          1. Gå til Oppsett og skriv inn Feilsøkingslogger i Hurtigsøk-feltet.
          2. Konfigurer feilsøkingslogging for brukeren som opplever feilen, eller kjør flyten i feilsøkingsmodus.
          3. Gjengi feilen ved å kjøre flyten.
          4. Åpne den genererte feilsøkingsloggen.
          5. Søk etter disse viktige hendelsene i feilsøkingsloggen.
            • FLOW_CREATE_INTERVIEW_BEGIN - Viser når hver flyt starter
            • FLOW_ELEMENT_LIMIT_USAGE - Viser CPU-tidsforbruk for hvert flytelement
            • CUMULATIVE_LIMIT_USAGE - Viser kjørende totaler av CPU-tid
          6. Identifiser elementer med høye CPU-tidsverdier.
            Vanlige skyldige er:
            • Slå sammen elementer med store samlinger.
            • Hent poster-elementer med komplekse filtre.
            • DML-operasjoner med flere poster (Opprett poster, Oppdater poster, Slett poster).
            • Tildelingselementer med komplekse formler.

          Nå vet du hvilke elementer som bruker mest CPU-tid. Bruk denne informasjonen til å bruke målrettede optimaliseringer.

          Hvis du vil ha mer informasjon om feilsøkingslogger, kan du se Arbeide med logger i Developer Console.

           
          Laster
          Salesforce Help | Article