View Full Version : Variabeln in Comand "MOVE"
Ich möchte in einem CL-Programm den MOVE-Befehl für das IFS eingeben.
Kann man in diesem Befehl auch statt eines bestimmten Objektnamens eine entsprechende Variabel eingeben?
Ich habe folgendes versucht einzugeben:
MOVE OBJ('/TEAM LEI/MLB/' *CAT &DATIN) +
TOOBJ('/TEAM LEI/MLB/MLB-BACKUP/' *CAT &DATIN)
Leider kam die Fehlermeldung:
Ausdrucksoperator für Parameter OBJ bzw. TOOBJ unzulässig.
Berechnungen in CMD's müssen in Klammern gesetzt werden:
MOVE OBJ(('/TEAM LEI/MLB/' *CAT &DATIN)) +
TOOBJ(('/TEAM LEI/MLB/MLB-BACKUP/' *CAT &DATIN))
Danke für die schnelle Antwort.
Ich habe den Befehl genauso in mein CL eingebunden.
Wenn ich dann ENTER drücke oder F4 aufrufen will, kommt weiterhin die gleiche Fehlermeldung:
Ausdrucksoperator für Parameter OBJ/TOOBJ unzulässig.
Nicht alle CMD's unterstützen Ausdrücke:
Nachricht . . . : Ausdrucksoperator für Parameter OBJ unzulässig.
Ursache . . . . : Bei einem Parameter, der keine Ausdrücke unterstützt,
wurde unmittelbar vor oder nach einer Zeichenfolge ohne Leerzeichen ein
Ausdrucksoperator gefunden. Zeichenfolgen-Ausdrücke sind nur bei
CHGVAR-Befehlen (Variable ändern), IF-Befehlen oder einem Parameter, der
durch EXPR(*YES) definiert ist, zulässig. Arithmetische, logische und
Vergleichsausdrücke sind nur in den Befehlen IF und CHGVAR zulässig.
Fehlerbeseitigung: Ausdrucksoperator entfernen oder ein Leerzeichen zwischen
Operator und Zeichenfolge einfügen. Weiter Informationen im CL-Handbuch.
Wenn das der Fall ist musst du eigene Variablen definieren und diese per CHGVAR füllen:
dcl &from *char 256
chgvar &from ('/TEAM LEI/MLB/' *CAT &DATIN)
Das selbe auch für TOOBJ.
Danke. Werde ich morgen ausprobieren.
Zuvor hatte ich aber ohne Fehlermeldung folgendes speichern können:
MOVE OBJ('("/TEAM LEI/MLB/" *CAT &DATIN)') +
TODIR('/TEAM LEI/MLB-BACKUP/') DTAFMT(*TEXT)
Kann das beim Programmausführen zu dem beabsichtigten Ergebnis führen?
Mit Sicherheit nicht, da der gesamte Begriff als Textkonstante gewertet wird und ein Dateiname
'("/TEAM LEI/MLB/" *CAT &DATIN)'
bestimmt nicht erlaubt ist ;)
holgerscherer
24-05-06, 09:10
Ich möchte in einem CL-Programm den MOVE-Befehl für das IFS eingeben.
Wenn alle Stricke reissen, bastel Dir das endgültige Ergebnis vorher in eine Variable zusammen und gib dann nur noch diese im MOVE an.
-h
Danke Holger,
es klappt mit der neuen Variabel.
Wieder was dazu gelernt. Es wird eben nie langweilig mit der iSeries.
Was anderes habe ich doch oben gar nicht gesagt !!!!