Scenario:
Sravan gestisce un'azienda e sta usando Salesforce Org per tracciare gli stipendi dei suoi dipendenti. Ci sono solo 200 dipendenti. Ha archiviato tutti i loro dati in un oggetto "account" nel database Salesforce e ha creato un campo personalizzato che viene "accreditato" in un tipo di casella di controllo e aggiornarlo a true ogni volta che lo stipendio viene accreditato loro. Dopo 2 anni, il conta dei suoi dipendenti è aumentato a 2 lakh. Non è in grado di aggiornare questo campo in una transazione. Così ha chiesto allo sviluppatore di Salesforce di aiutarlo a uscire da quello. Quindi, lo sviluppatore ha suggerito l'apice batch di aggiornare 2 record lakh alla volta (batch per batch).
Apice batch:
Come abbiamo già discusso, Batch Apex è un processo asincrono in cui ogni processo viene eseguito su un thread diverso. Elabora il batch di dati per batch e ha 3 passaggi mentre esegue questa operazione. Per impostazione predefinita, la dimensione del lotto è 200, ma possiamo estenderci fino a 2000. La dimensione minima è 1.
Fase I:
Questa è la fase di "start" in cui i record vengono raccolti da Salesforce da elaborare. Possiamo utilizzare la query SOQL per restituire i record in questa fase. Fondamentalmente, la classe "batch" implementa il "database.Batchable ".
Possiamo definire il metodo Start () usando il queryLocator (ritorna in query) dalla classe "database". È molto importante passare il parametro batchableContext dalla classe "database". All'interno di questo metodo, possiamo specificare il SOQL nel database.metodo getQueryLocator () e restituirlo.
Vedi la seguente struttura del metodo:
Fase II:
Questa è la fase "esegui" in cui il batch dei record viene raccolto dalla fase di avvio che viene restituita dalla query SOQL. Elabora questi record e riceve nuovamente i record dalla query fino a quando tutti i record non saranno completati.
Possiamo definire il metodo Esecute () restituendo come vuoto (vuoto). È molto importante passare il batchableContext come primo parametro dalla classe "database" che è simile al metodo start (). Il secondo parametro è l'Object (Salesforce Standard/Object) all'interno di un "elenco".
Vedi la seguente struttura del metodo:
Fase III:
Questa è la fase di "finitura" in cui le operazioni post come l'invio di e -mail, la visualizzazione di messaggi, ecc., sono presi in questa fase.
Possiamo definire il metodo fini () restituendo come vuoto (vuoto). È molto importante passare il batchableContext come primo parametro dalla classe "database" che è simile al metodo start ().
Vedi la seguente struttura del metodo:
Struttura generale:
Configurazione dell'ambiente
1. Vai al "Console per sviluppatori" e vai al file "seleziona nuovo". Quindi, scegli "Apex Class" (la classe Apex viene salvata con .estensione APXC).
2. Puoi dare il nome della classe dopo aver fatto clic su "Classe Apex". Quindi, fai clic su "OK".
3. Dopo aver scritto la classe, puoi eseguirla creando un'istanza. Possiamo scriverlo nella "finestra anonima".
Applicazione 1: aggiornamento
Scriviamo una "classe batch" sulla campagna Salesforce Standard Object per aggiornare il "nome della campagna" a "Linuxhint Camp1" se lo stato è "pianificato".
Global Class BatchExample1 Implementa il database.BatchableEsegui la classe creando un'istanza.
BatchExample1 FirstExample_1 = new BatchExample1 ();Spiegazione:
Controllo:
Possiamo verificare se il batch viene elaborato senza errore nell'ambito dei "lavori Apex". Cercalo in "Quick Find".
2. Per verificare la tua classe "batch", possiamo vedere che i "batch elaborati" sono 1 e "fallimenti" sono 0.
3. Vai alla "scheda campagna" e controlla se il "nome della campagna" viene aggiornato o meno.
C'è solo un record con uno stato "pianificato". Il "nome della campagna" viene aggiornato a "Linuxhint Camp1".
Applicazione 2: cancellazione
Scriviamo una "classe batch" sull'oggetto standard Salesforce che è "campagna" per eliminare un record.
Global Class BatchExample2 Implementa il database.batchableEsegui la classe creando un'istanza.
BatchExample2 Esempio_2 = new BatchExample2 ();Spiegazione:
Controllo:
Possiamo controllare i record eliminati sotto il "cestino di riciclo". Vai al "lancio di app" e controllalo.
Puoi vederne uno che il record viene eliminato dall'oggetto "campagna".
Applicazione 3: inserimento
Scriviamo una "classe batch" sull'oggetto standard Salesforce che è "account" per inserire un record.
Global Class BatchExample3 implementa il database.BatchableEsegui la classe creando un'istanza.
BatchExample3 Esempio_3 = new BatchExample3 ();Spiegazione:
Controllo:
Vai su "account" e cerca il record. Puoi trovarlo lì.
Fai clic su "Nome account" per aprire il record con i dettagli.
Conclusione
Ora abbiamo imparato a eseguire le operazioni di massa DML come inserto, aggiornamento ed eliminare con l'apice batch in Salesforce. L'apice batch è un processo asincrono in cui ogni processo viene eseguito su un thread diverso. Elabora il batch di dati per batch e ha 3 passaggi mentre esegue questa operazione. Per impostazione predefinita, la dimensione del lotto è 200 ma possiamo estenderla fino a 2000 in cui la dimensione minima è 1. Abbiamo utilizzato gli oggetti standard "campagna" e "account" per eseguire le operazioni DML.