IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Salesforce.com Discussion :

lancer un batch depuis salesforce


Sujet :

Salesforce.com

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut lancer un batch depuis salesforce
    Bonjour à tous,

    Je suis actuellement en train de créer un batch mais je ne sais pas comment le tester, ou plutôt le lancer.
    Voila ce que j'ai fait pour l'instant:


    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    global class BatchCaseDematerialisation implements Database.Batchable<SObject>, Database.Stateful{ 
     
        global BatchCaseDematerialisation(){
                System.debug('>>>> BatchCaseDematerialisation() Constructor - Start');
                successUpdatedCase = 0;
                countAllCases = 0;
                errorRecycleBin = 0;
                mapCaseSuccess = new Map<Id,String>();
                dateNow = DateTime.now();
                System.debug('>>>> BatchCaseDematerialisation() Constructor - End');
        }
     
     
     
        global Database.queryLocator start(Database.BatchableContext ctx){
            return Database.getQueryLocator(
            [Select c.Status, c.Montant_total_finance__c, c.Montant_total_emprunte__c, c.Id, c.Avancee_Jalon_TEC__c From Case c where Id ='500M00000040Tbq']);
     
        }
     
     
        global void execute(Database.BatchableContext ctx, List<Sobject> scope){
            System.debug('>>>> BatchCaseDematerialisation.execute Method -begin');
              System.debug('>>>> BatchCaseDematerialisation.execute Method -scope' + scope);
            List<Case> caseList = (List<Case>)scope;
     
                     if(!caseList.isEmpty() && caseList.size() > 0 ){
                            System.debug('>>> if caselist is  not empty');
                            //nombre d'apports total
                            countAllCases = countAllCases + caseList.size();
                            //parcours de la liste des apports
                            for(Case c : caseList){
                                c.Adresse__c = 'test';
                            }
                     }
     
     
            System.debug('>>>> BatchCaseDematerialisation.execute Method -End');
     
        }
     
        global void finish(Database.BatchableContext ctx){
     
            System.debug('>>>> BatchCaseAnonymous.finish Method -Start');
     
            System.debug('>>>> BatchCaseAnonymous.finish Method - End');
        }
     
     
    }

    Comme on peut le voir, j'essaie simplement de récupérer un case que j'ai créé et j'aimerai lorsque je parcoure ma requête pouvoir simplement modifier l'adresse, c'est juste pour comprendre...

    Le problème c'est que je ne sais pas comment le lancer.

    Alors oui je peux passer par (créer classe APEX/ Plannifier Apex/ selectionner la classe qui appel ce batch, d'ailleurs voila ma classe qui appel le batch:

    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    global class BatchSchedulableCaseDematerialisation implements Schedulable{
       global void execute(SchedulableContext sc) {
          BatchCaseDematerialisation b = new BatchCaseDematerialisation();
     
          database.executebatch(b,25);
       }
     
    }


    Mais comment faire pour tester ma classe (sans attendre que batch soit lancé par le plannificateur de classe), lancer l’exécution depuis eclipse afin de pouvoir debuguer et voir si ça marche?

    (j'ai tester en faisant clique droit sur la classe / force.com / run, mais ça me donne rien, pas de log:

    Nom : Capture.JPG
Affichages : 647
Taille : 31,8 Ko

    Pouvez vous m'aider?

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 239
    Points : 424
    Points
    424
    Par défaut
    Salut,

    Rien ne t'empeche d'executer ton batch dans une classe de test ?!
    http://www.salesforce.com/us/develop...ex_batch_2.htm

    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @isTest
    private class TestBatchClass {
     
        static testmethod void test() {
          BatchCaseDematerialisation b = new BatchCaseDematerialisation();
     
          database.executebatch(b,25);
    }
    }

    Avec la console developper lancée, tu devrais voir une ligne corespondant à l'apex batc et y retrouver tes logs

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    Merci beaucoup pour ta réponse. Je ne savais pas que l'on pouvait lancer un batch depuis une classe de test.
    Du coup je suis passé par Execute Anonymous (Windows => Show view => Execute Anonymous)
    Puis j'ai mis le code qui lance le batch dans source to execute:

    BatchCaseDematerialisation b = new BatchCaseDematerialisation();
    database.executebatch(b,25);

    Cliquer sur Execute Anynimous et ça lance aussi le batch.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] lancer une macro depuis un batch
    Par triaguae dans le forum VBA Access
    Réponses: 3
    Dernier message: 03/06/2010, 12h45
  2. [Batch] Lancer un batch depuis un autre avec les variables du premier
    Par mr_samy81 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 08/04/2009, 16h40
  3. Lancer un VBS depuis un batch
    Par Empty_body dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 20/11/2007, 11h42
  4. lancer un batch depuis un prog c++
    Par nac dans le forum Windows
    Réponses: 2
    Dernier message: 24/03/2006, 01h40
  5. lancer un batch depuis un prog c++
    Par nac dans le forum C++
    Réponses: 2
    Dernier message: 23/03/2006, 23h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo