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 27/10/2009, 15h51   #1
Invité de passage
 
Inscription : octobre 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 26
Points : 3
Points : 3
Par défaut Gestion affichage display dans un JCL

bonjour,

suite à un test contrôlant la présence d'un membre dans un PDS, j'affiche une erreur à l'écran, par contre j'aurai voulu variabiliser le nom du fichier sur la ligne SE, mais malgré plusieurs tests, cela ne marche pas

Code :
1
2
3
4
5
6
7
8
9
10
//DISPLAY  EXEC  PGM=IKJEFT01,DYNAMNBR=35,       
//   COND=((1111,EQ,CTRLXREF),(0,EQ,CTRLXREF))   
//SYSOUT   DD SYSOUT=R                           
//SYSPRINT DD SYSOUT=R                           
//SYSUDUMP DD SYSOUT=R                           
//SYSTSPRT DD SYSOUT=Z                           
//SYSTSIN  DD *                                  
  PROFILE NOPREFIX INTERCOM                      
  SE 'LE FICHIER XREF &fichier EST ABSENT',USER(*)
//*

Dernière modification par Hédhili Jaïdane ; 27/10/2009 à 16h01. Motif: Balise Code
magfred03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2009, 18h40   #2
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
Cette question des variables dans un SYSIN est assez récurrente
En JCL natif : C'est INTERDIT
via une soumission par un ordonnanceur comme OPC : OUI, ils savent gérer.
Solution souvent proposée, passer par un programme REXX ou autre qui recopie dans un fichier FB 80 ce qu'il a reçu en PARM, où là on peut poster des variables. Pour le cas évoqué puisque l'on fait de toute façon un EXEC PGM = IKJEFT01, autant appeler directement un REXX qui fait le SEND TSO.
Exemple :
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
//V1       SET V1='MON.FICHIER.A.TESTER'                    
//*------- COPY DU REXX SUR PDS DE TRAVAIL ----------*      
//STEP01   EXEC PGM=IEBGENER                                
//SYSUT1   DD   *,DLM=$$                                    
/* REXX */                                                  
ARG PARM                                                    
ADDRESS TSO STRIP(PARM)                                     
EXIT 0                                                      
$$                                                          
//SYSPRINT DD   SYSOUT=*                                    
//SYSUT2   DD   DISP=(,PASS,DELETE),DSN=&&REXX(TMPREXX),    
//         SPACE=(TRK,(15,15,5),RLSE),                      
//         DCB=(RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PO)       
//SYSIN    DD   *                                           
 GENERATE MAXFLDS=9                                         
 RECORD   FIELD=(80,1,,1)                                   
//*                                                         
//*--------------------------------------------------*      
//*------- EXECUTION DU REXX ------------------------*      
//REXX02   EXEC PGM=IKJEFT01,                               
// PARM=('TMPREXX SE ''! FICHIER &V1 ABSENT !'',U(&SYSUID)')
//SYSPROC  DD   DISP=(OLD,DELETE),DSN=&&REXX                
//* SYSPROC  DD   DISP=SHR,DSN=MON.PDS.DE.REXX              
//SYSTSPRT DD   SYSOUT=*                                    
//SYSTSIN  DD   DUMMY                                       
//
Ici on passe directement à TSO la commande passée en PARM, mais il y a deux steps parce que le REXX est en SYSIN généré. Pour le cas posté, on a un STEP qui s'exécute via un COND=. Il suffit de recopier les 3 lignes du REXX at minima de l'exemple dans un membre PDS qui sera spécifié dans la DD SYSPROC du step IKJEFT01.

NB. User(*) dans le SEND TSO ? Ca risque de faire pas mal de monde !
Homer-ac est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 08h48.


 
 
 
 
Partenaires

Hébergement Web