1

我正在制作自己的命令,到目前为止,处理 .cmd 代码的 cl 代码本身就可以正常工作。我可以调用它并发送参数,它完全可以完成它需要做的事情,所以我假设错误必须与.cmd有关:

CMD 'DISPLAY SYSTEM LEVEL (DSPSYSLVL) NADIA S.C.'
PARM KWD(OUTPUT)
MIN(1)
TYPE(*CHAR) LEN(8)
RSTD(*YES)
VALUES(*MSGLINE *DISPLAY)
PROMPT('OUTPUT FOR SYSTEM LEVEL')

PARM KWD(SOLUTION)
TYPE(*CHAR) LEN(4)
RSTD(*YES)
VALUES(*YES *NO)
DFT(*NO)
PROMPT('TELL ME HOW YOU DID IT')

PARM KWD(SHOWCMD)
TYPE(*CHAR) LEN(4)
RSTD(*YES)
VALUES(*YES *NO)
DFT(*NO)
PROMPT('SHOW COMMAND')

当我运行crtcmd并提供适当的文件名时,我收到消息“未在库 [库名称] 中创建命令 DSPSYSLVL”。带有 CPF0201 消息。

我对整个系统还很陌生,我真的不确定问题可能是什么。作业日志也没有提供任何新信息......

4

1 回答 1

3

这可能只是一个转录问题,但首先突出的是没有连续字符 (+) 的多行格式:

CMD 'DISPLAY SYSTEM LEVEL (DSPSYSL'
PARM KWD(OUTPUT) +
MIN(1) + 
TYPE(*CHAR) LEN(8) +
RSTD(*YES) +
VALUES(*MSGLINE *DISPLAY) +
PROMPT('OUTPUT FOR SYSTEM LEVEL')

PARM KWD(SOLUTION) +
TYPE(*CHAR) LEN(4) +
RSTD(*YES) +
VALUES(*YES *NO) +
DFT(*NO) +
PROMPT('TELL ME HOW YOU DID IT')

PARM KWD(SHOWCMD) +
TYPE(*CHAR) LEN(4) +
RSTD(*YES) +
VALUES(*YES *NO) +
DFT(*NO) +
PROMPT('SHOW COMMAND')

每个PARM都是一个实体,如果拆分为多行,则必须“继续”。

CRTCMD命令应生成一个假脱机文件,其中包含有关错误的更多详细信息。

编辑:提示的最大长度CMD也是 30 个字符。

于 2014-07-16T23:56:02.883 回答