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 :

Include Cond et TAG


Sujet :

z/OS

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Points : 184
    Points
    184
    Par défaut Include Cond et TAG
    Salut à vous

    J'ai une interrogation sur l'utilisation d'INCLUDE COND dans un SORT.

    Je souhaites filtrer un fichier pour ne conserver que certaines valeurs dans une zone bien précise mais en fonction de la valeur filtrée, je souhaites ajouter un TAG en fin de fichier (OUTREC). Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    XXX VALA XXX
    XXX VALA XXX
    XXX VALB XXX
    XXX VALA XXX
    XXX VALB XXX
    XXX VALB XXX
    XXX VALC XXX
    XXX VALB XXX
    Je souhaites filtrer uniquement les VALA et VALB et obtenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    XXX VALA XXX NOMA
    XXX VALA XXX NOMA
    XXX VALB XXX NOMB
    XXX VALA XXX NOMA
    XXX VALB XXX NOMB
    XXX VALB XXX NOMB
    XXX VALB XXX NOMB
    Savez vous comment je peux m'y prendre ?
    « Ne me faites pas d'objections.
    Les difficultés en feront assez d'elles-mêmes. »

    sir Winston Churchill

  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
    Je suggère une combinaison avec OUTFIL/IFTHEN et INCLUDE ...

    Soit (exemple testé) :

    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
    //SORT EXEC PGM=SORT 
    //* RESTRUCTURATION SELECTIVE ET SELECTION 
    //SYSOUT DD SYSOUT=* 
    //SYSIN DD * 
     OPTION COPY 
     OUTFIL IFTHEN=(WHEN=(5,4,CH,EQ,C'VALA'), 
             BUILD=(1,12,C' NOMA')), 
            IFTHEN=(WHEN=(5,4,CH,EQ,C'VALB'), 
             BUILD=(1,12,C' NOMB')) 
     INCLUDE COND=(5,4,CH,EQ,C'VALA',OR,5,4,CH,EQ,C'VALB') 
    //SORTOUT DD SYSOUT=* 
    //SORTIN DD * 
    XXX VALA XXX 
    XXX VALA XXX 
    XXX VALB XXX 
    XXX VALA XXX 
    XXX VALB XXX 
    XXX VALB XXX 
    XXX VALC XXX 
    XXX VALB XXX

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Points : 184
    Points
    184
    Par défaut
    Merci beaucoup, je vais réfléchir à cette solution car j'ai beaucoup de VAL* mais c'est un bon départ ...
    « Ne me faites pas d'objections.
    Les difficultés en feront assez d'elles-mêmes. »

    sir Winston Churchill

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Points : 184
    Points
    184
    Par défaut
    J'ai réalisé une ébauche mais j'ai toujours ce message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WER001A  COL 1 OR 1-15 NOT BLANK
    Voici ma SYSIN :

    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
    OPTION COPY                                                               
    OUTFIL IFTHEN=(WHEN=(1,8,CH,EQ,C'JOBNAME '),BUILD=(1,137,10X)),           
           IFTHEN=(WHEN=(1,8,CH,EQ,C'AAAAAAAA'),BUILD=(1,137,C' VALA      ')),
           IFTHEN=(WHEN=(1,8,CH,EQ,C'BBBBBBBB'),BUILD=(1,137,C' VALB      ')),
                 *                                                            
           IFTHEN=(WHEN=(1,8,CH,EQ,C'CCCCCCCC'),BUILD=(1,137,C' VALC      ')),
           *                                                                  
           IFTHEN=(WHEN=(1,8,CH,EQ,C'DDDDDDDD'),BUILD=(1,137,C' VALD      '))
    INCLUDE COND=(1,8,CH,EQ,C'JOBNAME ',OR,
                  1,8,CH,EQ,C'AAAAAAAA',OR,
                  1,8,CH,EQ,C'BBBBBBBB',OR,
                  1,8,CH,EQ,C'CCCCCCCC',OR,
                  1,8,CH,EQ,C'DDDDDDDD')
    
    WER001A  COL 1 OR 1-15 NOT BLANK                   
    WER275A  NO KEYWORDS FOUND ON CONTROL STATEMENT    
    WER211B  SYNCSMF  CALLED BY SYNCSORT; RC=0000      
    WER449I  SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE
    Savez vous pourquoi ? Je ne trouve pas de doc claires ...
    « Ne me faites pas d'objections.
    Les difficultés en feront assez d'elles-mêmes. »

    sir Winston Churchill

  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
    Aie ... semble-t-il, c'est SYNCSORT que tu utilises ("l'autre" tri) ... moi je t'ai donné une solution à base de DFSORT (le tri "standard" d'IBM) ... là je ne peux plus t'aider ...

  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
    3 choses:
    1. syncsort respecte (et doit) respecter la syntaxe DFSORT
    2. en sysin, la colonne 1 doit être à blanc (sauf cas particulier=
      ce qui n'est pas le cas dans ton exemple
    3. toujours en sysin, ne jamais dépasser la colonne 71, sauf à mettre en 72 un caractère de "continuation à la ligne suivante".
      dans ton exemple, des lignes font 75c.

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Points : 184
    Points
    184
    Par défaut
    OK merci pour vos précisions respectives.

    Ma SYSIN est générée en amont par les STEP précédent mais je suis confronté à un autre problème.

    Pour générer mes OUTFIL, j'utilise un JCL avec OUTREC sur un fichier en entrée contenant mes valeurs mais je ne sais pas comment générer deux lignes pour un même enregistrement en entrée pour avoir ma commande OUTFIL sur deux lignes ... ceci afin de ne pas dépasser la colonne 72 !

    Je fais un premier STEP comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    OPTION COPY                                                         
    OUTREC FIELDS=(C'        IFTHEN=(WHEN=(1,8,CH,EQ,C''',1,8,10,10,28X)
    Puis avec le premier fichier généré, je passe ce second STEP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    OPTION COPY                                                         
    OUTREC FIELDS=(1,42,C'''),BUILD=(1,137,C'' ',43,10,C''')),',5X)
    Est-il possible pour chaque enregistrement de générer deux lignes comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
              IFTHEN=(WHEN=(1,8,CH,EQ,C'DDDDDDDD'),
              BUILD=(1,137,C' VALD      '))
    PS : je n'ai pas reporté sur mon exemple mais la première colonne est bien vide...
    « Ne me faites pas d'objections.
    Les difficultés en feront assez d'elles-mêmes. »

    sir Winston Churchill

  8. #8
    Membre habitué
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Points : 184
    Points
    184
    Par défaut
    Trouvé !

    J'ai utilisé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OUTFIL BUILD=(1,45,35X,/,7X,46,29,43X)
    « Ne me faites pas d'objections.
    Les difficultés en feront assez d'elles-mêmes. »

    sir Winston Churchill

  9. #9
    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
    Du SORT qui génère du SORT ... moi je dis c'est beau ...

  10. #10
    Membre régulier
    Homme Profil pro
    Ingénieur d'étude Mainframe
    Inscrit en
    Septembre 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur d'étude Mainframe
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 61
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par Luc Orient Voir le message
    Du SORT qui génère du SORT ... moi je dis c'est beau ...
    En effet... C'est comme compter le nombre d'enregs en récursif

  11. #11
    Membre habitué
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Points : 184
    Points
    184
    Par défaut
    Oui mais ça marche ... j'ai une SYSIN dynamique en fonction d'une liste de valeur d'un fichier en entrée ...

    A moins que vous ayez une meilleurs solution !
    « Ne me faites pas d'objections.
    Les difficultés en feront assez d'elles-mêmes. »

    sir Winston Churchill

  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 Antichoc Voir le message
    Oui mais ça marche ... j'ai une SYSIN dynamique en fonction d'une liste de valeur d'un fichier en entrée ...

    A moins que vous ayez une meilleurs solution !
    Pas de meilleure solution ... Mon propos n'est nullement négatif car je trouve la solution plutôt originale voire élégante ... Quand j'étais DBA DB2, il m'arrivait parfois d'écrire du SQL qui générait du SQL et c'était très pratique ...

    Et puis, l'important est que tu as trouvé la solution qui résout ton problème.

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

Discussions similaires

  1. [2.x] TWIG : functions include, tags include, tags macro
    Par dukoid dans le forum Symfony
    Réponses: 3
    Dernier message: 23/03/2015, 14h55
  2. Accéder à un tag parent à partir d'un tag dans une <jsp:include
    Par moscovisci dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 07/07/2010, 12h09
  3. Sort et include cond
    Par sam01 dans le forum z/OS
    Réponses: 3
    Dernier message: 24/01/2010, 22h15
  4. JSF tag ui:include ignorer
    Par Seiphir0the dans le forum JSF
    Réponses: 3
    Dernier message: 12/03/2009, 16h49
  5. INCLUDE COND dans un SORT
    Par Eric93 dans le forum z/OS
    Réponses: 1
    Dernier message: 28/12/2007, 13h37

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