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 :

Extraction JCL OUTREC


Sujet :

JCL - SORT

  1. #1
    Membre à l'essai
    Ingénieur d'études et développement COBOL PACBASE
    Inscrit en
    Juin 2012
    Messages
    13
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur d'études et développement COBOL PACBASE

    Informations forums :
    Inscription : Juin 2012
    Messages : 13
    Points : 13
    Points
    13
    Par défaut Extraction JCL OUTREC
    Bonjour à tous,

    Je souhaite réaliser une extraction au moyen d'un JCL.
    J'ai un fichier en entrée contenant 3 rubriques:
    NODGA1 NODGA2 NODGA4
    1111111 2222222 3333333
    0000000 5555555 0000000

    Je souhaite extraire ces 3 rubriques dans un fichier de sortie en n'incluant que les rubriques non nulles

    Fichier de sortie:
    1111111
    2222222
    3333333
    5555555


    J'ai essayé avec un OUTREC IFTHEN mais ce n'est pas concluant.

    Quelqu'un aurait-il une idée pour réaliser ceci ?

    Merci d'avance

  2. #2
    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
    Sur un sujet assez voisin = > voir ici

  3. #3
    Membre à l'essai
    Ingénieur d'études et développement COBOL PACBASE
    Inscrit en
    Juin 2012
    Messages
    13
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur d'études et développement COBOL PACBASE

    Informations forums :
    Inscription : Juin 2012
    Messages : 13
    Points : 13
    Points
    13
    Par défaut Merci
    Merci, pour ce lien. Je vais pouvoir m'en sortir avec ça !
    Le seul problème maintenant c'est de voir si ce type de manipulation de JCL est autorisée sur le SI.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Points : 266
    Points
    266
    Par défaut
    Bonjour,

    Si c'est pour mettre en production : un composant PACBASE serait je pense plus approprié d'un point de vue maintenabilité et évolutivité.

  5. #5
    Membre à l'essai
    Ingénieur d'études et développement COBOL PACBASE
    Inscrit en
    Juin 2012
    Messages
    13
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur d'études et développement COBOL PACBASE

    Informations forums :
    Inscription : Juin 2012
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Un analyste d'exploitation m'a dit que les IFTHEN étaient rarement utilisés et me conseillé d'utiliser plutôt des INCLUDE ou OMIT.

    Or dans mon cas j'ai besoin d'écrire sur plusieurs enregistrements dans le fichier de sortie à partir d'un enregistrement en entrée ce qui n'est pas possible avec un INCLUDE ou OMIT à ma connaissance.

    Voici mon code de JCL (en partie)

    Extraire deux rubriques si elles sont non nulles (seule la deuxième peut être nulle)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    SORT FIELDS=COPY                   
    OUTFIL IFTHEN=(WHEN=(82,7,PD,NE,0,       
                     AND,89,7,PD,NE,0),
           BUILD=(14:82,7,/,           
                  14:89,7)),           
           IFTHEN=(WHEN=(82,7,PD,NE,0, 
                     AND,89,7,PD,EQ,0),
           BUILD=(14:82,7))

  6. #6
    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
    Pour ton travail, il n'y a pas mieux que le IFTHEN. Tout autre truc sera beaucoup plus complexe.

    Et ce n'est pas parce que c'est rarement utilisé que tu n'as pas le droit d'utiliser.

  7. #7
    Membre à l'essai
    Ingénieur d'études et développement COBOL PACBASE
    Inscrit en
    Juin 2012
    Messages
    13
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur d'études et développement COBOL PACBASE

    Informations forums :
    Inscription : Juin 2012
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Merci à tous pour vos réponses.

    J'ai un autre soucis lorsque je teste ce JCL car la longueur du fichier d'entrée n'est pas la même que celle du fichier de sortie (c'est voulu car le fichier de sortie est ensuite utilisé par un programme qui attend une telle longueur de fichier).

    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
    //SORTIN   DD  DSN=J085557.PUBLIC.VISION36.TU.SJD310, 
    //             DISP=SHR                               
    //SYSIN    DD  *                                      
     SORT FIELDS=COPY                                     
     OUTFIL IFTHEN=(WHEN=(82,7,PD,NE,0,                   
                      AND,89,7,PD,NE,0),                  
            BUILD=(20:82,7,/,                             
                   20:89,7)),                             
            IFTHEN=(WHEN=(82,7,PD,NE,0,                   
                      AND,89,7,PD,EQ,0),                  
            BUILD=(20:82,7))                              
    /*                                                    
    //SORTOUT  DD  DSN=J085557.PUBLIC.VISION36.TU.SJD330, 
    //             DISP=(NEW,CATLG,DELETE),               
    //             UNIT=DISK,                             
    //             SPACE=(12250,(1,1),RLSE),              
    //             DCB=(RECFM=FB,LRECL=245,BLKSIZE=12250)
    Le fichier de sortie a une longueur de 245 alors que celui d'entrée de 248 et je part en ABEND avec un message "SORTOUT HAS INCOMPATIBLE LRECL".

    Y-a-t'il une option pour spécifier une longueur de fichier différente ?

    D'avance, merci.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 63
    Points : 93
    Points
    93
    Par défaut
    salut,

    je connais pas l'option.

    pourquoi pas utiliser un step intermédiaire avec IEBGENER (248 -> tri -> 248 -> iebgener -> 245)

    ++

  9. #9
    Membre à l'essai
    Ingénieur d'études et développement COBOL PACBASE
    Inscrit en
    Juin 2012
    Messages
    13
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur d'études et développement COBOL PACBASE

    Informations forums :
    Inscription : Juin 2012
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Oui c'est une bonne idée mais je ne maîtrise pas IEBGENER.
    J'ai essayé avec ça:

    Fichier d'entrée en SYSUT1 (longueur 248)
    Fichier de sortie en SYSUT2 (longueur 245)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //REPRO1   EXEC PGM=IEBGENER,                        
    //             COND=(4,LT)                           
    //SYSPRINT DD  SYSOUT=*                              
    //SYSUT1   DD  DSN=J085557.PUBLIC.VISION36.HG0VI007, 
    //             DISP=SHR                              
    //SYSUT2   DD  DSN=J085557.PUBLIC.VISION36.HG0VI017, 
    //             DISP=(NEW,CATLG,DELETE),              
    //             UNIT=DISK,                            
    //             SPACE=(12250,(11,6),RLSE),            
    //             DCB=(RECFM=FB,LRECL=245,BLKSIZE=12250)
    //SYSIN    DD  DUMMY
    J'obtiens un message en SYSPRINT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IEB311I CONFLICTING DCB PARAMETERS

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Août 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 63
    Points : 93
    Points
    93
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //SYSIN    DD  *         
      GENERATE MAXFLDS=1     
      RECORD FIELD=(245,1,,1)
    //*

  11. #11
    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
    Mais dans ton fichier de sortie tu mets quoi de la colonne 8 à 245 ?

  12. #12
    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
    change:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     SORT FIELDS=COPY                                     
     OUTFIL IFOUTLEN=245,
            IFTHEN=......

  13. #13
    Membre à l'essai
    Ingénieur d'études et développement COBOL PACBASE
    Inscrit en
    Juin 2012
    Messages
    13
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur d'études et développement COBOL PACBASE

    Informations forums :
    Inscription : Juin 2012
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Merci à tous, pour vos messages.

    Je vais essayer avec le IFOUTLEN=245, je ne connaissais pas cette option.
    La solution de l'analyste d'exploitation était de faire un fichier intermédiaire pour changer la taille.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Août 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 63
    Points : 93
    Points
    93
    Par défaut
    fonce pour l'option IFOUTLEN ... bien mieux que l'iebgener

    ++

  15. #15
    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 bernard59139 Voir le message
    change:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     SORT FIELDS=COPY                                     
     OUTFIL IFOUTLEN=245,
            IFTHEN=......
    Bien vu ... je ne connaissais pas cette option (il est vrai qu'il y a beaucoup d'options et sous-options dans DFSORT / ICETOOL ... ). Bien sûr et comme il a déjà été dit cette solution en une passe est beaucoup plus simple et élégante qu'une solution avec un STEP intermédiaire ...

Discussions similaires

  1. Extraction de mots clés
    Par Olive1808 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 01/02/2016, 20h49
  2. JCL de création fichier plat àpd extraction DB2
    Par bibi19 dans le forum JCL - SORT
    Réponses: 1
    Dernier message: 30/03/2008, 18h45
  3. [tables systèmes] extraction de la structure d'une base
    Par laffreuxthomas dans le forum Autres SGBD
    Réponses: 6
    Dernier message: 23/03/2006, 13h24
  4. requête d'extraction de lieux (st et saint)
    Par sdchamplas dans le forum Langage SQL
    Réponses: 8
    Dernier message: 20/02/2003, 11h17
  5. Extraction des phrases d'un Texte
    Par LE CHAKAL dans le forum Langage
    Réponses: 6
    Dernier message: 19/08/2002, 21h23

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