Anmelden

View Full Version : Probleme bei Übergabe eines Parameter - Parameterlänge



Tonazzo
19-05-25, 19:50
Hi,

ich habe folgendes Problem:

PGM PARM(&DOCNAME)

DCL VAR(&IFSLNK) TYPE(*CHAR) LEN(121)
DCL VAR(&DOCNAME) TYPE(*CHAR) LEN(110)
DCL VAR(&IFSPATH) TYPE(*CHAR) LEN(21) VALUE('/home/test/dateien/')

CHGVAR VAR(&IFSLNK) VALUE(%TRIM(&IFSPATH) *TCAT %TRIM(&DOCNAME))

CPYFRMSTMF FROMSTMF(&IFSLNK) +
TOMBR('/QSYS.lib/QTEMP.LIB/TEST.file/TEST.mbr') MBROPT(*REPLACE)

Beim CPYFRMSTMF kommt die Fehlermeldung :
CPD018A Pfadname enthält eingebettete Nullen

Sehe vor lauter Bäumen wohl den Wald nicht - oder so.. :D

Kann jemand helfen. Danke im Voraus.

max40
20-05-25, 07:16
Wie wird das Programm aufgerufen? Hast du dort den Parameter auch richtig definiert?

E305GL
20-05-25, 07:45
wie wird dein programm aufgerufen bzw. wie erfolgt die parameterübergabe.
SBMJOB, CALL oder interaktiver Aufruf über befehlszeile/-prompting ???
Versuch doch mal &DOCNAME mit blank zu initiieren und an der letzen stelle (+1) ein gültiges zeichen hineinzuschreiben

Fuerchau
20-05-25, 08:50
Wie immer dasselbe Problem. Wenn bei Programm-Parametern die Länge von 32 Byte überschritten wird müssen die Zeichen vollständig übergeben werden. Ansonsten steht im Rest der Schrott aus dem Speicher.
Machst du den CALL aus einem Programm, gibts das Problem i.d.R. nicht.
Machst du das wiederum per QCMDEXC musst du eine Textkonstante in Hochkommata in der definierten Länge übergeben, da ansonsten Leerzeichen am Ende entfernt werden.

Du kannst allerdings auch ein CMD selber schreiben. Dann wird der Parameter vom CMD automatisch mit Leerzeichen aufgefüllt.

Tonazzo
21-05-25, 12:56
Hallo Herr Fuerchau,

vielen Dank.
Die Lösung war der CALL aus einem Programm.
Ich hatte den Aufruf zum Testen manuell gestartet. :confused:

Danke an alle!

Andreas_Prouza
22-05-25, 05:44
Der CALL Befehl hatte im letzten Jahr ein Update erhalten und du kannst Typ + Länge mitgeben:

CALL PGM(PGM1) PARM(('parameter' (*CHAR 110)))

Fuerchau
22-05-25, 09:05
Das ist ja mal eine Erneuerung!

holgerscherer
22-05-25, 22:22
Das ist ja mal eine Erneuerung!

siehe auch

https://www.ibm.com/support/pages/ibm-i-76-base-enhancements