PDA

View Full Version : Variabeln in Comand "MOVE"



behmer
23-05-06, 13:57
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.

Fuerchau
23-05-06, 14:00
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))

behmer
23-05-06, 14:07
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.

Fuerchau
23-05-06, 14:13
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.

behmer
23-05-06, 14:40
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?

Fuerchau
23-05-06, 15:05
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

behmer
24-05-06, 09:15
Danke Holger,

es klappt mit der neuen Variabel.

Wieder was dazu gelernt. Es wird eben nie langweilig mit der iSeries.

Fuerchau
24-05-06, 11:34
Was anderes habe ich doch oben gar nicht gesagt !!!!