我正在尝试在 iSeries 上创建一个新命令,其中一个参数必须是使用标准 LIBRARY/FILE MEMBER 语法的文件名,例如
MYCMD FILE(MYLIB/MYFILE MYMEMBER)
甚至
MYCMD FILE(MYLIB/MYFILE) MEMBER(MYMEMBER)
我试过了 :
- 使用带有 *CHAR 类型的 FILE 参数创建 PARM 语句
- 使用 ELEM 语句创建特殊类型
但我找不到如何创建一个接受限定对象名称值的参数,例如与 CPYTOIMPF 一起使用的 FROMFILE 参数。
更新
JamesA 的答案工作正常,但不知何故我在我的 CL 变量中得到了两个额外的字符:
命令
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))