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 :

Erreur à la compilation d'un CL


Sujet :

AS/400

  1. #1
    Membre régulier

    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Points : 75
    Points
    75
    Par défaut Erreur à la compilation d'un CL
    Bonjour,

    J'ai un problème assez étrange, du moins je ne le comprend pas.
    Je m'explique, j'ai un programme CL que je n'arrive pas à compiler avec l'erreur CPD0852 "fichier non trouvé dans QTEMP".
    Pourtant ce fichier à bien été créé dans QTEMP... et il existe bien, le nom est correct.
    J'effectue la même manipulation avec le profil de mon collègue et la compilation se déroule sans problèmes.
    Le fichier en question est le résultat d'un DSPOBJD qui est généré par le CL mais que je créer spécialement avant la compilation pour éviter cette erreur...
    J'avoue que là je ne comprend pas très bien...
    Je suppose que ça doit être une subtilité au niveau du profil, mais je n'ai pas noté de différence entre nos profil... sauf erreur de ma part.
    Est-ce que quelqu'un a déjà rencontré cette erreur?

    Merci
    Bertrand

  2. #2
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonjour.

    QTEMP, comme son nom l'indique, est une biblio d'objets temporaires. Chaque session (job) a sa QTEMP. Dès que tu ferme la session, elle est vidée. Elle doit se trouver dans la liste des biblios (*LIBL).

    Dans la session dans la quelle tu compiles, fais un DSPLIBL pour vérifier que QTEMP est bien là. Assure toi que ton fichier y est et lance la compil.

  3. #3
    Membre régulier

    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Points : 75
    Points
    75
    Par défaut
    Merci pour ta réponse !

    J'ai déjà vérifié que la bib est en ligne, et le fichier est bien présent. Je ne comprend pas pourquoi le compilateur ne voit pas le fichier.
    C'est pour cela que je pense a un problème sur le profil, dès que j'utilise le profil de mon collègue je n'ai pas d'erreurs...
    Il a la même liste de bib que moi, mon profil est en fait une copie du sien.

  4. #4
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Excuse moi de me répéter :

    Dans la même session :

    - fais DSPLIBL dans ta session.
    - fais 5 devant QTEMP et vérifie que ton fichier y est
    - et lance la compil.

    Si ça ne marche tjrs pas colle ici ton cl.

  5. #5
    Membre régulier

    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Points : 75
    Points
    75
    Par défaut
    Merci, j'avais bien compris ta demande, mon fichier est bien présent dans ma bib QTEMP.

    Je te met mon source en copie, bien que je ne comprenne pas pourquoi il bloque uniquement sur mon profil.

    Code : 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
    	     PGM
    /*  VARIABLES                                                        */ 
                 DCL        VAR(&DATJOUR) TYPE(*CHAR) LEN(6)                
                 DCL        VAR(&DATFO) TYPE(*CHAR) LEN(10)                 
                 DCL        VAR(&EPUDUR) TYPE(*CHAR) LEN(3)                 
                 DCL        VAR(&DATRET) TYPE(*CHAR) LEN(10)                
                 DCL        VAR(&DATEPU) TYPE(*CHAR) LEN(8)                 
                 DCL        VAR(&AN) TYPE(*CHAR) LEN(2)                     
                 DCL        VAR(&MOIS) TYPE(*CHAR) LEN(2)                   
                 DCL        VAR(&JOUR) TYPE(*CHAR) LEN(2)                   
                 DCL        VAR(&SIGNE) TYPE(*CHAR) LEN(1)                  
    /*  DECLARATION DU FICHIER EPUDET01                                 */  
                 DCLF       FILE(QTEMP/ATGPDET01)                           
    /*  MISE EN LIGNE DES BIBLIOTHÈQUES                                  */
                 ADDLIBLE   LIB(ATGP_TST)                                  
                 MONMSG     MSGID(CPF0000)                                 
                 ADDLIBLE   LIB(BEBDEV)                                   
                 MONMSG     MSGID(CPF0000)                                 
    /*  RECUPERATION DE LA DATE DU JOUR ET MISE AU FORMAT YYMMDD        */ 
                 RTVSYSVAL  SYSVAL(QDATE) RTNVAR(&DATJOUR)                 
                 CHGVAR     VAR(&AN) VALUE(%SST(&DATJOUR 5 2))             
                 CHGVAR     VAR(&MOIS) VALUE(%SST(&DATJOUR 3 2))           
                 CHGVAR     VAR(&JOUR) VALUE(%SST(&DATJOUR 1 2))           
                 CHGVAR     VAR(&DATFO) VALUE('20' *CAT &AN *CAT '-' +      
                              *CAT &MOIS *CAT '-' *CAT &JOUR)               
    /*  RECUPERATION DE LA DUREE DE GARDE (DTAARA EPUDTA)                */ 
                 RTVDTAARA  DTAARA(BEBVDEV/EPUDTA) RTNVAR(&EPUDUR)          
    /*  RECUPERATION DE LA LISTE DES FICHIERS DANS LA BIB FTP ET CREATION*/ 
    /*  DU FICHIER ATGPDET01                                             */ 
                 DSPOBJD    OBJ(ATGP_TST/*ALL) OBJTYPE(*ALL) +              
                              OUTPUT(*OUTFILE) OUTFILE(QTEMP/ATGPDET01)     
    /*  CHOIX DU SIGNE POUR LE CALCUL DE LA DATE DE RETOUR               */ 
                 CHGVAR     VAR(&SIGNE) VALUE('-')                          
    /*  APPEL DU PROGRAMME DE CALCUL DE LA DATE D'EPURATION              */ 
                  CALL       PGM(BEBVDEV/UTI002) PARM(&EPUDUR &DATFO +       
                               &DATRET &SIGNE)                               
     /*  MISE AU FORMAT DE LA DATE DE RETOUR ET AFFECTATION DANS LA VAR   */ 
     /*  DATEPU                                                           */ 
                  CHGVAR     VAR(&AN) VALUE(%SST(&DATRET 3 2))               
                  CHGVAR     VAR(&MOIS) VALUE(%SST(&DATRET 5 2))             
                  CHGVAR     VAR(&JOUR) VALUE(%SST(&DATRET 9 2))             
                  CHGVAR     VAR(&DATEPU) VALUE(&an *cat &mois *cat &jour)   
     /*  LECTURE LIGNE PAR LIGNE DU FICHIER ATGPDET01                     */ 
     /*           OPNDBF     FILE(QTEMP/ATGPDET01) OPTION(*INP)           */ 
                 RCVF                                                      
                 IF         COND(&DATRET = ODCTIM) THEN(DLTF FILE(&ODOBNM))
                 ENDPGM
    Merci

  6. #6
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Tu fais une qualification explicite :
    DCLF FILE(QTEMP/ATGPDET01)
    donc tu n'as même pas besoin d'avoir QTEMP dans la *LIBL.
    Ceci dit, je ne vois pas le pb : ATGPDET01 avec un 0 (zéro) ou O (Olivier).

    L'erreur tu l'as à la suite du DCLF, n'est ce pas ?

  7. #7
    Membre régulier

    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Points : 75
    Points
    75
    Par défaut
    C'est bien cela l'erreur se trouve juste après le DCLF.

    Quant au nom du fichier c'est un zéro et non pas un 'o'...

    J'ai pu travailler sur le profil de mon collègue et tout se passe bien...

    C'est un véritable casse tête...

  8. #8
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Il y a bien une solution de remplacement puisque tu crées le fichier par DSPOBJD dans le même pgm :

    - tu fais un DCLF QSYS/QADSPOBJ
    - après le DSPOBJD tu fais un OVRDBF QADSPOBJ QTEMP/ATGRDET01
    - tu fais le RCVF.

    PS : ajoute quand même un MONMSG CPF0864 (fin fichier) après le RCVF.

  9. #9
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par BBert Voir le message
    ...J'ai pu travailler sur le profil de mon collègue et tout se passe bien...
    Il se peut parce qu'il y a eu un essai concluant et le fichier existe dans sa QTEMP de session. Par contre toi tu initialises une session.
    Essaye avec le profil de ton collègue en ouvrant une nouvelle session.

  10. #10
    Membre régulier

    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Points : 75
    Points
    75
    Par défaut
    je vais essayer cette solution en début d'après midi, on fait un IPL suite a une intervention sur le réseau électrique.

    Je te tiens au courant

    Merci pour ton aide !

  11. #11
    Membre régulier

    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par Hédhili Jaïdane Voir le message
    Il se peut parce qu'il y a eu un essai concluant et le fichier existe dans sa QTEMP de session. Par contre toi tu initialises une session.
    Essaye avec le profil de ton collègue en ouvrant une nouvelle session.
    Mais avant la compile je copie le fichier que j'ai stocké dans un bib de test pour éviter cette erreur justement, que ce soit dans la session de mon collègue ou dans la mienne...

  12. #12
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Peut être ça n'a rien à voir avec les droits, mais fais un WRKOBJ sur le fichier copié dans ta QTEMP et vérifie que tu as les bons droits d'accès.

  13. #13
    Membre régulier

    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Points : 75
    Points
    75
    Par défaut
    mon profil a les droits en *all pour le fichier dans QTEMP

  14. #14
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    STP, après la copie du fichier dans QTEMP, essaye un DSPPFM.

  15. #15
    Membre régulier

    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Points : 75
    Points
    75
    Par défaut
    c'est fait; je vois bien tout le contenu de mon fichier...

  16. #16
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bizarre bizarre ??

    Ecoute, je viens de simuler ce que tu fais et ça marche avec ton pgm (réduit à l'essentiel). Il n'y a pas une épidémie de rage dans ta région par hasard en ce moment ? je plaisante.

    Franchement je ne vois pas, mais essaye, quand tu pourras, la solution que je t'ai indiquée avec QADSPOBJ

  17. #17
    Membre régulier

    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Points : 75
    Points
    75
    Par défaut
    lol

    Pas que je sache, mais on ne sait jamais... je croyais qu'il n'y avais pas de virus sur les iSerie... mdr

    Je vais le fignoler un peu, il faut que je le mette en prod ce soir...

    Je vais quand même essayer avec ta solution, je te dirais ce qu'il en est.

    Je te remercie pour ta patience et tes conseils !!


    Bertrand

  18. #18
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par BBert Voir le message
    l
    ... je croyais qu'il n'y avais pas de virus sur les iSerie... mdr
    Je confirme, il n'y en a pas, sauf copiés dans l'IFS mais inoffensifs pour l'AS400.

    J'essaierai de t'aider tant que je peux et d'autres en feront de même s'ils ont une explication.

  19. #19
    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
    Bertrand,

    Je crois que tu commets l'erreur classique avec QTEMP.
    Chaque JOB sur iSeries a une QTEMP particulière. Un job interactif est actif entre le logon (signon) et le signoff et a sa propre QTEMP, et un job batch est actif entre la soumission et la sortie de sa log et a également sa propre QTEMP qui n'est pas celle de l'interactif qui l'a soumis mais une QTEMP créée lors de chaque soumission.

    Je pense que tout simplement que le fichier est créé dans QTEMP de ta session (job) interactive et que la compil de ton programme s'effectue en batch, donc dans un autre job qui a sa propre QTEMP mais sans le fichier en question bien entendu.

  20. #20
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par Mercure Voir le message
    ...Je pense que tout simplement que le fichier est créé dans QTEMP de ta session (job) interactive et que la compil de ton programme s'effectue en batch, donc dans un autre job qui a sa propre QTEMP mais sans le fichier en question bien entendu.
    Bonjour Bertrand.

    Effectivement, si tu compiles en batch, le fichier ATGRDET01 n'est pas dans QTEMP du job où se fait la compil. Il fallait y penser. Merci Philippe.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Erreur de compilation après modification du Uses
    Par DevelOpeR13 dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2007, 14h23
  2. Réponses: 2
    Dernier message: 23/09/2003, 14h32
  3. Réponses: 10
    Dernier message: 22/09/2003, 21h58
  4. Réponses: 4
    Dernier message: 27/08/2003, 21h34
  5. Réponses: 2
    Dernier message: 04/03/2003, 23h24

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