Fermer

décembre 22, 2023

Comment planifier une classe par lots Apex dans Salesforce

Comment planifier une classe par lots Apex dans Salesforce


Bonjour les pionniers,

Dans cet article de blog, nous apprendrons comment planifier une classe Batch Apex dans Salesforce.

Critères d’acceptation: écrivez une classe par lots Apex pour supprimer tous les enregistrements de contact datant de plus d’un an. Planifiez le lot pour supprimer automatiquement les enregistrements.

Si vous souhaitez apprendre à écrire une classe batch simple, vous pouvez suivre ce lien.

Ici, dans cet exemple, nous allons développer une classe batch qui aura une interface planifiable, contenant la logique de suppression des enregistrements de contact datant de plus d’un an.

Il existe deux manières de planifier un lot apex. Le premier est à l’aide de « CRON Expression » et un autre provient de « Standard Customization » dans org. Nous apprendrons les deux manières, une par une.

Commençons…

Apex par lots planifiable pour supprimer des enregistrements :

public class DeleteContactsBatch implements Database.Batchable<sObject>, Schedulable  {

    public Database.QueryLocator start(Database.BatchableContext context) {
        // Query all Contact records created in the last 1 year
        Date oneYearAgo = System.today().addMonths(-12); 
                    // OR Date.today().addYears(-1); //Use anyone of them
        String query = 'SELECT Id FROM Contact WHERE CreatedDate >= :oneYearAgo';
        return Database.getQueryLocator(query);
    }

    public void execute(Database.BatchableContext context, List<Contact> scope) {
        // Delete the Account records in the current batch
        delete scope;
    }

    public void finish(Database.BatchableContext context) {
        // Execute any post-processing logic if needed
    }

    public void execute(SchedulableContext context) {
        // Implement the scheduling logic here
        DeleteContactsBatch batchJob = new DeleteContactsBatch();
        Database.executeBatch(batchJob,200); 
    //Here you can also declare batchSize = 200 at starting & use it here. 
    }
}

Décomposons les choses que nous avons faites dans l’exemple ci-dessus :

  1. Commencer() – Le commencer La méthode renvoie un Database.QueryLocator qui définit la portée des enregistrements à traiter. Ici, dans cet exemple, il interroge les contacts créés il y a plus d’un an.
  2. Exécuter() – Le exécuter la méthode traite chacun lot de contacts. Il prend une liste de contacts en entrée et les supprime.
  3. Finition() – Le finition La méthode est facultative et peut être utilisée pour toute logique de post-traitement dont vous pourriez avoir besoin une fois que tous les lots ont été traités.
  4. Exécuter() – Le exécuter méthode du Programmable L’interface est responsable de la planification du travail par lots. Il crée une instance du Supprimer le lot de contacts classe et démarre le travail par lots en utilisant exécuterBatch avec une taille de lot spécifiée. (Ici, nous avons pris une taille de lot de 200)

Note: La taille du lot par défaut est 200 et la taille maximale du lot est 2000.

Comment planifier une classe par lots Apex :

1. Utilisation de l’expression CRON :

// Schedule the job to run every day at 5.30 AM
String cronExpression = '0 00 5 * * ? *';
System.schedule('ContactCleanupBatch', cronExpression, new ContactCleanupBatch());

Nous avons programmé ce travail à 5h00 du matin. Il fonctionnera tous les jours.

Si vous souhaitez en savoir plus sur CRON Expression, vous pouvez suivre ce lien. Je l’ai expliqué en détail.

2. À partir de la personnalisation standard :

Pour planifier une tâche par lots à partir de Salesforce UI, suivez les étapes ci-dessous…

  1. Allez au Installation.
  2. Entrez « Classe Apex » et recherchez-le dans la zone de recherche rapide. Ensuite, sélectionnez-le.
  3. Clique le « Horaires Apex» comme indiqué dans la figure ci-dessous.
    Image1
  4. Donnez-y le nom du travail et sélectionnez la classe Apex que vous devez planifier.
  5. Sélectionnez la fréquence de planification. Ici, nous voulons exécuter ce lot quotidiennement. Alors, choisissez l’option ‘Hebdomadaire’ puis sélectionnez tous les jours de la semaine, comme le montre la figure ci-dessous.
  6. Ensuite, sélectionnez la date de début ainsi que l’heure de début. La date de fin est facultative. Vous pouvez l’ajuster tant que vous souhaitez exécuter le lot.
  7. Cliquez sur Sauvegarder.

Image2

Avec cela, vous avez programmé le Lot Apex à partir de la personnalisation standard ou de l’interface utilisateur Salesforce.

Conclusion:

De cette façon, nous avons appris à planifier un lot Apex à l’aide de l’expression CRON ainsi que de l’interface utilisateur de configuration/Salesforce.

Restez à l’écoute !!

Les références:

  1. Lot Apex dans Salesforce
  2. Apex asynchrone dans Salesforce

Vous pouvez également lire :

1.Une introduction à Salesforce CPQ
2.Salesforce CPQ et ses fonctionnalités clés
3.Libérer la puissance de l’IA : Einstein pour les développeurs
4.Révolutionner l’engagement client : le chatbot Salesforce Einstein






Source link

décembre 22, 2023