|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 44 ![]() |
Bonjour,
Dans un jcl, je souhaite utiliser plusieurs fois le même step. En fait, j'ai la même procédure à lancer, pour trois fichiers différents. Je voudrais éviter de lancer la procédure, trois fois de suite, en changeant à chaque fois, de fichier. Existe t-il une instruction comme "when" ou d'autres itérations, pour le jcl ? Aider-moi svp. Twisty. |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Guillaume VENTREz/OS Technical Leader Inscription : décembre 2006 Messages : 514 ![]() |
Y a t'il des conditions d’exécution entre ces steps, ou sont-ils enchainés. Dans ce dernier cas tu fais 3 steps identiques avec les DSN qui change à chaque step.
.
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★ |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 44 ![]() |
Merci d'avoir répondu. Mais, en fait, ce step est volumineux. Donc, pour un confort visuel, soit une meilleur maintenance, es-t-il possible de boucler sur ce step (avec condition RC=00 biensur), en changeant à chaque fois de fichier ?
Twisty |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Administrateur de base de données Inscription : octobre 2006 Messages : 502 ![]() |
Bonjour
Il n'y a aucune itération possible dans un jcl. Bonne journée |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 096 ![]() |
Et la solution d'une procédure dite 'INSTREAM PROCEDURE' ?
|
|
|
00
|
|
|
#6 | ||||
|
Membre chevronné
![]() Guillaume VENTREz/OS Technical Leader Inscription : décembre 2006 Messages : 514 ![]() |
Un JCL appel une procédure 3 fois en lui passant en paramètre le DSN à utiliser, exemple :
Code :
Code :
.
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★ |
||||
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 44 ![]() |
Malheureusement, j'ai le message suivant :
UNIDENTIFIED KEYWORD DSNAME Donc, après exec pgm=procedure , on devrait avoir une autre instruction que " DSNAME" . Pouvez-vous m'aider ? Merci d'avance. Twisty |
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() Guillaume VENTREz/OS Technical Leader Inscription : décembre 2006 Messages : 514 ![]() |
Peux-tu coller ton JCL, la proc, et le compte rendu en erreur ?
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★ |
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : février 2011 Messages : 3 ![]() |
bonjour,
DSNAME est surement un mot-clés réservé, utilise plutot DSN ou FILE.... Pour plus de souplesse tu peux aussi utiliser une proc "instream" pour les tests c'est plus facile..... bon courage |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 44 ![]() |
Le INSTREAM PROCEDURE, avec l'instruction PEND, fonctionne bien. Mais, j'aurais voulu utiliser deux fichiers, du genre :
STEP1 EXEC PROC=PROCEDUR,FICH1='nomfichier1',FICH2='nomfichier2' Mais, FICH2 est rejeté par le système par le message suivant : UNIDENTIFIED OPERATION FIELD Existe-t-il une autre instruction ? Merci d'avance. Twisty |
|
|
00
|
|
|
#11 |
|
Membre chevronné
![]() Administrateur de base de données Inscription : octobre 2006 Messages : 502 ![]() |
Bonjour
Actuellement, il n'y a aucun moyen de faire du jcl "dynamique". Un JCL est statique, point barre. Il n'y a aucune boucle possible. La seule facilité qui existe est de "sauter" des steps par les tests sur RETURN-CODE ou ABEND. bonne journée |
|
|
00
|
|
|
#12 | |
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 096 ![]() |
Citation:
|
|
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() Inscription : février 2011 Messages : 3 ![]() |
Bonjour,
en fait il est tout de même possible de faire du JCL "dynamique" via un générateur de JCL.... le plus simple est de le faire avec un REXX, qui soumettra le JCL (ou la procédure "in steream" ou "cataloguée" au reader interne. les variables peuvent se passer soit directement, (en batch ou via saisie) soit par la lecture d'un fichier contenant les "variables".
|
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 44 ![]() |
L'instream procedure fonctionne bien maintenant, et le cas, vu par "Peut-êtreUneRéponse" (passage du fichier en paramètre avec un nom différent de dsname (ex: fichier)) est résolu. Toutefois, dans tous ces cas, il faut mettre les cartes sysin dans un membre de pds (déclaré en JCLLIB).
Merci à tous. |
|
|
00
|
|
|
#15 | |
|
Membre chevronné
![]() Guillaume VENTREz/OS Technical Leader Inscription : décembre 2006 Messages : 514 ![]() |
Citation:
.
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★ |
|
|
00
|
|
|
#16 | ||
|
Invité régulier
![]() Ingénieur systèmes et réseaux Inscription : avril 2009 Messages : 15 ![]() |
Bonjour,
Pour gérer le problème de la sysin dans une proc j'utilise un petit programme (assembleur) qui copie les données passées en paramètre à l'appel du programme dans un fichier. Ce fichier est ensuite réutilisé dans la sysin. EX : Code :
Je peux envoyer le load du programme si besoin. Bonne journée Jean-Jacques |
||
|
|
00
|
|
|
#17 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2006 Messages : 18 ![]() |
Une solution possible :
Code :
Code :
Lors du SUB, le contenu de MONSTEP sera mis à la place de // INCLUDE MEMBER=MONSTEP |
||||
|
|
01
|
Copyright © 2000-2012 - www.developpez.com