Bonjour, je souhaite copier un fichier existant vers un nouveau en mettant une variable dans le nom du fichier à créer ; dans un CLP as400
Bonjour, je souhaite copier un fichier existant vers un nouveau en mettant une variable dans le nom du fichier à créer ; dans un CLP as400
Bonjour, ça doit ressembler à ça (code non testé)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 pgm dcl &mavar *char(6) chgvar &mavar 'TRUC' cpyf mabib/monfichier mabib/(MF_ *tcat &mavar) crtfile(*yes) endpgm
Merci
Oui, ça pourrait ressembler à cela mais la variable vient d'un fichier externe
Fichier FIC avec les champs AA, TYPE,...
Dans le CLP, la bibliothèque BIB doit être copiée en BIB&AA
Tu lis ton fichier en entrée avec la fonction RCVF tu récupères la variable voulue et ensuite tu nommes ton fichier comme présenté ci-dessus.
ok, merci mais ça ne fonctionne pas.
Voici mes éléments :
DCL VAR(&AAN) TYPE(*CHAR) LEN(3)
DCL VAR(&FIC1) TYPE(*CHAR) LEN(6) VALUE(AACDEP)
DCLF FILE(LIB2/FIC2)
RCVF OPNID(*NONE)
IF COND(var1 du FIC2 = 'ARCHIVCDE ') THEN(DO)
CHGVAR VAR(&AAN) VALUE(&FIC1 '*TCAT %SST(var2 du fichier1, 1, 3)')
CPYF FROMFILE(LIB1/FIC2) +
TOFILE(LIB2/&AAN) CRTFILE(*YES)
Et quand tu dis que ça ne fonctionne pas, ça fait quoi d'autre que ce que tu veux ?
La partie en gros ne devrait pas être entre quotes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 DCL VAR(&AAN) TYPE(*CHAR) LEN(3) DCL VAR(&FIC1) TYPE(*CHAR) LEN(6) VALUE(AACDEP) DCLF FILE(LIB2/FIC2) RCVF OPNID(*NONE) IF COND(var1 du FIC2 = 'ARCHIVCDE ') THEN(DO) CHGVAR VAR(&AAN) VALUE(&FIC1 '*TCAT %SST(var2 du fichier1, 1, 3)') CPYF FROMFILE(LIB1/FIC2) + TOFILE(LIB2/&AAN) CRTFILE(*YES)
le fichier de la bibliothèque de substitution n'est pas nommé correctement (&AAN)
Dis si tu veux de l'aide il faut pas donner les infos au compte goutte, je ne vais pas aller les chercher moi
Dsl de mettre les éléments au compte goutte
En fait, ce qui ne va pas en 1er lieu, c'est la commande IF. Le cl ne trouve pas la variable "var1". Faut il la mettre en ' ' ?
IF COND(var1 du FIC2 = 'ARCHIVCDE ')
Il faut bien mettre & devant les variables fichiers comme pour les variables déclarées dans le CL.
J'ai mis le & et toujours pareil
Voici exactement mon CL :
DCLF FILE(BIB/PARLIBP)
RCVF OPNID(*NONE)
IF COND(&NPAPAR = 'ARCHIVCDE') THEN(DO)
en sachant que NPAPAR est une zone du fichier PARLIBP et contient bien 'ARCHIVCDE'
En debug la variable est alimentée correctement ?
comment fait-on un debug dans un CL ?
Il faudrait peut-être faire un RCVF du fichier et pas de *NONE, non ?![]()
Idem, tjs rien
RCVF RCDFMT(format de LIB)
Merci quand même![]()
Partager