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 11/01/2012, 10h47   #1
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
Par défaut année en cours dans une sysin

Bonjour,

voilà je lance un job via TWS et j'ai besoin d'avoir automatiquement l'année dans une sysin de tri :

Code :
1
2
3
4
5
6
7
8
9
10
11
12

//TRI03 EXEC PGM=SORT,REGION=4096K                               
//SYSOUT  DD SYSOUT=*                                            
//*                                                              
//SORTIN  DD DISP=SHR,DSN=X.Y.DAD              
//*                                                              
//SORTOUT DD DISP=SHR,DSN=X.D.B              
//SYSIN DD *                                                     
  SORT FIELDS=COPY                                               
  INCLUDE COND=(60,4,EQ,C'année en cours'),FORMAT=CH                       
//*
connaissez-vous un moyen pas trop compliqué pour obtenir l'année en cours automatiquement ?

Merci d'avance pour votre aide.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 12h03   #2
Membre du Club
 
Homme olivier
Analyste d'exploitation
Inscription : août 2011
Messages : 48
Détails du profil
Informations personnelles :
Nom : Homme olivier
Localisation : France

Informations professionnelles :
Activité : Analyste d'exploitation
Secteur : Finance

Informations forums :
Inscription : août 2011
Messages : 48
Points : 65
Points : 65
INCLUDE COND=(60,4,EQ,C'%CYYYY'),FORMAT=CH

avec la directive //*%OPC SCAN en debut de jcl par exemple

++
coderetour0 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/01/2012, 13h04   #3
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
Merci coderetour0, ça fonctionne sans l'OPC SCAN.

Est-il possible d'avoir l'année N - 1 ?


C'est bizarre, il me semblait que les variables ne se résolvaient pas dans les sysin DD * ... je dois confondre avec autre chose...
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 13h46   #4
Membre chevronné
 
Avatar de bernard59139
 
Administrateur de base de données
Inscription : octobre 2006
Messages : 503
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : octobre 2006
Messages : 503
Points : 688
Points : 688
bonjour

les variables en sysin ne sont pas résolues au SUB (tso) ou dans jes2.
Là, ce sont des variables OPC et tout le travail est fait avant la soumission du job.
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 14h37   #5
Membre du Club
 
Homme olivier
Analyste d'exploitation
Inscription : août 2011
Messages : 48
Détails du profil
Informations personnelles :
Nom : Homme olivier
Localisation : France

Informations professionnelles :
Activité : Analyste d'exploitation
Secteur : Finance

Informations forums :
Inscription : août 2011
Messages : 48
Points : 65
Points : 65
un truc comme ca devrait marcher

//*%OPC SETVAR TLASTY=(%CYYYY - 1 YR)

pas testé ! a toi d'essayer.

utilise ensuite %TLASTY dans la sysin au lieu de %CYYYY

++
coderetour0 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/01/2012, 15h45   #6
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
Super. Merci coderetour0.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 11h01   #7
Membre à l'essai
 
Homme
Inscription : juillet 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 21
Points : 21
Points : 21
Bonjour ,

Si cela fonctionne sans la carte //*%OPC SCAN , c'est que ton contrôleur démarre avec l'option VARSUB=YES (Au lieu de =SCAN , option par défaut) , chose que personnellement je déconseille , car dans ce cas TWS essaiera sytématiquement , dans tous les JCL , de transformer toutes les données %xxx et plantera la soumission en OJCV s'il ne s'agit pas d'une vraie variable...

Autrement dit , tu t'interdis ainsi de taper %TOTO , même dans un commentaire...

Bakounine
bakounine est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/01/2012, 18h03   #8
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
Bonjour bakounine et merci pour l'info, je ne savais pas.

A quel endroit se trouve cette option exactement ?

J'ai des soucis aussi avec des ?. Lorsqu'ils sont collés à un caractère alphanumérique, j'ai un OJCV. (pareil pour %X ou &X). Penses-tu que ça vienne de cette option ?

Si j'ai bien compris, l'OPC SCAN permet de traduire des variables OPC miias il ne faut pas qu'il y ait de % ou de ?, c'est bien ça ?

Merci d'avance.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 10h24   #9
Membre à l'essai
 
Homme
Inscription : juillet 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 21
Points : 21
Points : 21
Bonjour Sam01 ,

Cette option se trouve dans le membre contenant les paramètres de démarrage du contrôleur de TWS.

3 valeurs possibles :

NO : Aucune transformation de variables (Peu d'utilité)
YES : TWS essaiera de traduite TOUTES les variables (Contraignant)
SCAN : TWS ne traduira que les variables dans les JCL contenant la carte "//*%OPC SCAN " (Le plus pratique).

Pour tes soucis de OJCV avec ? ou % , en effet , en mettant SCAN , tu n'aura plus de OJCV innatendus , mais cela t'imposera de mettre la carte "//*%OPC SCAN " dans les JCL contenant réellement des variables.

A noter aussi le paramètre VARFAIL.

Celui-ci contient les caractères spéciaux indiquant à TWS qu'il a affaire à une variable. Il est égal par défaut à & % ? , c'est à dire que pour toutes les chaines &x , %y ou ?z , TWS cherchera une variable x , y ou z dans ses tables. S'il ne la trouve pas , OJCV. Donc en séparant "&" de "x" par un blanc , ca marche.

Autre possibilité , modifier le paramètre VARFAIL(&,%,?) en VARFAIL(&) par exemple , et comme ceci TWS ne considérera plus %y ni ?z comme des variables.

Enfin , même si tu codes "//*%OPC SCAN " dans ton JCL , tu peux indiquer à TWS de ne pas s'occuper d'une portion du JCL en codant :

//*%OPC BEGIN ACTION=NOSCAN
//*%OPC END ACTION=NOSCAN

Selon l'exemple suivant , les variables VAR1 et VAR3 seront interprétées , la donnée &VAR2 restera telle quelle :

//*%OPC SCAN
//BAKOUN2 EXEC PGM=IEFBR14
//D0 DD DSN=&VAR1..PELSTAT1.PEL,
// DISP=(MOD,DELETE,DELETE),
// UNIT=3390,SPACE=(TRK,0)
//*%OPC BEGIN ACTION=NOSCAN
//* CETTE VARIABLE NE SERA PAS TRAITEE : &VAR2
//*%OPC END ACTION=NOSCAN
//BAKOUN2 EXEC PGM=IEFBR14
//D0 DD DSN=&VAR3..PELSTAT1.PEL,
// DISP=(MOD,DELETE,DELETE),
// UNIT=3390,SPACE=(TRK,0)

Bakounine
bakounine est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/01/2012, 12h42   #10
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233

Ca c'est de la réponse précise et claire !

Je me coucherais moins bête ce soir


Merci pour toutes ces précisions bakounine.
sam01 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 +2. Il est actuellement 22h48.


 
 
 
 
Partenaires

Hébergement Web