CLLE 中的 *BYVAL 和 *BYREF
*BYVAL and *BYREF in CLLE
我正在尝试从 CLLE 调用 RPGLE 过程。由于 RPGLE 程序已经存在,我无法将其更改为 extproc(*CL) 类型。我目前在 V7R1 中。我使用了下面的代码。如果我通过 *BYVAL,则参数不会被传递。如果我经过 *BYREF 它正在工作。我在 RPGLE 服务中将参数定义为 CONST。如果我必须进行任何其他更改才能按值传递,请告诉我。
PGM
DCLPRCOPT USRPRF(*OWNER) DFTACTGRP(*NO) ACTGRP(*NEW) +
BNDDIR(SAMSRV)
DCL VAR(&CLNBR) TYPE(*CHAR) LEN(9)
DCL VAR(&USER) TYPE(*CHAR) LEN(10)
DCL VAR(&IS_VLD) TYPE(*LGL)
CHGVAR VAR(&CLNBR) VALUE('01112201T')
CHGVAR VAR(&USER) VALUE('UUUUU ')
CALLPRC PRC('IsValidClient') PARM((&CLNBR *BYREF) +
(&USER *BYREF)) RTNVAL(&IS_VLD)
ENDPGM
我正在尝试从 CLLE 调用 RPGLE 过程。由于 RPGLE 程序已经存在,我无法将其更改为 extproc(*CL) 类型。我目前在 V7R1 中。我使用了下面的代码。如果我通过 *BYVAL,则参数不会被传递。如果我经过 *BYREF 它正在工作。我在 RPGLE 服务中将参数定义为 CONST。如果我必须进行任何其他更改才能按值传递,请告诉我。
PGM
DCLPRCOPT USRPRF(*OWNER) DFTACTGRP(*NO) ACTGRP(*NEW) +
BNDDIR(SAMSRV)
DCL VAR(&CLNBR) TYPE(*CHAR) LEN(9)
DCL VAR(&USER) TYPE(*CHAR) LEN(10)
DCL VAR(&IS_VLD) TYPE(*LGL)
CHGVAR VAR(&CLNBR) VALUE('01112201T')
CHGVAR VAR(&USER) VALUE('UUUUU ')
CALLPRC PRC('IsValidClient') PARM((&CLNBR *BYREF) +
(&USER *BYREF)) RTNVAL(&IS_VLD)
ENDPGM