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 :

Calcul nombre enregistrement fichier avec dfsort ?


Sujet :

JCL - SORT

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Par défaut Calcul nombre enregistrement fichier avec dfsort ?
    Bonjour,

    Voici mon problème :

    J'ai un fichier1 en entrée qui contient X nombre d'enregistrements.

    Je dois alimenter dans un fichier2 en sortie ici le champ5 avec le calcul du nombre d'enregistrement du fichier1.

    Voici la structure du fichier2 (ou certains champs sont déja valorisés).

    champ1;champ2;champ3;champ4;champ5;champ6

    Ma question : comment faire pour calculer le nombre d'enregistrement du fichier1 (Je suppose qu'il doit exister une fonction count avec le sort ???)

    De plus, une fois calculé le nombre d'enregistrement du fichier1 comment valoriser le champs5 du fichier2 avec la valeur retournée dU count ?

    Exemple :

    Fichier1 : 40 enregistrements

    Fichier2 :champ1;champ2;champ3;champ4;40;champ6

    Par avance merci pour votre aide

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

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

    Je n'ai pas le temps de détailler mais après en cherchant dans la doc officielle tu devrais trouver les détails ( http://publib.boulder.ibm.com/infoce...e0z2c1b023.htm )

    Pour le comptage, je vois 2 méthodes :
    - le sum field : ça cumule un champs donné, donc si tu as un champs numérique fixe qui vaut toujours 1, le sum field te donnera le nombre d'enregistrements, si tu n'en as pas (et de toute façon, c'est dangereux de les utiliser pour ça ) tu peux t'en créer avec un inrec avant le sumfield
    - le count du trailer1 : en mode "report", dfsort à toute une batterie de compteurs paramétrables

    Pour le second fichier, c'est de la construction d'enregistrement donc "outrec".

    Voilà, si j'ai le temps dans la journée, je regarde si j'ai des exemples qui trainent.

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    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
    Bonsoir,

    Je suppose que ton fichier2 est totalement de structure variable, du style fichier d'import / export EXCEL de type CSV par exemple.

    Et donc que rien n'est fixe ( position / longueur ).

    C'est bien cela ?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Par défaut
    Bonjour Luc,

    Non mon fichier2 est fixe au contraire.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2012
    Messages : 41
    Par défaut
    Bonjour,

    en fait, ça demande un bon jeu de jambes pour comptabiliser les enreg., puis stocker le résultat à la position voulue dans un nouveau fichier de données.

    Pour cela, il faut utiliser les opérateurs COUNT et SPLICE de ICETOOL.

    Voici un exemple :
    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
    26
    27
    28
    29
    30
    31
    //IDENT JOB (XXXX,TSO),TOOL,MSGCLASS=D,CLASS=C,REGION=0M, 
    //          NOTIFY=&SYSUID,MSGLEVEL=(1,1)                   
    //*                                                         
    //S1 EXEC PGM=ICETOOL                                       
    //TOOLMSG DD SYSOUT=*                                       
    //DFSMSG DD SYSOUT=*                                        
    //FICHIER1 DD *                                             
    T1(1)                                                       
    T1(2)                                                       
    T1(3)                                                       
    T1(4)                                                       
    T1(5)                                                       
    T1(6)                                                       
    T1(7)  
    T1(8)                                                                 
    T1(9)                                                                 
    T1(10)                                                                
    T1(11)                                                                
    /*                                                                    
    //FICHIER2 DD *                                                       
    Champ1;Champ2;Champ3;Champ4;123456;Champ6                             
    /*                                                                    
    //TEMP1   DD DSN=&&TEMP1,DISP=(MOD,PASS),SPACE=(TRK,(1,1)),UNIT=SYSDA 
    //COMBINE DD SYSOUT=*                                       
    //TOOLIN DD *                                                         
     COPY  FROM(FICHIER2) TO(TEMP1)                                       
     COUNT FROM(FICHIER1) WRITE(TEMP1) DIGITS(6) WIDTH(80) -              
       TEXT('                            ')                               
     SPLICE FROM(TEMP1) TO(COMBINE) ON(60,1,CH) WITHANY  WITH(29,6)       
    /*
    On copie tout d'abord, le fichier2 dans un fichier temporaire; ensuite le nombre d'enreg est copié à la bonne position à l'aide de l'option TEXT sur un second enreg de ce fichier. DIGIT indique que la longueur du compteur est de 6 car.

    L'opération SPLICE effectue alors le rabouttage des 2 enreg :
    ON indique sur quel critère on rapproche les enreg (donc, il faut que cette zone de 1 car. en position 60 soie identique sur les deux enreg)
    WITH indique la position du compteur qui va écraser la zone initiale.

    Le résultat se trouve en SYSOUT dans la sortie COMBINE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     	.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
      	 Display 	 Filter 	 View 	 Print 	 Options 	 Search 	 Help                          
     	-------------------------------------------------------------------------------
     	SDSF OUTPUT DISPLAY LEONK   JOB39000  DSID   106 LINE 0       COLUMNS 02- 81  
     	COMMAND INPUT ===> 	                                           	SCROLL ===> 	CSR  
    ********************************* TOP OF DATA **********************************
    Champ1;Champ2;Champ3;Champ4;000011;Champ6                                       
    ******************************** BOTTOM OF DATA ********************************

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Par défaut
    merci à vous c'est ce que je recherchais et ça fonctionne

Discussions similaires

  1. [AC-2010] Calcul nombre enregistrement
    Par bird007 dans le forum IHM
    Réponses: 1
    Dernier message: 23/07/2010, 13h34
  2. [XL-2007] Calcul nombre enregistrement différents TCD
    Par kimai dans le forum Excel
    Réponses: 7
    Dernier message: 27/05/2010, 15h02
  3. [WD14] Ajout enregistrement fichier avec filtre
    Par Dramon dans le forum WinDev
    Réponses: 5
    Dernier message: 17/02/2010, 20h23
  4. Calcul nombre de fichiers
    Par Newenda dans le forum MATLAB
    Réponses: 7
    Dernier message: 18/03/2009, 21h38
  5. Réponses: 6
    Dernier message: 13/12/2006, 11h31

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