Scenario:
Sravan driver et selskap, og han bruker Salesforce org for å spore lønnen til sine ansatte. Det er bare 200 ansatte. Han lagret alle dataene deres i et "konto" -objekt i Salesforce -databasen, og han opprettet et tilpasset felt som er "kreditert" i en avkrysningsrute -type og oppdaterer det til sant når lønnen blir kreditert dem. Etter 2 år økte hans ansattes telling til 2 lakh. Det er ikke i stand til å oppdatere dette feltet ved en transaksjon. Så han ba Salesforce -utvikleren om å hjelpe ham ut av det. Deretter foreslo utvikleren batch -spissen for å oppdatere 2 lakh -poster om gangen (batch av batch).
Batch Apex:
Som vi allerede har diskutert, er Batch Apex en asynkron prosess der hver prosess kjøres på en annen tråd. Den behandler databatch etter batch og har 3 trinn mens du utfører denne operasjonen. Som standard er batchstørrelsen 200, men vi kan strekke oss opp til 2000. Minimumsstørrelsen er 1.
Fase I:
Dette er "start" -fasen der postene blir samlet inn fra Salesforce som skal behandles. Vi kan bruke SOQL -spørringen for å returnere postene i denne fasen. I utgangspunktet implementerer "batch" -klassen "databasen.Batchbar ”.
Vi kan definere Start () -metoden ved hjelp av QueryLocator (den kommer tilbake til spørring) fra "Database" -klassen. Det er veldig viktig å passere parameteren BatchableContext fra "Database" -klassen. Innenfor denne metoden kan vi spesifisere SOQL i databasen.getQuerylocator () -metode og returner den.
Se følgende metodestruktur:
Fase II:
Dette er "utfør" -fasen der partiet med poster blir samlet inn fra startfasen som returneres av SOQL -spørringen. Den behandler disse postene og får postene igjen fra spørringen til alle postene er fullført.
Vi kan definere Execute () -metoden ved å returnere som tomrom (tom). Det er veldig viktig å passere batchableContext som den første parameteren fra "Database" -klassen som ligner Start () -metoden. Den andre parameteren er Sobject (Salesforce Standard/Custom Object) inne i en "liste".
Se følgende metodestruktur:
Fase III:
Dette er "Finish" -fasen der postoperasjonene som å sende e -post, vise meldinger osv., blir tatt i denne fasen.
Vi kan definere finish () -metoden ved å returnere som tomrom (tom). Det er veldig viktig å passere batchableContext som den første parameteren fra "Database" -klassen som ligner Start () -metoden.
Se følgende metodestruktur:
Generell struktur:
Miljøoppsett
1. Gå til "Developer Console" og gå til "Velg nye" -filen. Velg deretter "Apex -klasse" (Apex -klassen lagres med .APXC Extension).
2. Du kan oppgi klassenavnet etter å ha klikket på “Apex Class”. Klikk deretter "OK".
3. Etter å ha skrevet klassen, kan du utføre den ved å lage en forekomst av den. Vi kan skrive det i det "anonyme vinduet".
Applikasjon 1: Oppdatering
La oss skrive en "batch -klasse" på Salesforce Standard Object -kampanjen for å oppdatere "kampanjenavn" til "Linuxhint Camp1" hvis statusen er "planlagt".
Global Class BatchExample1 implementerer database.BatchbarKjør klassen ved å lage en forekomst.
Batchexample1 firstExample_1 = new BatchExample1 ();Forklaring:
Kryss av:
Vi kan sjekke om batchen blir behandlet uten feil under "Apex Jobs". Søk etter det i "Quick Find".
2. For å se etter "batch" -klassen din, kan vi se at "partiene behandlet" er 1 og "feil" er 0.
3. Gå til "Kampanje -fanen" og sjekk om "kampanjenavn" er oppdatert eller ikke.
Det er bare en post med en "planlagt" status. "Kampanjenavn" blir oppdatert til "Linuxhint Camp1".
Søknad 2: Sletting
La oss skrive en "batch -klasse" på Salesforce Standard -objektet som er "kampanje" for å slette en post.
Global Class BatchExample2 implementerer database.batchbarKjør klassen ved å lage en forekomst.
Batchexample2 Eksempel_2 = new BatchExample2 ();Forklaring:
Kryss av:
Vi kan sjekke de slettede postene under "papirkurven". Gå til "App Launcher" og sjekk for den.
Du kan se en som posten blir slettet fra "kampanjen" -objektet.
Søknad 3: Innsetting
La oss skrive en "batch -klasse" på Salesforce Standard -objektet som er "konto" for å sette inn en post.
Global Class BatchExample3 implementerer database.BatchbarKjør klassen ved å lage en forekomst.
Batchexample3 Eksempel_3 = new BatchExample3 ();Forklaring:
Kryss av:
Gå til "konto" og søk etter posten. Du kan finne den der.
Klikk på "Kontonavn" for å åpne posten med detaljer.
Konklusjon
Vi lærte nå hvordan vi skal utføre Mass DML -operasjoner som Sett inn, oppdatere og slette med batch -spiss i Salesforce. Batch Apex er en asynkron prosess der hver prosess kjøres på en annen tråd. Den behandler databatch etter batch og har 3 trinn mens du utfører denne operasjonen. Som standard er batchstørrelsen 200, men vi kan utvide den opp til 2000 der minimumsstørrelsen er 1. Vi benyttet oss.