Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > z/OS
z/OS Forum d'entraide sur z/OS et MVS (Multiple Virtual Storage), les systèmes d'exploitation des ordinateurs « mainframes » IBM : JCL, Tso, Ispf, Vsam, Racf, SMS, Cics, Ims, OPC, Ca-7, Control-M, Dialog Manager ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 23/11/2009, 11h02   #1
Invité de passage
 
jo biyemassi
Inscription : novembre 2009
Messages : 4
Détails du profil
Informations personnelles :
Nom : jo biyemassi

Informations forums :
Inscription : novembre 2009
Messages : 4
Points : 2
Points : 2
Par défaut Commande OUTFIL dans un tri

Dans mon JCL j'ai le bout de code ci-dessous:

Code :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//*  *------------------------------------* 
//*  * STEP : TRI0002 PROGRAM : SORT      * 
//*  *------------------------------------* 
//*                                         
//TRI0002  EXEC PGM=SORT                            
//*                                                 
//SORTIN   DD  DSN=FICBPTES.TRI2,         
//             DISP=(SHR)                           
//SYSUT2   DD  DSN=FICBPTES.TRI6,         
//             DISP=(,CATLG),                       
//             LRECL=1000,                          
//             RECFM=FB,                            
//             DSORG=PS,                            
//             AVGREC=M,                            
//             SPACE=(1,(10,10),RLSE)               
//SYSUT3   DD  DSN=FICBPTES.TRI7,    
//             DISP=(,CATLG),               
//             LRECL=1000,                  
//             RECFM=FB,                    
//             DSORG=PS,                    
//             AVGREC=M,                    
//             SPACE=(1,(10,10),RLSE)       
//SYSUT4   DD  DSN=B100FE01,      
//             DISP=(,CATLG),               
//             LRECL=1000,                  
//             RECFM=FB,                    
//             DSORG=PS,                    
//             AVGREC=M,                    
//             SPACE=(1,(10,10),RLSE)       
//*                                                                                  
//SYSIN    DD  *                                            
//*  SORT  FIELDS=COPY                                      
  OPTION COPY                                               
  OUTFIL FNAMES=SYSUT2,OMIT=((332,8,CH,GE,C'20050101'),OR,  
                (332,8,CH,EQ,C'        '),OR,               
                (332,8,CH,LE,C'20041231',AND,               
                 340,2,CH,NE,C'ED',AND,                     
                 340,2,CH,NE,C'EA',AND,                     
                 340,2,CH,NE,C'EF',AND,                     
                 340,2,CH,NE,C'ER',AND,                     
                 340,2,CH,NE,C'ES',AND,                     
                 340,2,CH,NE,C'ET',AND,                     
                 340,2,CH,NE,C'IN')) 
  OUTFIL FNAMES=SYSUT3,INCLUDE=((3,2,CH,EQ,C'21',OR
                 3,2,CH,EQ,C'22'),AND,             
                 ((332,8,CH,NE,C'        ',AND,    
                  1,2,CH,EQ,C'CA'),OR,             
                 (584,8,CH,LE,C'20090101',AND,     
                  620,2,CH,EQ,C'ES')))             
  OUTFIL FNAMES=SYSUT4,SAVE           
//*                                   
//SYSOUT   DD  SYSOUT=*         
//SYSPRINT DD  SYSOUT=*      
//*
lorsque je soumets mon job j'ai le message d'erreur ci-dessous

Citation:
STEP WAS EXECUTED - COND CODE 0016
Précisions:mes critères de selection dans le OMIT et le INCLUDE sont OK, mais je ne comprends pas pourquoi ça plante. c'est peut-être un souci au niveau de la syntaxe...

Je suis débutante en cobol.

Merci de votre aide.

Dernière modification par Hédhili Jaïdane ; 23/11/2009 à 16h58. Motif: Balise Quote/Code + déplacement
biyemassi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 19h57   #2
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 071
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 071
Points : 1 659
Points : 1 659
[fait]Ce n'est pas un sujet COBOL ...A déplacer dans le forum z/OS ...

C'est une erreur avec l'utilitaire SORT ...

De plus, il doit y avoir un autre message d'erreur différent de celui indiqué ici ... cherchez bien ...

Edit :

ça me semble pas bon ça :
Code :
1
2
3
//SYSIN    DD  *                                            
//*  SORT  FIELDS=COPY                                      
  OPTION COPY
essayez plutôt :
Code :
1
2
3
//SYSIN    DD  *                                            
  SORT  FIELDS=COPY                                      
  OPTION COPY
En plus, "OPTION COPY" me semble en trop puisqu'on a déjà "SORT FIELDS=COPY"
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 21h30   #3
Membre expérimenté
 
Avatar de Homer-ac
 
Inscription : octobre 2007
Messages : 449
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2007
Messages : 449
Points : 518
Points : 518
Bonjour,
Effectivement il faudrait le détail des messages.
Je ne pense pas que l'option COPY gène, mais effectivement à virer si on utilise en plus un SORT FIELDS=COPY, inutile de se faire peur pour rien.
A chaud je voterais pour une erreur au moins ici (il manque une virgule après le OR de fin de ligne)
Code :
1
2
OUTFIL FNAMES=SYSUT3,INCLUDE=((3,2,CH,EQ,C'21',OR
                 3,2,CH,EQ,C'22'),AND,
Au passage, j'assaierai de simplifier les tests, ici en particulier via SS (pour search) à la place du format CH qui va permettre de poser une liste de valeurs (c'est un truc moins connu pour une liste de valeurs que pour une recherche sur des colonnes bornées, mais souvent pratique). Ca donnerait
Code :
OUTFIL FNAMES=SYSUT3,INCLUDE=((3,2,SS,EQ,C'21,22'),AND,
Comme ça, on peut pour beaucoup simplifier le SYSIN.
Homer-ac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2009, 22h59   #4
Invité de passage
 
jo biyemassi
Inscription : novembre 2009
Messages : 4
Détails du profil
Informations personnelles :
Nom : jo biyemassi

Informations forums :
Inscription : novembre 2009
Messages : 4
Points : 2
Points : 2
Merci à tous pour votre aide. Mon tri fonctionne et me retourne bien mes résultats.
J'ai supprimé le commentaitre //* SORT FIELDS=COPY
//SYSIN DD *
OPTION COPY

La commande SS (pour search) à la place du format CH est vraiment très pratique (je ne la connaissais pas), cela simplifie la lisibilité du code.

Merci encore à tous et à bientôt
biyemassi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 06h37.


 
 
 
 
Partenaires

Hébergement Web