Bonjour,
Via la fonction DSINFO, je voudrais récupérer la taille d'un fichier passé en paramètre dans un programme COBOL.
En codant ceci :
CALL ISPLINK USING DSINFO DSNAME.
J'ai un RC = 20 .
Comment faire ?
Merci
Bonjour,
Via la fonction DSINFO, je voudrais récupérer la taille d'un fichier passé en paramètre dans un programme COBOL.
En codant ceci :
CALL ISPLINK USING DSINFO DSNAME.
J'ai un RC = 20 .
Comment faire ?
Merci
bonjour, peux tu nous donner la définitions des variables en working de ton USING?
vu que tu call ISPLINK, tu dois au minimum dans ton JCL etre sous environnement TSO genre IKJEFT01
et avoir les PDS ISPF en ligne, genre //ISPLLIB et autre
c'est le cas?
la SYSPRINT est vide?
Bonjour,
Voici le code du programme COBOL :
et le JCL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 WORKING-STORAGE SECTION. 01 DSINFO PIC X(08) VALUE 'DSINFO '. 01 ISPLINK PIC X(08) VALUE 'ISPLINK '. 01 VGET PIC X(08) VALUE 'VGET '. 01 DSNAME PIC X(44) VALUE 'CTR.L208656.RESULT'. 01 ZDSTOTU PIC X(13) VALUE 'ZDSTOTU '. * PROCEDURE DIVISION. * DEBUT. CALL ISPLINK USING DSINFO DSNAME. DISPLAY RETURN-CODE UPON SYSOUT.
J'ai le même résultat RC = 20 même en ajoutant les bibliothèques ISP***.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 //TESTMCD EXEC PGM=TESTMCD4,PARM='CTR.L208656.RESULT' //SYSOUT DD SYSOUT=*
hum, je ne vois pas ou ton programme récupère le paramètre contenant le nom du fichier.
Je pense qu'il te faut une linkage :
Et dans NOMFICH, tu as le nom du fichier dont tu veux connaitre la longueur. Un petit move dans DSNAME(je suppose que c'est le nom du fichier à voir, je ne connais pas cet utilitaire), et ça devrait plus ressembler à ce que tu cherches.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ****************************************************************** LINKAGE SECTION. ****************************************************************** 01 PARM. 03 PARM-LONG PIC 9(4) COMP. * PARAMETRE 03 NOMFICH PIC X(44). ****************************************************************** PROCEDURE DIVISION USING PARM . ******************************************************************
Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
3)le temps de comprendre toutes les exigences, le projet est terminé
4)le temps de terminer le projet, les exigences ont changé
Et le serment de non-allégiance :
Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.
a mon avis ton RC=20 vient simplement du fait que ton programme n'est pas sous environnement TSO et ispf. c'est ce que je t'ai deja dit dans mon précédent post...
ton JCL doit être du genre :
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
23
24
25
26
27
28
29 //STEP1 EXEC PGM=IKJEFT01 //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTERM DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //ISPPROF DD DISP=SHR,DSN=... //ISPFILE DD DISP=SHR,DSN=... //ISPLOG DD DUMMY,DCB=(RECFM=VB,LRECL=121,BLKSIZE=13000) //ISPPLIB DD DISP=SHR,DSN=... //ISPMLIB DD DISP=SHR,DSN=... //ISPTLIB DD DISP=SHR,DSN=... //ISPSLIB DD DISP=SHR,DSN=... //ISPLLIB DD DISP=SHR,DSN=... //STEPLIB DD DISP=SHR,DSN=... //SYSEXEC DD DISP=SHR,DSN=... //ISPWRK1 DD DISP=NEW,UNIT=VIO,SPACE=(TRK,(200,50)), // DCB=(LRECL=256,BLKSIZE=2560,RECFM=FB) //ISPWRK2 DD DISP=NEW,UNIT=VIO,SPACE=(TRK,(200,50)), // DCB=(LRECL=256,BLKSIZE=2560,RECFM=FB) //ISPWRK3 DD DISP=NEW,UNIT=VIO,SPACE=(TRK,(200,50)), // DCB=(LRECL=256,BLKSIZE=2560,RECFM=FB) //ISPWRK4 DD DISP=NEW,UNIT=VIO,SPACE=(TRK,(200,50)), // DCB=(LRECL=256,BLKSIZE=2560,RECFM=FB) //SYSTSIN DD * ISPSTART PGM(TESTMCD4) - PARM(CTR.L208656.RESULT)
Bonjour,
Le JCL est bien un ISPSTART PGM.... mais cette fois, j'ai un RC=8
ISPSTART PGM(TESTMCD4)
ISPD118
The initially invoked module ended with a return code = 8
Il n'y a plus de paramètre, le nom du fichier est en dur dans le pgm.
Cdlt
un RC=8 sur un DSINFO signifie que le fichier n'existe pas..
s'il existe vraiment, je me demande s'il ne faudrait pas ajouter des quotes au nom de ton fichier quand tu lances le DSINFO, j ai bien peur qu'il ajoute un prefixe sinon..
Ou alors:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SYSTSIN DD * PROFILE NOPREFIX ISPSTART PGM(TESTMCD4) /*
Je ne suis pas très satisfaite de retrouver ma problématique sur ce site, surtout quand les éléments envoyés ne sont pas exacts et ne correspondent pas à ce que je suis en train de tester.
De plus pas très malin d'avoir laissé mon user dans le nom du fichier communiqué sur une des réponses faites par NAGEUR.
J'apprécierai que NAGEUR se fasse connaître en interne ou j'aurai apprécié qu'il me fasse part de sa démarche!!!!!!!
Je désapprouve totalement la démarche faite par NAGEUR.
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