Précédent   Forum du club des développeurs et IT Pro > Systèmes > Autres systèmes > z/OS > JCL - SORT
JCL - SORT Entraide sur la fabrication de JCL et les technologies de tri
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/12/2012, 16h44   #1
MaxXximus62
Invité de passage
 
Homme
Consultant informatique
Inscription : juillet 2012
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Distribution

Informations forums :
Inscription : juillet 2012
Messages : 2
Points : 0
Points : 0
Par défaut Paramètrage dans un JCL

Bonjour,
Je me permet de poser la question, car je n'ai pas réussi à trouver une réponse dans mes recherches qui me convient

Actuellement dans un JCL, j'ai une sysin qui contient plusieurs le même nom de fichier,
je voudrais savoir s'il est possible de mettre ce nom de fichier en variable. ainsi, quand
je voudrais utiliser le jcl avec un autre nom de fichier, je n'aurais qu'a faire un replace
sur ce nom de fichier.

cordialement,

PS: dsl si il existe un post sur ce sujet, mais je ne l'ai pas trouvé, ou alors des débuts de réponse qui me semblent bien compliqué.
MaxXximus62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 17h18   #2
M.Dlb
Rédacteur/Modérateur
 
Avatar de M.Dlb
 
Inscription : avril 2002
Messages : 2 275
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2002
Messages : 2 275
Points : 3 382
Points : 3 382
Bonjour,

C'est dans la SYSIN ou ce sont d'autres cartes DD ? Il est possible d'utiliser des variables de substituion pour les cartes DD, mais pour l'intérieur d'une SYSIN, il me semble également que ca ne fonctionne pas de façon simple.
__________________
M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal
M.Dlb est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/12/2012, 17h22   #3
MaxXximus62
Invité de passage
 
Homme
Consultant informatique
Inscription : juillet 2012
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Distribution

Informations forums :
Inscription : juillet 2012
Messages : 2
Points : 0
Points : 0
Citation:
Envoyé par wormful_sickfoot Voir le message
Bonjour,

C'est dans la SYSIN ou ce sont d'autres cartes DD ? Il est possible d'utiliser des variables de substituion pour les cartes DD, mais pour l'intérieur d'une SYSIN, il me semble également que ca ne fonctionne pas de façon simple.
C'est dans la sysin même

en gros j'ai (je ne rentre pas dans le détail volontairement):
exec PGM=IDCAMS
sysin DD *
delete fichier1
define cluster fichier1
repro fichier1
MaxXximus62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 21h03   #4
Pico-----
Membre habitué
 
Inscription : juin 2008
Messages : 103
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 103
Points : 123
Points : 123
Bonjour,

Les variables JCL ne sont pas interprétées dans les SYSINs, donc tu ne pourras pas directement faire ce que tu veux.

En général quand j'ai une problématique de ce genre, j'ajoute un step avant dans lequel je génère la SYSIN avec un REXX en fonction de paramètres.

Par contre dans ton cas, tu utilises IDCAMS et dans la sysin tu mets directement les DSNAME. Or avec IDCAMS tu peux utiliser des DDNAME dans la SYSIN, et donc mettre des variables dans les DSNAME qui se retrouvent alors dans la carte DD.
Pico----- est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/12/2012, 10h46   #5
Darkzinus
Membre Expert
 
Homme Nicolas
Ingénieur d'Etude Mainframe
Inscription : novembre 2012
Messages : 228
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Âge : 32
Localisation : France, Yvelines (Île de France)

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

Informations forums :
Inscription : novembre 2012
Messages : 228
Points : 1 369
Points : 1 369
Bonjour,

Cela est faisable assez facilement avec un REXX et un squelette JCL avec comme paramètre le DSN. Reste à voir si cela vaut vraiment le coup de créer une procédure spécifique (si ton traitement est récurrent ou non).
Le mieux serait que tu donnes le JCL exact que tu veux obtenir.
Darkzinus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 13h34   #6
LeonK
Membre du Club
 
Homme
Développeur informatique
Inscription : juillet 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : juillet 2012
Messages : 21
Points : 45
Points : 45
Voici un exemple de codage en JCL, mais c'est pas bien joli-joli...

