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

Développement de jobs Discussion :

[TOS4.2.3] Boucle dans un dossier tant que


Sujet :

Développement de jobs

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut [TOS4.2.3] Boucle dans un dossier tant que
    Bonjour,

    J'essaye de réaliser une boucle dans un répertoire distant tant que mon fichier toto.flag n'existe pas.
    Si celui ci existe, je stop ma boucle et j'execute une seule fois la suite de mon programme.

    Pour cela, j'ai utilisé un tLoop avec comme condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !((Boolean)globalMap.get("tFTPFileExist_1_EXISTS"))
    Aucun succès.
    Soit mon programme tourne en boucle sans arrêt, soit il stop net...

    Voici une impression d'écran


    Merci d'avance
    Images attachées Images attachées  

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    Février 2008
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : Février 2008
    Messages : 866
    Points : 1 260
    Points
    1 260
    Par défaut
    Bonjour,

    Est-ce qu'il ne suffirait pas de déplacer le tFTPFileExist après le tLoop afin qu'il soit re-exécuté à chaque boucle ?

    Nicolas

  3. #3
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    C'est normal que ça ne marche pas.
    Ton FileExist n'est exécuté qu'une seule fois alors s'il trouve ça stop net et s'il ne trouve pas alors tu entres dans une boucle infini.
    Il va faudrait que tu repenses au design de ton job.
    Peut être tu devrais essayer avec la suggestion de DevNico.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    Merci pour cette réponse.

    Malheureusement, maintenant j'ai une erreur sur un pointeur java a null.

    Je pense que c'est dû qu'au moment où j'utilise le tLoop avec une condition sur le tFileExist, ce dernier n'existe pas encore...

    J'ai essayer de rajouter dans la condition un test sur la nullité du tFileExiste mais j'ai apparemment une erreur syntaxique...

    Comment contourner ca ?

    Merci d'avance

  5. #5
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    Au lieu de déplacer le tFileExist dans la boucle tu le laisses et tu crées un deuxième à l'intérieur de la boucle.

    Comme ça s'il trouve du premier coup il sort directe et s'il ne trouve pas alors il boucle et à chaque fois il va lancer le tFileExist.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    tu crées un deuxième à l'intérieur de la boucle
    je ne vois pas trop a quoi ca correspond...

    Si ca signifie qu'après le tLoop, je rajoute un autre tFTPFileExist, le problème restera le même car ma condition sera sur le 2eme tFTPFileExist et j'aurais toujours mon erreur java...

  7. #7
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    Oui tu as raison, je n'avais pas pensé à ça.

    Tu pourrais faire un truc c'est de créer une variable booléenne "dansLaBoucle" pour savoir si tu es entré dans la boucle ou non.
    Binesûr tu mettra avant la boucle :
    et après la boucle Enfin dans la condition du tLoop tu mettras :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dansLaBoucle?!((BOOLEAN)globalMap.get("tFTPFileExist_2_EXISTS")) :!((BOOLEAN)globalMap.get("tFTPFileExist_1_EXISTS"))
    C'est un peu tiré par les cheveux mais c'est ce qui me vient comme idée pour l'intant.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    J'ai envie de dire que c'est la même chose, à partir du moment où dans la condition on y rajoute le test sur le tFTPFileExist... non?

  9. #9
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    Non je ne pense pas que ce soit la même chose, puisque quand tu n'es pas encore entré dans la boucle tu vas faire le test sur le premier tFileExist mais quand tu es dans la boucle là tu va faire le test sur le deuxième tFileExist (qui existe bien à ce moment, donc pas de null).

    C'est ce que je pense, tu devrais tester.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    Voici comment j'ai fais :

    dans mon tLoop :

    Déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Boolean dansLaBoucle =false
    Condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dansLaBoucle ? !((Boolean)globalMap.get("tFTPFileExist_3_EXISTS")) : !((Boolean)globalMap.get("tFTPFileExist_1_EXISTS"))
    Itération : Effectivement, ca ne plante pas, mais ca ne boucle pas non plus...

  11. #11
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    C'est bizarre, j'ai essayé chez moi et ça marche parfaitement.

    déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Boolean dansLaBoucle =false"
    condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dansLaBoucle ? !((Boolean)globalMap.get("tFileExist_3_EXISTS")) : !((Boolean)globalMap.get("tFileExist_1_EXISTS"))
    itération :
    je lance ça boucle tout le temps et dès que je mets le fichier dans mon dossier il sort de la boucle.

    Remarque moi j'ai utilisé des tFileExist et pas de FTP mais le principe est le même.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    Ok, je viens de relancer TOS, j'ai testé et ca à l'air de fonctionner à présent.

    Je ne sais pas, il a pas dû aimé tous mes tests

    Merci pour ton aide

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

Discussions similaires

  1. coller dans une colonne tant que
    Par salluste dans le forum Excel
    Réponses: 1
    Dernier message: 26/03/2014, 15h03
  2. [XL-2010] Boucle dans un dossier
    Par sasafca dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 04/07/2013, 15h53
  3. Zipper en boucle dans un dossier
    Par Mysen dans le forum ANT
    Réponses: 1
    Dernier message: 10/12/2012, 17h46
  4. css dans un dossier différent que la page html
    Par zespoofiz dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 22/05/2006, 13h29
  5. Case à Coher dans Word en tant que signet
    Par beletteroi dans le forum Access
    Réponses: 3
    Dernier message: 24/11/2005, 19h47

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