PDA

View Full Version : CL-Problem



iginla
31-03-03, 09:11
Ist es möglich, mittels CL eine Datei zu kopieren, wobei die Datei mittels einer Variablen einen neuen Namen erhält? Die Variable beinhaltet den alten Dateinamen und dann wird neu das Datum angehängt. Ich erhalte aber immer die Fehlermeldung, dass ich mit CPYF keine Variable angeben kann (TOFILE &FILE0103). Kann man das irgendwie anders lösen?

Andreas Herzfeldt
31-03-03, 09:27
Guten morgen,

erstell doch erst ein Duplikat der Ursprungsdatein mit CRTDUPOBJ ( hier kannst
Du den variablen Dateinamen verwenden + Parameter DATA *NO ). Im Anschluß kannst Du
dann per CPYF die Daten kopieren.

Andreas

Bodo Roggenkamp
31-03-03, 09:28
Hallo,

interaktiv wird bei Eingabe des Parameters TOFILE &Variable eine Fehlermeldung ausgegeben. Bei Ausführung innerhalb eines CL-Programmes funktioniert dies aber. Siehe nachfolgendes Beispiel.

DCL VAR(&FILE) TYPE(*CHAR) LEN(10) VALUE(DATEINEU)
CPYF FROMFILE(MYLIB/DATEIALT) TOFILE(MYLIB/&FILE) CRTFILE(*YES)

Gruss
Bodo

malzusrex
31-03-03, 09:30
sollte eigentlich im cl gehen


pgm (&lib &file &newlib)

dcl &lib *char 10 /* Bibliothek */
dcl &file *char 10 /* FileName */
dcl &newlib *char 10 /* neue Bibliothek */
dcl &newfile *char 10 /* neuer FileName */
dcl &date *char 6 /* Datum */

rtvsysval qdate &date

chgvar &newfile (&file *tcat %sst(&date 1 4))

cpyf &lib/&file &newlib/&newfile mbropt(*replace) crtfile(*yes)

endpgm


gruß ronald

iginla
31-03-03, 09:30
Danke für Eure Antworten. Werde das mit CRTDUPOBJ versuchen. Denn es funktioniert nicht, wenn man die Variable im CL angibt bei CPYF.

Gimli
31-03-03, 09:32
Hallo Iginla,

versuche doch folgendes:
DCL VAR(&MBRNAME) TYPE(*CHAR) LEN(10)
DCL VAR(&MBRDATE) TYPE(*CHAR) LEN(6)

RTVJOBA DATE(&MBRDATE)

CHGVAR VAR(&MBRNAME) VALUE('Dateiname' *CAT &MBRDATE)

CPYF FROMFILE(Bibliothek/Dateiname) TOFILE(&MBRNAME) MBROPT(*ADD)

Viel Erfolg, Marc

iginla
31-03-03, 09:44
Kann man die Parameter auch fix hinterlegen? Es handelt sich immer um die selbe Datei.

malzusrex
31-03-03, 09:51
wenn immer die gleiche datei gemeint ist, so gib diese eben im cmd an


pgm

dcl &newfile *char 10 /* neuer FileName */
dcl &date *char 6 /* Datum */

rtvsysval qdate &date

chgvar &newfile ('MyFile' *tcat %sst(&date 1 4))

cpyf MyLib/MyFile MyLib/&newfile mbropt(*replace) crtfile(*yes)

endpgm


gruß ronald

[Dieser Beitrag wurde von malzusrex am 31. März 2003 editiert.]

iginla
31-03-03, 09:59
Oh, das mit der fixen Datei im CMD war ja eigentlich logisch :-) Ist halt noch Montag...

Auf jeden Fall funktioniert es jetzt. Vielen vielen Dank!!!