Bonjour,
je souhaiterai faire passer une donnée d'un programme cobol vers le jcl
mais je n'ai aucune idée de comment procéder?
j ai besoin de cette donnée pour renommer un fichier dynamiquement.
merci d'avance pour toutes vos reponses
Bonjour,
je souhaiterai faire passer une donnée d'un programme cobol vers le jcl
mais je n'ai aucune idée de comment procéder?
j ai besoin de cette donnée pour renommer un fichier dynamiquement.
merci d'avance pour toutes vos reponses
Ce qui me semble le plus simple serait une recopie du JCL de base (en particulier pour le paramètrage JOB qui va bien, à commencer par le nom), avec alimentation du sysin de rename IDCAMS sur un fichier SYSOUT ou autre DDNAME tel qu'assigné dans le COBOL) déclaré ainsi :
Le nouveau fichier crée partira dans le reader de JES et s'exécutera comme JOB à part qui va suivre le JOB d'exécution du COBOL
Code : Sélectionner tout - Visualiser dans une fenêtre à part //JCLOUT DD SYSOUT=(*,INTRDR),DCB=(LRECL=80,RECFM=FB,BLKSIZE=0)
Pour ce que j'ai compris, c'est un rename de fichier qui doit être généré soit :
Soit la commande ALTER est écrite dans un fichier de LRECL 80, repris dans un STEP IDCAMS qui suit l'exécution du COBOL, soit on écrit tout le JOB qui peut être envoyé en exécution par INTRDR.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 //STP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * ALTER ANCIEN.NOM.FICHIER NEWNAME(NOUVEAU.NOM.FICHIER) //*
Perso, je trouve que cette dernière solution est très simple. Pas la peine de générer du JCL. Pour expliciter l'exemple d'Homer-ac, tu auras un JCL comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 //* //* Programme applicatif //* Crée et alimente le fichier NOMFISTD dont le nom devra être modifié //* dynamiquement //* Ecrit dans RENAMEDD la ligne suivante : //* ALTER ANCIEN.NOM.FICHIER NEWNAME(NOUVEAU.NOM.FICHIER) //* qui permettra de renommer le 1er fichier //* //MONPGM01 EXEC PGM=MONPGM01 //NOMFISTD DD DSN=ANCIEN.NOM.FICHIER,DISP=(NEW,CATLG,DELETE) // SPACE=(CYL,(1,1),RLSE), // DCB=(RECFM=FB,BLKSIZE=0,LRECL=4200), // UNIT=SYSDA //RENAMEDD DD DSN=NOM.DE.FICHIER.TEMP,DISP=(,CATLG,DELETE) // SPACE=(TRK,(1,1),RLSE), // DCB=(RECFM=FB,BLKSIZE=0,LRECL=80), // UNIT=SYSDA //* //RENAME EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD DSN=NOM.DE.FICHIER.TEMP,DISP=SHR //*
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager