Ich versuche, einen neuen Befehl auf einer iSeries zu erstellen, bei dem einer der Parameter ein Dateiname mit der Standard-Syntax LIBRARY/FILE MEMBER sein muss, etwa so
MYCMD FILE(MYLIB/MYFILE MYMEMBER)
oder sogar
MYCMD FILE(MYLIB/MYFILE) MEMBER(MYMEMBER)
Ich habe es versucht:
- Erstellen Sie eine PARM-Anweisung, die den Parameter FILE mit dem Typ *CHAR verwendet
- Erstellen eines speziellen Typs mit ELEM-Anweisungen
Aber ich kann nicht herausfinden, wie man einen Parameter erstellt, der einen Wert akzeptiert, der ein qualifizierter Objektname ist, wie der FROMFILE-Parameter, der mit CPYTOIMPF verwendet wird.
UPDATE
Die Antworten von JamesA funktionieren gut, aber irgendwie bekomme ich zwei zusätzliche Zeichen in meiner CL-Variable:
CMD
PARM KWD(FILE) TYPE(FNAME) PROMPT('CL +
source' 1)
FNAME: ELEM TYPE(FILE) PROMPT('File')
ELEM TYPE(*NAME) LEN(10) PROMPT('Source +
member')
FILE: QUAL TYPE(*NAME) LEN(10)
QUAL TYPE(*NAME) DFT(*CURLIB) SPCVAL(*CURLIB) PROMPT('Library') LEN(10) MIN(0)
CL
PGM PARM(&PFIC &OUTFILE &CODEPAGE)
DCL VAR(&PFIC) TYPE(*CHAR) LEN(32)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&FILE) TYPE(*CHAR) LEN(10)
DCL VAR(&MEMBER) TYPE(*CHAR) LEN(10)
CHGVAR VAR(&FILE) VALUE(%SST(&PFIC 3 10))
CHGVAR VAR(&LIB) VALUE(%SST(&PFIC 13 10))
CHGVAR VAR(&MEMBER) VALUE(%SST(&PFIC 23 10))