On ne peut utiliser que les paramètres symboliques du système du genre Date, Heure, Nom du Job


http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA1E241/2.2.2

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
//CREVSAM1 JOB (xxxx,,,1000),xxxx,CLASS=D,MSGCLASS=K,               
//    MSGLEVEL=(1,0),NOTIFY=&SYSUID                           
//*******  PREMIER JOB  ************************************************
//STEP01   EXEC PGM=EZACFSM1                                            
//SYSIN    DD DATA,DLM=àà                                               
//*******  SECOND JOB  *************************************************
//CREVSAM2  JOB (xxxx,TSO),CREVSAM2,CLASS=D,MSGCLASS=K,                 
//          NOTIFY=&SYSUID,MSGLEVEL=(1,0)                   
//CREVSAM   EXEC PGM=IDCAMS                                             
//SEQ       DD DISP=SHR,DSN=DSN.EXTACT.COMPTE                  
//SYSOUT    DD SYSOUT=*                                                 
//SYSPRINT  DD SYSOUT=*                                                 
//SYSIN     DD *                                                        
   DELETE DSN.VSAM.&JOBNAME              CLUSTER                 
   SET MAXCC=0                                                          
   DEFINE CLUSTER (NAME (DSN.VSAM.&JOBNAME)      -      
    VOLUMES(SYSDA) CYLINDERS(1 1)                       -      
    RECORDSIZE (17 17) KEYS(11 0) INDEXED)                     
   REPRO INFILE(SEQ) OUTDATASET(DSN.VSAM.&JOBNAME)      
//*                                                            
àà                                                             
//SYSOUT DD SYSOUT=(A,INTRDR)                                  
//*
LeonK est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/12/2012, 13h43   #7
Darkzinus
Membre Expert
 
Homme Nicolas
Ingénieur d'Etude Mainframe
Inscription : novembre 2012
Messages : 228
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Âge : 32
Localisation : France, Yvelines (Île de France)

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

Informations forums :
Inscription : novembre 2012
Messages : 228
Points : 1 369
Points : 1 369
Citation:
Envoyé par LeonK Voir le message
Voici un exemple de codage en JCL, mais c'est pas bien joli-joli...

On ne peut utiliser que les paramètres symboliques du système du genre Date, Heure, Nom du Job


http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA1E241/2.2.2

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
//CREVSAM1 JOB (xxxx,,,1000),xxxx,CLASS=D,MSGCLASS=K,               
//    MSGLEVEL=(1,0),NOTIFY=&SYSUID                           
//*******  PREMIER JOB  ************************************************
//STEP01   EXEC PGM=EZACFSM1                                            
//SYSIN    DD DATA,DLM=àà                                               
//*******  SECOND JOB  *************************************************
//CREVSAM2  JOB (xxxx,TSO),CREVSAM2,CLASS=D,MSGCLASS=K,                 
//          NOTIFY=&SYSUID,MSGLEVEL=(1,0)                   
//CREVSAM   EXEC PGM=IDCAMS                                             
//SEQ       DD DISP=SHR,DSN=DSN.EXTACT.COMPTE                  
//SYSOUT    DD SYSOUT=*                                                 
//SYSPRINT  DD SYSOUT=*                                                 
//SYSIN     DD *                                                        
   DELETE DSN.VSAM.&JOBNAME              CLUSTER                 
   SET MAXCC=0                                                          
   DEFINE CLUSTER (NAME (DSN.VSAM.&JOBNAME)      -      
    VOLUMES(SYSDA) CYLINDERS(1 1)                       -      
    RECORDSIZE (17 17) KEYS(11 0) INDEXED)                     
   REPRO INFILE(SEQ) OUTDATASET(DSN.VSAM.&JOBNAME)      
//*                                                            
àà                                                             
//SYSOUT DD SYSOUT=(A,INTRDR)                                  
//*
Effectivement c'est un peu rude comme moyen de mettre des variables système. Ceci dit, cela doit être la seule façon d'éviter de passer par une procédure REXX pour la "variabilisation" des Sysin.
Darkzinus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 06h21.


 
 
 
 
Partenaires

Hébergement Web