Scénario:
Sravan dirige une entreprise et il utilise Salesforce Org pour suivre les salaires de ses employés. Il n'y a que 200 employés. Il a stocké toutes leurs données dans un objet «compte» dans la base de données Salesforce et il a créé un champ personnalisé qui est «crédité» dans un type de case à cocher et le mettrait à la mise à jour chaque fois que le salaire leur est crédité. Après 2 ans, son décompte des employés est passé à 2 lakh. Il n'est pas en mesure de mettre à jour ce champ lors d'une transaction. Il a donc demandé au développeur Salesforce de l'aider. Ensuite, le développeur a suggéré au lot Apex de mettre à jour 2 enregistrements lakh à la fois (lot par lot).
Apex par lots:
Comme nous en avons déjà discuté, Batch Apex est un processus asynchrone dans lequel chaque processus est exécuté sur un fil différent. Il traite le lot de données par lot et a 3 étapes tout en faisant cette opération. Par défaut, la taille du lot est de 200, mais nous pouvons s'étendre jusqu'à 2000. La taille minimale est 1.
La phase I:
Il s'agit de la phase «Démarrer» où les enregistrements sont collectés auprès de la Salesforce à traiter. Nous pouvons utiliser la requête SOQL pour retourner les enregistrements dans cette phase. Fondamentalement, la classe «Lot» implémente la «base de données.Batchable ».
Nous pouvons définir la méthode start () à l'aide du requête (il revient à Query) de la classe «base de données». Il est très important de passer le paramètre BatchableContext à partir de la classe «base de données». Dans cette méthode, nous pouvons spécifier le SOQL dans la base de données.Méthode getQueryLocator () et le renvoyer.
Voir la structure de la méthode suivante:
Phase II:
Il s'agit de la phase «exécuter» où le lot d'enregistrements est collecté à partir de la phase de départ qui est renvoyé par la requête SOQL. Il traite ces enregistrements et récupère à nouveau les enregistrements de la requête jusqu'à ce que tous les enregistrements soient terminés.
Nous pouvons définir la méthode EXECUTE () en retournant comme void (vide). Il est très important de passer le BatchableContext comme le premier paramètre de la classe «base de données» qui est similaire à la méthode start (). Le deuxième paramètre est le SOBject (Salesforce Standard / Custom Object) dans une «liste».
Voir la structure de la méthode suivante:
Phase III:
Ceci est la phase de «finition» où les opérations de publication comme l'envoi d'e-mails, affichage des messages, etc., sont pris dans cette phase.
Nous pouvons définir la méthode finition () en revenant comme vide (vide). Il est très important de passer le BatchableContext comme le premier paramètre de la classe «base de données» qui est similaire à la méthode start ().
Voir la structure de la méthode suivante:
Structure globale:
Configuration de l'environnement
1. Accédez à la «console du développeur» et accédez au fichier «Select New». Ensuite, choisissez la «classe Apex» (la classe Apex est enregistrée avec .Extension APXC).
2. Vous pouvez donner le nom de classe après avoir cliqué sur «Classe Apex». Ensuite, cliquez sur "OK".
3. Après avoir écrit la classe, vous pouvez l'exécuter en en créant une instance. Nous pouvons l'écrire dans la «fenêtre anonyme».
Application 1: mise à jour
Écrivons une «classe par lots» sur la campagne Salesforce Standard Object pour mettre à jour le «nom de la campagne» à «Linuxhint Camp1» si le statut est «planifié».
Global Class BatchExample1 implémente la base de données.VolupableExécutez la classe en créant une instance.
BatchExample1 FirstExample_1 = new BatchExample1 ();Explication:
Vérifier:
Nous pouvons vérifier si le lot est traité sans erreur sous les «travaux Apex». Recherchez-le dans «Find Find».
2. Pour vérifier votre cours de «lot», nous pouvons voir que les «lots traités» sont 1 et les «échecs» sont 0.
3. Accédez à l'onglet «Campagne» et vérifiez si le «nom de la campagne» est mis à jour ou non.
Il n'y a qu'un seul dossier avec un statut «planifié». Le «nom de la campagne» est mis à jour de «Linuxhint Camp1».
Application 2: suppression
Écrivons une «classe de lots» sur l'objet standard Salesforce qui est «campagne» pour supprimer un enregistrement.
Global Class BatchExample2 implémente la base de données.volupableExécutez la classe en créant une instance.
BatchExample2 Exemple_2 = new BatchExample2 ();Explication:
Vérifier:
Nous pouvons vérifier les enregistrements supprimés sous le «Recycyer Bin». Accédez au «lanceur d'applications» et vérifiez-le.
Vous pouvez voir celui qui enregistre est supprimé de l'objet «Campagne».
Application 3: insertion
Écrivons une «classe de lots» sur l'objet standard Salesforce qui est «compte» pour insérer un enregistrement.
Global Class BatchExample3 implémente la base de données.VolupableExécutez la classe en créant une instance.
BatchExample3 Exemple_3 = new BatchExample3 ();Explication:
Vérifier:
Accédez à «Compte» et recherchez le dossier. Vous pouvez le trouver là-bas.
Cliquez sur «Nom du compte» pour ouvrir l'enregistrement avec les détails.
Conclusion
Nous avons maintenant appris à effectuer les opérations de DML de masse comme insérer, mettre à jour et supprimer avec un tatch apex dans Salesforce. Batch Apex est un processus asynchrone dans lequel chaque processus est exécuté sur un fil différent. Il traite le lot de données par lot et a 3 étapes tout en faisant cette opération. Par défaut, la taille du lot est de 200 mais nous pouvons l'étendre jusqu'à 2000 dans lesquelles la taille minimale est 1. Nous avons utilisé les objets standard «campagne» et «compte» pour effectuer les opérations DML.