Bonjour,
Je me lance "finalement" dans l'utilisation de SORT/DFSORT.
Je suis plongé dans la doc IBM (cf les liens à la fin), et ce topic... et je dois avouer que cela m'a beaucoup aidé pour le moment.
Cependant, quand je fais un SORT en mode COPY, tout va bien (extraction des lignes prévues dans l'INCLUDE)...
...mais si j'utilise un SORT FIELDS puis un INREC (ou un OUTREC) : le OUTREC/INREC sera appliqué, mais 1 seule ligne passe en sortie !
Est-ce moi qui ne sait toujours pas m'en servir ?
Voici les 2 steps :
La première étape qui fonctionne (juste avant je fais un SDSF avec quelques commandes pour extraire des lignes, puis ce step m'extrait les quelques lignes intéressantes):
La 2e étape qui ne sort qu'une ligne (l'alignement est correct, mais je n'ai qu'une seule ligne qui "passe" ce step !):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 //CATGREP EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTOUT DD DSN=&FILE2, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=80), // SPACE=(TRK,(1,1),RLSE), // DISP=(NEW,CATLG,DELETE) //SORTIN DD DSN=&FILE1, // DISP=(MOD,DELETE,DELETE) //SYSIN DD * SORT FIELDS=COPY INCLUDE COND=(1,80,SS,EQ,C'TEST') /*
Je ne comprends pas trop quoi faire...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 //CUTPASTE EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTOUT DD DSN=&FILE1, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=80), // SPACE=(TRK,(1,1),RLSE), // DISP=(NEW,CATLG,DELETE) //SORTIN DD DSN=&FILE2, // DISP=(MOD,DELETE,DELETE) //SYSIN DD * SORT FIELDS=(8,7,CH,A) INREC FIELDS=(1:8,7,9:26,7,17:35,8,26:44,4,31:51,6,38:62,6) /*
J'ai vu le SUM FIELDS, mais celui-ci va retirer des doublons... si je ne veux pas le faire que dois-je faire ?
J'ai aussi regardé quelques tutoriels mais ils m'apprennent d'autres choses que ce que je cherche ! ^^'
(je passerai aux conditions après)
EDIT : je suis trop bête... ça fonctionne...
Comme j'envoyais sous forme de mail le résultat... il y avait des tas de caractères illisibles.
En ajoutant un OUTREC sur le 2e step avec des X ça passe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 //SYSIN DD * INREC FIELDS=(1:8,7,9:26,7,17:35,8,26:44,4,31:51,6,38:62,6) OUTREC FIELDS=(1:1,43,47X) SORT FIELDS=(1,7,CH,A)
****************
Les liens IBM que j'ai utilisé :
Reformatting Records Before Processing — Examples
Reformatting Records After Processing — Examples
OUTREC
SORT Control Statement
Partager