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

z/OS Discussion :

quotte encore des quotte


Sujet :

z/OS

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut quotte encore des quotte
    Salut à tous,

    je ne parviens pas à faire fonctionner ce rexx à ause d'une hsitoire de quotte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
     "EXECIO * DISKR FICH1(FINIS STEM DS."           
      DO I = 1 TO 3                                  
         FILE = WORD(DS.I,1)                         
         X = LISTDSI("FILE")                         
         IF X = 0 THEN QUEUE DS.I ESLE NOP           
      END                                            
     "EXECIO * DISKW FICH2 (FINIS"
    j'aimerais vérifier si les fichiers sont présents.

    merci d'avance pour votre aide.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Points : 21
    Points
    21
    Par défaut
    Avec une ligne de ce type, cela devrait fonctionner mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X = LISTDSI("'"!!FILE!!"'")
    attention également au ESLE mal orthographié

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Bonjour,

    ça ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    
         5 +++  X = LISTDSI("'"!!FILE!!"'")                            
    IRX0043I Error running LISTDS02, line 5: Routine not found
    je le lance à partir d'un jcl

    //REXX0Z EXEC PGM=IRXJCL,PARM=('DSIS02')
    //SYSEXEC DD DISP=SHR,DSN=RTE.REXXLIB
    //SYSTSPRT DD SYSOUT=*
    //SYSTSIN DD SYSOUT=*
    //FICH1 DD DSN=ZAST.DUP,DISP=SHR
    //FICH2 DD DSN=ZART.BPRP.DUP2,DISP=SHR

  4. #4
    Membre actif
    Inscrit en
    Novembre 2009
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2009
    Messages : 165
    Points : 216
    Points
    216
    Par défaut
    Bonjour,

    Déjà, si tu veux seulement vérifier si tes fichiers existent, il ne faut pas utiliser la fonction LISTDSI qui n'est pas franchement appropriée.
    Il faut mieux utiliser la fonction SYSDSN(nom_fic) qui retourne OK quans le fichier existe.

    Il faudra donc mettre dans ton REXX:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X = SYSDSN("'"!!FILE!!"'")
    Les autres valeurs retournées sont les suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    MEMBER NOT FOUND
    MEMBER SPECIFIED, BUT DATASET IS NOT PARTITIONED
    DATASET NOT FOUND
    ERROR PROCESSING REQUESTED DATASET
    PROTECTED DATASET
    VOLUME NOT ON SYSTEM
    INVALID DATASET NAME, nom de fichier
    MISSING DATA SET NAME
    UNAVAILABLE DATASET
    Tu vas me dire, ça ne change pas mon autre problème...En réalité, le programme IRXJCL ne supporte pas les fonctions externes telles que LISTDSI, SYSDSN ... qui ne sont pas des instructions REXX

    Si tu veux faire fonctionner ton rexx en batch, je te conseille d'utiliser le jcl suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //ESSAI001 EXEC  PGM=IKJEFT01                                         
    //SYSTSPRT DD  SYSOUT=*,                                              
    //             DCB=(RECFM=FB)                                         
    //FICH1   DD DISP=SHR,DSN=TITI.TOTO.TATA                                                 
    //SYSTSIN  DD  *                                                      
     EX 'BIBLI.REXX(Nom_de_mon_rexx)' EXEC                             
    /*
    Ca devrait fonctionner beaucoup mieux.

  5. #5
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Bonjour Lemmings1406, et merci pour ta réponse précise.

    En effet, ça à l'air de mieux fonctionner.

    Par contre j'ai utilisé un job similaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    //XXDVRIF  EXEC PGM=IKJEFT01                                         
    //SYSEXEC  DD DISP=SHR,DSN=GRE.GTP                           
    //INC       DD DSN=A.B.TO,DISP=SHR                
    //INDA   DD DISP=SHR,                                              
    //   DSN=DF.FT.GT  
    //OUT      DD DSN=OUT.J.G,DISP=SHR                   
    //OUT2     DD DSN=OUT2.J.BG,DISP=SHR                   
    //SYSTSPRT DD SYSOUT=*                                               
    //SYSTSIN  DD DISP=SHR,DSN=GRE.GTP(CFTVRIF)
    Et ça ne fonctionne pas.

    J'ai les messages d'erreur :

    READY
    "EXECIO * DISKR IN (STEM LGCT
    IKJ56621I INVALID COMMAND NAME SYNTAX
    READY
    "EXECIO * DISKR INDATE (STEM DFT
    IKJ56621I INVALID COMMAND NAME SYNTAX
    READY
    FICDUMP=FICDUMP.1
    IKJ56621I INVALID COMMAND NAME SYNTAX
    READY


    C'est comme si il ne reconnaît pas que c'est un REXX..

    Pourtant en tête du rexx j'ai bien

    /*REXX*/

  6. #6
    Membre actif
    Inscrit en
    Novembre 2009
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2009
    Messages : 165
    Points : 216
    Points
    216
    Par défaut
    C'est normal, tu passes en sysin directement la source de ton rexx mais sans indiquer à l'utilitaire qu'il faut l'exécuter comme étant un REXX. De ce fait, ton job fait certainement un code 12 et te sort plein d'insultes.

    Modifie ta sysin en prenant exemple sur mon précédent message et ce sera gagner.

  7. #7
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    Bonjour
    Avec IRXJCL, ton rexx ne peut pas appeler des services TSO ou des "TSO/E external functions".
    LISTDSI et SYSDSN sont des "TSO/E external functions".

    Comme le suggère Lemmings1406, le seul moyen de lancer ton rexx est d'utiliser le programme IJKEFT01 (ou ikjeft1a ou IKJEFT1b).

    Par contre, je ne met jamais un nom de pds en sysin, je propose le job suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //ESSAI001 EXEC  PGM=IKJEFT01 
    //SYSTSPRT DD  SYSOUT=*
    //SYSEXEC   DD DISP=SHR,DSN=BIBLI.REXX
    ....
    ....
    //SYSTSIN  DD  *
     %CFTVRIF
    /*

  8. #8
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Bonjour bernard59139 et merci pour ton conseil.

    C'est vrai que ça me gênait un peu de mettre le pds en sysin, comme ça c'est beaucoup mieux.

    Merci encore à vous deux.

Discussions similaires

  1. Encore des problèmes avec le BDE
    Par Flint dans le forum C++Builder
    Réponses: 19
    Dernier message: 31/12/2007, 23h26
  2. encore des menu popup
    Par meli0207 dans le forum MFC
    Réponses: 8
    Dernier message: 03/06/2005, 15h57
  3. Réponses: 8
    Dernier message: 10/08/2004, 11h49
  4. probleme de date (toujours et encore des dates)
    Par Yannesco dans le forum SQL
    Réponses: 3
    Dernier message: 02/02/2004, 19h04

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