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 :

Concaténer 2 fichiers en ayant les colonnes jointes


Sujet :

JCL - SORT

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Par défaut Concaténer 2 fichiers en ayant les colonnes jointes
    Bonjour,

    Je suis nouveau sur le forum alors par avance excusez moi si je fais des petites erreures dans la formulation.

    J'ai 2 fichiers, l'un avec des noms de fichiers et l'autre avec leurs date de création sous forme de quantième type Qaaqqq.
    Dans le 1er fichier, les noms de fichiers vont jusqu'à la collone 43 au max et dans le 2ème, j'ai les quantièmes correspondants à chaque fichiers.

    Je voudrai joindre ces 2 colonnes dans un même fichier avec le quantième en position 45.
    Pour cela j'ai utilisé ICETOOL de la manière suivante

    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
    //S1    EXEC  PGM=ICETOOL                                            
    //TOOLMSG DD SYSOUT=*                                                
    //DFSMSG  DD SYSOUT=*                                                
    //IN1 DD DISP=SHR,DSN=FRHPERM.JOBDELZZ.LISTCPP1.EPUR01               
    //IN2 DD DISP=SHR,DSN=FRHPERM.DATE02                                 
    //T1 DD DSN=FRHPERM.T1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(NEW,CATLG),
    //     LRECL=80,RECFM=FB                                             
    //OUT  DD DISP=(,CATLG,DELETE),                                      
    //         SPACE=(CYL,(10,10),RLSE),RECFM=FB,LRECL=80,               
    //         DSN=FRHPERM.LISTJQ                                        
    //TOOLIN DD *                                                        
    COPY FROM(IN1) TO(T1) USING(CTL1)                                    
    COPY FROM(IN2) TO(T1) USING(CTL2)                                    
    SPLICE FROM(T1) TO(OUT) ON(1,80,CH) WITH(1,43) -                     
     WITH(45,6) WITHALL KEEPBASE USING(CTL3)                             
    /*                                                                   
    //CTL1CNTL DD *                                                      
      INREC BUILD=(1,43)                                                 
    /*                                                                   
    //CTL2CNTL DD *                                                      
      INREC BUILD=(45:38,6)                                              
    /*                                                                   
    //CTL3CNTL DD *                                                      
      OUTFIL FNAMES=OUT,BUILD=(1,80)
    J'ai comme résultat dans T1 la liste des quantièmes en position 45 mais les colonnes maiq pas les fichiers correspondants.
    Dans le fichier OUT, je n'ai que les quantièmes mais je suis loin de tous les avoir.
    Petite précision, je ne souhaite pas trier les fichiers, je les vex tels qu'ils ont été produits.
    J'ai fouillé sur nombre de forum mais je n'arrive pas à trouver l'exemle qui correspond à mon cas.

    Merci de votre aide

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Par défaut Evoution du pb
    Bon, après une nouvelle recherche et un nouveau test, je réussi à obtenir dans mon fichier OUT, le même nombre d'enreg que dans mon fichier T1 mais par contre je n'ai toujours que le quantième.

    JE me rend compte que le SPLICE n'est peut pas approprié car il nécessite une colonne en commun, ce qui n'est pas le cas entre les 2 fichiers et que c'est pour ça qu'il ne me reste que le quantième.

    Voici mon jcl modifié

    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
    //S1    EXEC  PGM=ICETOOL                                            
    //TOOLMSG DD SYSOUT=*                                                
    //DFSMSG  DD SYSOUT=*                                                
    //IN1 DD DISP=SHR,DSN=FRHPERM.JOBDELZZ.LISTCPP1.EPUR01               
    //IN2 DD DISP=SHR,DSN=FRHPERM.DATE02                                 
    //T1 DD DSN=FRHPERM.T1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(NEW,CATLG),
    //     LRECL=80,RECFM=FB                                             
    //OUT  DD DISP=(,CATLG,DELETE),                                      
    //         SPACE=(CYL,(10,10),RLSE),RECFM=FB,LRECL=80,               
    //         DSN=FRHPERM.LISTJQ                                        
    //TOOLIN DD *                                                        
    COPY FROM(IN1) TO(T1) USING(CTL1)                                    
    COPY FROM(IN2) TO(T1) USING(CTL2)                                    
    SPLICE FROM(T1) TO(OUT) ON(1,43,CH) WITH(45,6) WITHALL KEEPBASE -    
     USING(CTL3)                                                         
    /*                                                                   
    //CTL1CNTL DD *                                                      
      OUTREC FIELDS=(1:1,43)                                             
    /*                                                                   
    //CTL2CNTL DD *                                                      
      OUTREC FIELDS=(45:38,6)                                            
    /*                                                                   
    //CTL3CNTL DD *                                                      
      OUTFIL FNAMES=OUT,BUILD=(1,80)                                     
    /*
    Selon vous, quelle option devrai-je utiliser ?

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Par défaut Evolution du pb 2
    Bonjour,

    En gardant le fichier T1 et en le mettant en DISP=(MOD,PASS), j'ai tous mes enregistrements mais j'ai d'abord la liste des fichiers en position 1 et 43 de longueur puis en dessous, tous les quantième correspondants en postion 45 (comme souhaité) mais les 2 colonnes ne sont pas juxtaposées comme je le voudrai.

    Voici le code utilisé

    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
    //S1    EXEC  PGM=ICETOOL                                          
    //TOOLMSG DD SYSOUT=*                                              
    //DFSMSG  DD SYSOUT=*                                              
    //IN1 DD DISP=SHR,DSN=FRHPERM.JOBDELZZ.LISTCPP1.EPUR01             
    //IN2 DD DISP=SHR,DSN=FRHPERM.DATE02                               
    //T1 DD DSN=FRHPERM.T1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(MOD,PASS)                                           
    //OUT  DD DISP=(,CATLG,DELETE),                                    
    //         SPACE=(CYL,(10,10),RLSE),RECFM=FB,LRECL=80,             
    //         DSN=FRHPERM.LISTJQ                                      
    //TOOLIN DD *                                                      
    COPY FROM(IN1) TO(T1)                                              
    COPY FROM(IN2) TO(T1) USING(CTL2)                                  
    COPY FROM(T1) TO(OUT) USING(CTL3)                                  
    /*                                                                 
    //CTL2CNTL DD *                                                    
      OUTREC FIELDS=(45:38,6)                                          
    /*                                                                 
    //CTL3CNTL DD *                                                    
      OUTFIL FNAMES=OUT,BUILD=(1,80)                                   
    /*
    Une suggestion pour juxtaposer les 2 colonnes ?

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

    Informations professionnelles :
    Activité : Retired

    Informations forums :
    Inscription : Octobre 2006
    Messages : 966
    Par défaut
    Bonjour

    utilise JOINKEY & REFORMAT, https://www.ibm.com/support/knowledg...00/joinrec.htm

    a+

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Par défaut
    Citation Envoyé par bernard59139 Voir le message
    Bonjour

    utilise JOINKEY & REFORMAT, https://www.ibm.com/support/knowledg...00/joinrec.htm

    a+
    Tout d'abord, merci de m'avoir répondu, je commençais à désespérer.

    J'ai déjà essayé le joinkey mais le pb est que mes fichiers n'ont pas de colonnes en commun.

    Je me suis donc tourné vers le MERGE mais pour l'instant, je ne trouve pas la bonne option.

    Mon 1er fichier ne contient que des noms de fichiers de la colonne 1 à 43.
    Mon 2ème fichier ne contient que les quantièmes en position 38 et du type Qyyqqq

    Je veux que que mon fichier final contienne mes noms de fichier en colonne 1 à 43 et le quantième en colonne 45.

    As tu besoin d'info complémentaire pour me suggérer la bonne option ?

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

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Par défaut
    Citation Envoyé par puntacanien Voir le message
    ...
    J'ai 2 fichiers, l'un avec des noms de fichiers et l'autre avec leurs date de création sous forme de quantième type Qaaqqq.
    Dans le 1er fichier, les noms de fichiers vont jusqu'à la collone 43 au max et dans le 2ème, j'ai les quantièmes correspondants à chaque fichiers.

    Je voudrai joindre ces 2 colonnes dans un même fichier avec le quantième en position 45.
    Mais comment sont identifiés les fichiers dans le second fichier ?

  7. #7
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Par défaut Merci pour la réponse
    [QUOTE=Luc Orient;9360735]Mais comment sont identifiés les fichiers dans le second fichier ?[/QUOTE


    D'abord, merci de m'avoir répondu.

    Le second fichier ne contient que les quantièmes correspondants à chaque fichier.
    Il n'y a pas de colonne en commun.
    On m'a suggéré de faire un JOINKEY mais le joinkey a besoin de colonnes en commun et je l'avais déjà essayé.

    J'ai aussi essayé le MERGE mais je n'arrive pas à trouver la bonne option pour l'instant.

    Que me suggères tu ?

  8. #8
    Membre Expert
    Homme Profil pro
    Ingénieur d'Etude Mainframe/AS400
    Inscrit en
    Novembre 2012
    Messages
    1 780
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'Etude Mainframe/AS400
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1 780
    Par défaut
    Sans clef entre les deux fichiers, je ne saisis pas bien comment tu constitues ton fichier de sortie ... Ou alors, il faut numéroter chaque fichier (s'ils ont bien le même nombre d'enregistrement) et joindre sur ce numéro qui sera commun aux deux fichier. De mémoire (je ne suis plus sur plateforme MVS) c'est le mot clé SEQNUM, mais à vérifier pour la numérotation.

  9. #9
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Par défaut
    Citation Envoyé par Darkzinus Voir le message
    Sans clef entre les deux fichiers, je ne saisis pas bien comment tu constitues ton fichier de sortie ... Ou alors, il faut numéroter chaque fichier (s'ils ont bien le même nombre d'enregistrement) et joindre sur ce numéro qui sera commun aux deux fichier. De mémoire (je ne suis plus sur plateforme MVS) c'est le mot clé SEQNUM, mais à vérifier pour la numérotation.
    Bonjour,

    Dans mon jcl, mon listcat liste les fichiers et leur infos.
    De ce 1er fichier j'extrait
    1) la liste des fichiers seuls
    2) leur date de création que je triture pour le formater en quantième.

    Je précise que je ne trie pas les fichiers.

    J'ai donc 2 fichiers avec le même nombre d'enreg, l'un avec les fichiers et l'autre avec les quantièmes correspondants.
    Dans mon 3ème message, mon jcl me crée un fichier avec d'abord la liste des fichiers et en dessous, les quantième correspondants.

    Ce que je veux, c'est que les colonnes soit juxtaposées.

    Cela dit, ta solution peut être intéressante, même si je dois retriturer les 2 fichiers.

    Je vais assayer mais si tu as un solution plus économique, je suis preneur.

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

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Par défaut
    Citation Envoyé par puntacanien Voir le message
    ...
    Dans mon jcl, mon listcat liste les fichiers et leur infos.
    De ce 1er fichier j'extrait
    1) la liste des fichiers seuls
    2) leur date de création que je triture pour le formater en quantième.

    Je précise que je ne trie pas les fichiers.

    J'ai donc 2 fichiers avec le même nombre d'enreg, l'un avec les fichiers et l'autre avec les quantièmes correspondants.
    Mais pourquoi travailler avec 2 fichiers ?

    Le LISTCAT te donne le lien entre un nom de fichiers et ses caractéristiques. Ce lien est cohérent et établi. En éclatant comme tu le fais tu perds ce lien que tu dois ensuite rétablir de manière compliquée !

    Ou alors quelque chose m'échappe ...

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/03/2011, 17h17
  2. Réponses: 2
    Dernier message: 16/04/2008, 08h04
  3. VBA: Parcourir les colonnes d'un fichier
    Par hochimi dans le forum Excel
    Réponses: 3
    Dernier message: 02/07/2007, 17h35
  4. Remplir les colonnes d'un fichier excel
    Par craryb dans le forum MFC
    Réponses: 3
    Dernier message: 14/03/2007, 12h37
  5. lire un fichier texte et separer les colonnes
    Par turk93390 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 29/12/2006, 13h20

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