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

AS/400 Discussion :

CL :Tester sur l'existence d'un fichier


Sujet :

AS/400

  1. #1
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut CL :Tester sur l'existence d'un fichier
    Bonjour,
    Est ce qu'il y a une commande (langage CL) pour tester sur l'existence d'un fichier dans une bibliothèque donnée ?
    En fait je veux copier un fichier à partir d'une bibliothèque BIB1 vers QTEMP à chaque exécution d'un CL CL1. Mais cette copie ne doit normalement s'ffectuer que lors du premier lancement du CL (question d'optimisation). Comme ça, si le fichier y existe déjà, c'est pas la peine de l'y copier.
    Merci d'avance.
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CHKOBJ     OBJ(QTEMP/FICHIER) OBJTYPE(*FILE)
    MONMSG     MSGID(CPF9801) EXEC(DO)       
    ... n'existe pas
    ENDDO

  3. #3
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Merci pour ta réponse,
    En fait les insctructions que je veux exécuter au cas où l'objet n'existe pas dans le QTEMP sont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CPYF       FROMFILE(MABIB/&FILE) TOFILE(QTEMP/&FILE) +
                  MBROPT(*ADD) CRTFILE(*YES)
    Ce code dois-je l'insérer entre le MONMSG et le ENDDO ?
    ou comment faire ?


    Citation Envoyé par K2R400 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CHKOBJ     OBJ(QTEMP/FICHIER) OBJTYPE(*FILE)
    MONMSG     MSGID(CPF9801) EXEC(DO)       
    ... n'existe pas
    ENDDO
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Citation Envoyé par JauB Voir le message
    Ce code dois-je l'insérer entre le MONMSG et le ENDDO ? ou comment faire ?
    Oui.

    Pour que le CLP ne plante pas tu peux monitorer les erreurs.
    Dans ton cas du peux directement faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CPYF       FROMFILE(MABIB/&FILE) TOFILE(QTEMP/&FILE) +
                  MBROPT(*REPLACE) CRTFILE(*YES)
    MONMSG CPF0000

  5. #5
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Mais c'est pas ça ce que je cherche à faire !
    En fait je veux tester si lefichier existe déjà dans le QTEMP,si oui je ne le copie pas, sinon je dois lecopier à partir de MABIB.
    Voilà comment j'ai procédé (suite à ton précédente réponse):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    PGM        PARM(&FILE)
                 DCL        VAR(&FILE) TYPE(*CHAR) LEN(10)
                 CHKOBJ     OBJ(QTEMP/&FILE) OBJTYPE(*FILE)
                 MONMSG     MSGID(CPF9801) EXEC(DO)
                    CPYF       FROMFILE(MABIB/&FILE) TOFILE(QTEMP/&FILE) +
                                 MBROPT(*ADD) CRTFILE(*YES)
                 ENDDO
                 CLRPFM     QTEMP/&FILE
                 ENDPGM
    J'ai débougué sur le CLP et ça marche
    Merci.
    Citation Envoyé par K2R400 Voir le message
    Oui.

    Pour que le CLP ne plante pas tu peux monitorer les erreurs.
    Dans ton cas du peux directement faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CPYF       FROMFILE(MABIB/&FILE) TOFILE(QTEMP/&FILE) +
                  MBROPT(*REPLACE) CRTFILE(*YES)
    MONMSG CPF0000
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Euhhh, attention après ta copie, tu effaces le contenu du fichier

  7. #7
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Oui oui je le clear pour y écrire d'une façon temporaire (par utilisateur), j'en suis conscient

    Citation Envoyé par K2R400 Voir le message
    Euhhh, attention après ta copie, tu effaces le contenu du fichier
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  8. #8
    Membre habitué
    Inscrit en
    Novembre 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 149
    Points : 149
    Points
    149
    Par défaut Tester l'existance d'un fichier
    Bonjour,

    pour ma part je pense que un CPF9801 serait plus indiqué dans ce cas
    objet non trouvé dans la bibliothèque (le cpf0000 est plutot bateau comme detection d'erreur)
    une remarque:
    pourquoi conserver des objets dans qtemp, par convention dans beaucoup d'entreprise qtemp est une librairie d'objets temporaires qui ne sont sensés servir que le temps d'execution des programmes qui les appellent.

    mais chacun fait ce qu'il veut...........

    bien cordialeemnt

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Copie dans QTEMP...
    Citation Envoyé par JauB Voir le message
    Mais c'est pas ça ce que je cherche à faire !
    En fait je veux tester si lefichier existe déjà dans le QTEMP,si oui je ne le copie pas, sinon je dois lecopier à partir de MABIB.
    Voilà comment j'ai procédé (suite à ton précédente réponse):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    PGM        PARM(&FILE)
                 DCL        VAR(&FILE) TYPE(*CHAR) LEN(10)
                 CHKOBJ     OBJ(QTEMP/&FILE) OBJTYPE(*FILE)
                 MONMSG     MSGID(CPF9801) EXEC(DO)
                    CPYF       FROMFILE(MABIB/&FILE) TOFILE(QTEMP/&FILE) +
                                 MBROPT(*ADD) CRTFILE(*YES)
                 ENDDO
                 CLRPFM     QTEMP/&FILE
                 ENDPGM
    J'ai débougué sur le CLP et ça marche
    Merci.

    Bonjour,
    Je ne vois pas l'intérêt de copie dans QTEMP..comme son nom l'indique c'est temporaire, cela n'existe que pendant la durée du travail, à moins que nous n'ayez détourner de son intention première...

  10. #10
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Tout simplement parce que je dois remplir un fichier par utilisateur afin de l'imprimer. En copiant le fichier dans QTEMP je suis sûr que chaque utilisateur écrira dans son propre fichier (car la QTEMP se crée par session, elle n'est pas partagée entre les différents utilisateurs connectés, d'où son intérêt !)
    Citation Envoyé par VEVERT59 Voir le message
    Bonjour,
    Je ne vois pas l'intérêt de copie dans QTEMP..comme son nom l'indique c'est temporaire, cela n'existe que pendant la durée du travail, à moins que nous n'ayez détourner de son intention première...
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Un CRTDUPOBJ à la place du CPYF me semblerait plus approprié dans ce CL.

  12. #12
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Why ?
    Le fichier que je copie et toujours à blanc ! par le CPYF c'est comme si je copie juste la structure (dans le QTEMP) !

    Citation Envoyé par Mercure Voir le message
    Un CRTDUPOBJ à la place du CPYF me semblerait plus approprié dans ce CL.
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  13. #13
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Because

    1. Ce n'est pas la bonne méthode pour dupliquer un fichier ou un objet
    2. La commande CRTDUPOBJ est faite pour cela
    3. CRTDUPOBJ est plus rapide que CPYF
    4. Avec CRTDUPOBJ, on peut dupliquer le fichier ou l'objet avec ou sans les données qu'il est susceptible de contenir. Avec CPYF, on est appelé à clearer les éventuelles données par sécurité et c'est d'ailleurs bien ce que tu fais
    5. ...


    J'en oublie sans doute mais ce sont là les éléments qui me viennent de suite à l'esprit.

  14. #14
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    OK, je suis convaincu



    Citation Envoyé par Mercure Voir le message
    Because

    1. Ce n'est pas la bonne méthode pour dupliquer un fichier ou un objet
    2. La commande CRTDUPOBJ est faite pour cela
    3. CRTDUPOBJ est plus rapide que CPYF
    4. Avec CRTDUPOBJ, on peut dupliquer le fichier ou l'objet avec ou sans les données qu'il est susceptible de contenir. Avec CPYF, on est appelé à clearer les éventuelles données par sécurité et c'est d'ailleurs bien ce que tu fais
    5. ...


    J'en oublie sans doute mais ce sont là les éléments qui me viennent de suite à l'esprit.
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


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

Discussions similaires

  1. Rewritecond sur l'existence d'un fichier
    Par khayyam90 dans le forum Apache
    Réponses: 3
    Dernier message: 04/06/2013, 21h11
  2. [Débutant] information sur l'existence d'un fichier du même nom
    Par galeobdolon dans le forum MATLAB
    Réponses: 2
    Dernier message: 19/03/2013, 15h28
  3. Tester la non existence d'un fichier
    Par Pharmacos dans le forum Débuter
    Réponses: 3
    Dernier message: 20/05/2008, 20h25
  4. Pb sur l'existence d'un fichier dans un repertoire
    Par stardeus dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 02/03/2007, 14h36
  5. Réponses: 17
    Dernier message: 18/08/2006, 13h13

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