OH SECOURS !!! On me demande Comment faire, si cela est possible , de récupérer dans un programme COBOL II BATCH Z/OS les infos suivantes :
- Nom du JCL en cours
- Nom du STEP en cours
- Nom du programme en cours (ca on connait !!)
Pour compéter les infos de notr ami MILTON,
dans le JCL il vaut déclarer en SYSIN (sous IBM c'est comme cela qu'on appelle les données
que tu veux récupérer dans le programme).
Dans le programme il te faut déclarer en Working
le nom des données à récupérer.
A +
__________________________
Ma fabrique de chemises tourne à plein régime !!!
DATA DIVISION. 00480000
*************** 00490000
FILE SECTION. 00520000
00530000
* DESCRIPTIF DU FICHIER EN ENTREE 00540000
* =============================== 00550000
FD DSNONO1 01220000
LABEL RECORDS STANDARD 01230000
BLOCK CONTAINS 0 RECORDS 01240000
RECORDING MODE IS F 01250000
RECORD CONTAINS 100 CHARACTERS. 01260000
01270000
01 ENR-DSNONO1 PIC X(100). 01280000
FD DSNONO2 01220000
LABEL RECORDS STANDARD 01230000
BLOCK CONTAINS 0 RECORDS 01240000
RECORDING MODE IS F 01250000
RECORD CONTAINS 100 CHARACTERS. 01260000
01270000
01 ENR-DSNONO2 PIC X(100). 01280000
WORKING-STORAGE SECTION. 00980000
************************* 00990000
77 CODE-PROG PIC X(08) VALUE 'PBXNONO '. 00221000
77 PROGRAM-NAME PIC X(08) VALUE 'PBXNONO '. 00221000
77 W-ERR1 PIC X(08) VALUE SPACES. 00221000
************************************************************
* INITIALISATION GENERALE *
************************************************************
AA0000-INIT-GENERALE SECTION.
*******************************
MOVE 'PBXNONO ' TO PROGRAM-NAME.
MOVE FUNCTION CURRENT-DATE (1:8) TO W-DATE-SYSTEME.
MOVE W-JJ-SYSTEME TO W-JJ-JOUR.
MOVE W-MM-SYSTEME TO W-MM-JOUR.
MOVE W-SS-SYSTEME TO W-SS-JOUR.
MOVE W-AA-SYSTEME TO W-AA-JOUR.
***************************************************************
* RECHERCHE EN MEMOIRE MVS DU NOM DU JOB, DU STEP ET DES *
* DDNAME DES FICHIERS RELATIFS A CE PROGRAMME *
***************************************************************
*
* LE BLOCK PSA A UNE ADRESSE EN MEMOIRE A 0. ON VA DONC
* POSITIONNER LE PSA-BLOCK A UNE TELLE ADRESSE.
*
SET ADDRESS OF PSA-BLOCK TO PSA-POINTER.
SET ADDRESS OF TCB-BLOCK TO TCB-POINTER.
SET ADDRESS OF TIOT-BLOCK TO TIOT-POINTER.
SET TIOT-POINTER-TRAVAIL TO TIOT-POINTER.
* ON FAIT POINTER LE POINTEUR SUR LA ZONE TIOT-ENTREE.
COMPUTE INDEX-DU-TIOT = INDEX-DU-TIOT + LENGTH OF TIOT-BLOCK.
SET ADDRESS OF TIOT-ENTREE TO TIOT-POINTER-TRAVAIL.
* ON VA BALAYER LE TIOT TANT QUE L'ON TROUVE UN DDNAME.
PERFORM UNTIL END-OF-TIOT
IF TIOT-DDNAME(1:1) = 'D'
DISPLAY 'DD NAME = ' TIOT-DDNAME
END-IF
COMPUTE INDEX-DU-TIOT = INDEX-DU-TIOT +
LENGTH OF TIOT-UNE-ENTREE
SET ADDRESS OF TIOT-ENTREE TO TIOT-POINTER-TRAVAIL
END-PERFORM.
IF TIOT-DDNAME(1:1) = 'D'
DISPLAY 'DD NAME = ' TIOT-DDNAME
END-IF.
ton api cobol est pas mal, mais pas sur que ce soit release dependant, et pas facile a maintenir par un quidam add1toiste.
je te recommande un s/pgm asm avec macro extract syteme...tiot(pas besoin d'être apf) .
là tu es independant et portable.
un pgm asm pour ca notamment c'est tres simple a faire. Et puis tous les besoins specifiques d'un pgm ne sont pas aussi facilement developpable en cobol en tous cas ne pas le laisser croire.a+
si tu es sous mvs-zos ces infos seront retourné éesa l'aide d'un sous/prog.
si tu es toujours interessé je reprend lundi(23/01) le boulot je peux te faire passer le s/pgm asm qui retourne ces infos.
mon e-mail: prujajarge@hotmail.com
michel.large@ca-sudmed.fr
j'ai plein d'outil qui peuvent t'interesser
a+