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

Exécution et industrialisation Discussion :

Problème d'éxecution de job en fichier batch


Sujet :

Exécution et industrialisation

  1. #1
    Membre à l'essai
    Problème d'éxecution de job en fichier batch
    Bonjour à tous,
    J'ai développé 2 jobs sous TOS Data Integration qui fonctionnent bien (un qui génère un fichier excel et le deuxième qui envoie ce fichier par mail).
    J'ai exporté ces deux jobs et les fichiers .bat fonctionnent quand je double clique dessus.
    Mon objectif est de combiner ces deux fichiers batch pour n'en faire qu'un seul afin de créer une tâche automatique.
    Mon premier fichier batch :
    Code Batch :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    %~d0
    cd %~dp0
    java -Dtalend.component.manager.m2.repository=%cd%/../lib -Xms256M -Xmx1024M -cp .;../lib/routines.jar;../lib/dom4j-1.6.1.jar;../lib/jxl.jar;../lib/log4j-1.2.17.jar;../lib/mysql-connector-java-5.1.30-bin.jar;fichier_0_1.jar; totem.fichier_0_1.fichier  --context=Default %*


    Mon second fichier batch :
    Code Batch :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    %~d0
    cd %~dp0
    java -Dtalend.component.manager.m2.repository=%cd%/../lib -Xms256M -Xmx1024M -cp .;../lib/routines.jar;../lib/activation.jar;../lib/dom4j-1.6.1.jar;../lib/log4j-1.2.17.jar;../lib/mail-1.4.jar;mail_test_0_1.jar; totem.mail_test_0_1.mail_test  --context=Default %*

    Seulement, entre l'exécution des deux codes, j'ai une ligne de code à insérer (qui me permet de lancer une macro sur le fichier excel que j'ai généré):
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    WScript.exe "C:\TOTEM\test\script.vbs"


    Alors, j'ai tout simplement essayé de mettre ces codes à la suite les uns des autres comme ceci :

    Mais en éxecutant ce fichier (double clic) je me retrouve avec cette erreur : Impossible de trouver ou de charger la classe principale totem.fichier_0_1.fichier (pour la ligne 1) et la même erreur pour la ligne 3 (Impossible de trouver ou de charger la classe principale totem.mail_test_0_1.mail_test)

    Je ne comprend vraiment pas d'où peut venir cette erreur, surtout étant donné qu'ils fonctionnent indépendamment ! Et la ligne qui lance le script.vbs fonctionne bien également.

  2. #2
    Membre expérimenté
    C'est un problème de classpath.

    je pense que ton script de concaténation des deux batch n'est pas au même niveaux.

    Option 1 :

    Il faut que tu adaptes ces deux définissions :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    -cp .;../lib/routines.jar;../lib/dom4j-1.6.1.jar;../lib/jxl.jar;../lib/log4j-1.2.17.jar;../lib/mysql-connector-java-5.1.30-bin.jar;fichier_0_1.jar;


    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    -cp .;../lib/routines.jar;../lib/activation.jar;../lib/dom4j-1.6.1.jar;../lib/log4j-1.2.17.jar;../lib/mail-1.4.jar;mail_test_0_1.jar;



    Option 2 :

    que tu te déplaces vers le dossier qui comporte chaque script

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    cd chemin/totem
    java -Dtalend.component.manager.m2.repository=%cd%/../lib -Xms256M -Xmx1024M -cp .;../lib/routines.jar;../lib/dom4j-1.6.1.jar;../lib/jxl.jar;../lib/log4j-1.2.17.jar;../lib/mysql-connector-java-5.1.30-bin.jar;fichier_0_1.jar; totem.fichier_0_1.fichier  --context=Default %*
    cd chemin/WScript
    WScript.exe "C:\TOTEM\test\script.vbs"
    cd chemin/mail_test
    java -Dtalend.component.manager.m2.repository=%cd%/../lib -Xms256M -Xmx1024M -cp .;../lib/routines.jar;../lib/activation.jar;../lib/dom4j-1.6.1.jar;../lib/log4j-1.2.17.jar;../lib/mail-1.4.jar;mail_test_0_1.jar; totem.mail_test_0_1.mail_test  --context=Default %*


    option 3

    Tu crées un job avec 2 tRunJob et un tSystem qui lance ton 1er job, ton script, ton 2e job
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  3. #3
    Membre à l'essai
    Citation Envoyé par supergeoffrey Voir le message



    Option 2 :

    que tu te déplaces vers le dossier qui comporte chaque script

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    cd chemin/totem
    java -Dtalend.component.manager.m2.repository=%cd%/../lib -Xms256M -Xmx1024M -cp .;../lib/routines.jar;../lib/dom4j-1.6.1.jar;../lib/jxl.jar;../lib/log4j-1.2.17.jar;../lib/mysql-connector-java-5.1.30-bin.jar;fichier_0_1.jar; totem.fichier_0_1.fichier  --context=Default %*
    cd chemin/WScript
    WScript.exe "C:\TOTEM\test\script.vbs"
    cd chemin/mail_test
    java -Dtalend.component.manager.m2.repository=%cd%/../lib -Xms256M -Xmx1024M -cp .;../lib/routines.jar;../lib/activation.jar;../lib/dom4j-1.6.1.jar;../lib/log4j-1.2.17.jar;../lib/mail-1.4.jar;mail_test_0_1.jar; totem.mail_test_0_1.mail_test  --context=Default %*


    option 3

    Tu crées un job avec 2 tRunJob et un tSystem qui lance ton 1er job, ton script, ton 2e job
    J'ai essayé d'écrire un batch qui appelle chacun des scripts un par un, comme ceci:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    cd C:\TOTEM\test\fichier
    fichier_run.bat
    cd C:\TOTEM
    scrip_exec.bat
    cd C:\TOTEM\test\mail_test
    mail_test_run.bat


    Je pense que cela correspond à peu près à l'option 2. Mais, seulement la première instruction s'exécute (le fichier_run.bat se lance et fonctionne) et ensuite la fenêtre se ferme et le reste n'est pas exécuté. Une idée d'où cela pourrait provenir ? Je m'y connais peu en batch windows et je n'ai rien trouvé de concluant..

    Sinon, je vais tenter l'option 3 qui me semble vraiment bien !

  4. #4
    Membre expérimenté
    Essaye avec un call.

    C'est dit là : https://www.developpez.net/forums/d1.../#post_9419603
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  5. #5
    Membre à l'essai
    Citation Envoyé par supergeoffrey Voir le message
    Essaye avec un call.
    ça marche parfaitement avec le call, merci beaucoup !

###raw>template_hook.ano_emploi###