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

JCL - SORT Discussion :

Utilisation d'un step plusieurs fois, dans un jcl


Sujet :

JCL - SORT

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Points : 39
    Points
    39
    Par défaut Utilisation d'un step plusieurs fois, dans un jcl
    Bonjour,

    Dans un jcl, je souhaite utiliser plusieurs fois le même step. En fait, j'ai la même procédure à lancer, pour trois fichiers différents. Je voudrais éviter de lancer la procédure, trois fois de suite, en changeant à chaque fois, de fichier. Existe t-il une instruction comme "when" ou d'autres itérations, pour le jcl ?

    Aider-moi svp.

    Twisty.

  2. #2
    Membre éclairé Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Points : 802
    Points
    802
    Par défaut
    Y a t'il des conditions d’exécution entre ces steps, ou sont-ils enchainés. Dans ce dernier cas tu fais 3 steps identiques avec les DSN qui change à chaque step.

    .

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Points : 39
    Points
    39
    Par défaut step volumineux
    Merci d'avoir répondu. Mais, en fait, ce step est volumineux. Donc, pour un confort visuel, soit une meilleur maintenance, es-t-il possible de boucler sur ce step (avec condition RC=00 biensur), en changeant à chaque fois de fichier ?

    Twisty

  4. #4
    Membre chevronné Avatar de bernard59139
    Profil pro
    Retired
    Inscrit en
    Octobre 2006
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retired

    Informations forums :
    Inscription : Octobre 2006
    Messages : 956
    Points : 2 071
    Points
    2 071
    Par défaut
    Bonjour

    Il n'y a aucune itération possible dans un jcl.

    Bonne journée

  5. #5
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Et la solution d'une procédure dite 'INSTREAM PROCEDURE' ?

  6. #6
    Membre éclairé Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Points : 802
    Points
    802
    Par défaut
    Un JCL appel une procédure 3 fois en lui passant en paramètre le DSN à utiliser, exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //MONJOB   JOB ...
    //*                                                                             
    //   JCLLIB ORDER=pds.où.trouver.la.proc
    //*
    //* Step 1 sur 3 - Appel procédure PROCEDUR avec param DSNAME
    //STPFIC01  EXEC PROCEDUR,DSNAME=mon.fichier.n01
    //*
    //* Step 2 sur 3 - Appel procédure PROCEDUR avec param DSNAME
    //STPFIC02  EXEC PROCEDUR,DSNAME=mon.fichier.n02
    //*
    //* Step 3 sur 3 - Appel procédure PROCEDUR avec param DSNAME
    //STPFIC03  EXEC PROCEDUR,DSNAME=mon.fichier.n03
    //*
    La procédure disponible dans pds.où.trouver.la.proc(PROCEDUR) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //STEPTRT1  EXEC PGM=monpgm
    //DD0000IN  DD DISP=SHR,DSN=&DSNAME,
    //             SPACE=(TRK,5)
    //             DCB=(REFM=FB,LRECL=120,BLKSIZE=800)
    //...

    .

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Points : 39
    Points
    39
    Par défaut complément de la question
    Malheureusement, j'ai le message suivant :

    UNIDENTIFIED KEYWORD DSNAME

    Donc, après exec pgm=procedure , on devrait avoir une autre instruction que " DSNAME" .

    Pouvez-vous m'aider ?

    Merci d'avance.

    Twisty

  8. #8
    Membre éclairé Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Points : 802
    Points
    802
    Par défaut
    Peux-tu coller ton JCL, la proc, et le compte rendu en erreur ?

  9. #9
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 6
    Points
    6
    Par défaut DSNAME
    bonjour,
    DSNAME est surement un mot-clés réservé, utilise plutot DSN ou FILE....

    Pour plus de souplesse tu peux aussi utiliser une proc "instream" pour les tests c'est plus facile.....

    bon courage

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Points : 39
    Points
    39
    Par défaut complément de la question
    Le INSTREAM PROCEDURE, avec l'instruction PEND, fonctionne bien. Mais, j'aurais voulu utiliser deux fichiers, du genre :

    STEP1 EXEC PROC=PROCEDUR,FICH1='nomfichier1',FICH2='nomfichier2'

    Mais, FICH2 est rejeté par le système par le message suivant :

    UNIDENTIFIED OPERATION FIELD

    Existe-t-il une autre instruction ?

    Merci d'avance.

    Twisty

  11. #11
    Membre chevronné Avatar de bernard59139
    Profil pro
    Retired
    Inscrit en
    Octobre 2006
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retired

    Informations forums :
    Inscription : Octobre 2006
    Messages : 956
    Points : 2 071
    Points
    2 071
    Par défaut
    Bonjour

    Actuellement, il n'y a aucun moyen de faire du jcl "dynamique".
    Un JCL est statique, point barre. Il n'y a aucune boucle possible.

    La seule facilité qui existe est de "sauter" des steps par les tests sur RETURN-CODE ou ABEND.

    bonne journée

  12. #12
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Citation Envoyé par twisty Voir le message
    Le INSTREAM PROCEDURE, avec l'instruction PEND, fonctionne bien. Mais, j'aurais voulu utiliser deux fichiers, du genre :

    STEP1 EXEC PROC=PROCEDUR,FICH1='nomfichier1',FICH2='nomfichier2'

    Mais, FICH2 est rejeté par le système par le message suivant :

    UNIDENTIFIED OPERATION FIELD

    Existe-t-il une autre instruction ?

    Merci d'avance.

    Twisty
    Si ta procédure n'a prévu qu'un paramètre (est-ce le cas ?) tu ne peux pas l'utiliser avec deux paramètres, ça me semble assez normal ... mais est-ce bien ça ton problème ?

  13. #13
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 6
    Points
    6
    Par défaut JCL Dynamique
    Bonjour,
    en fait il est tout de même possible de faire du JCL "dynamique" via un générateur de JCL....

    le plus simple est de le faire avec un REXX, qui soumettra le JCL (ou la procédure "in steream" ou "cataloguée" au reader interne.
    les variables peuvent se passer soit directement, (en batch ou via saisie) soit par la lecture d'un fichier contenant les "variables".


  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Points : 39
    Points
    39
    Par défaut complément de réponse
    L'instream procedure fonctionne bien maintenant, et le cas, vu par "Peut-êtreUneRéponse" (passage du fichier en paramètre avec un nom différent de dsname (ex: fichier)) est résolu. Toutefois, dans tous ces cas, il faut mettre les cartes sysin dans un membre de pds (déclaré en JCLLIB).

    Merci à tous.

  15. #15
    Membre éclairé Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Points : 802
    Points
    802
    Par défaut
    Citation Envoyé par twisty Voir le message
    [...]dans tous ces cas, il faut mettre les cartes sysin dans un membre de pds
    Oui pas de sysin "inline" dans une procédure.

    .

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Points : 27
    Points
    27
    Par défaut
    Bonjour,

    Pour gérer le problème de la sysin dans une proc j'utilise un petit programme (assembleur) qui copie les données passées en paramètre à l'appel du programme dans un fichier. Ce fichier est ensuite réutilisé dans la sysin.
    EX :
    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
    //SENDAOP    PROC                         
    //*                                       
    ....../........
    //STEP00  EXEC PGM=CGSGEN,PARM='PUT ''WSYS.EXPORT.AOP'' &NETNAME..TXT'   
    //SYSOUT   DD DISP=(,CATLG,DELETE),DSN=WSYS.CGSGEN.FTP,                  
    //            SPACE=(TRK,(1,1),RLSE)                                     
    //*       
    ..../.....                                                               
    //SFTP     EXEC PGM=FTP,PARM='139.160.120.22(EXIT TIMEOUT 180)'  
    //NETRC     DD SYSOUT=*    
    ..../.......
    //SYSIN     DD DSN=WSYS.CGSGEN.FTP,DISP=SHR     
    //*                                                  
    //    PEND         
    //*
    //STEP00 EXEC SENDAOP,NETNAME=WSFR02401

    Je peux envoyer le load du programme si besoin.

    Bonne journée

    Jean-Jacques

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 20
    Points : 23
    Points
    23
    Par défaut
    Une solution possible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //MONJOB JOB .......
    //*
    //*
    //JCLLIB JCLLIB ORDER=(PDS.OU.SE.TROUVE.MON.INCLUDE)
    //*
    //         INCLUDE MEMBER=MONSTEP
    //            DSN=MON.FICHIER.N1
    //*
    //         INCLUDE MEMBER=MONSTEP
    //            DSN=MON.FICHIER.N2
    //*
    //         INCLUDE MEMBER=MONSTEP
    //            DSN=MON.FICHIER.N3
    Et dans la bibliotheque PDS.OU.SE.TROUVE.MON.INCLUDE tu mets le membre MONSTEP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //STEP     EXEC PGM=MONPROG
    //SYSOUT   DD SYSOUT=*
    ...
    //FICHIER DD DISP=SHR,
    En faisant bien attention que tu puisses mettre le DSN de ton fichier à la suite de MONSTEP. Raison de la virgule à la fin.

    Lors du SUB, le contenu de MONSTEP sera mis à la place de // INCLUDE MEMBER=MONSTEP

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/07/2014, 09h37
  2. [2.x] Utiliser le même formulaire plusieurs fois dans la même page
    Par Daecarios dans le forum Symfony
    Réponses: 3
    Dernier message: 06/07/2012, 14h53
  3. utilisation de script js plusieurs fois dans une même page
    Par tribalnanasss dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/07/2010, 00h34
  4. Utiliser exec plusieurs fois dans find
    Par Tex-Twil dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 12/03/2008, 14h49
  5. Réponses: 2
    Dernier message: 14/06/2006, 08h53

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