有没有办法在 PCL-PR EXTPGM 中设置默认值?

Is there a way to set default value in PCL-PR EXTPGM?

注意这段代码:

DCL-S PGM1_PARM1 CHAR(10) INZ('param val ')
DCL-PR @PROGRAM1 EXTPGM('PGM1');
  PARAM1 CHAR(10);
END_PR;

@PROGRAM1(PGM1_PARM1);

程序将始终使用相同的参数调用。我尝试将 INZ 添加到 DCL-PR 中的参数声明,但编译器开始对我大喊 INZ 关键字无效。

有没有办法将默认调用值设置为 DCL-PR

如果您希望调用者能够在不传递参数的情况下调用您的程序,请在原型中的参数中添加 OPTIONS(*NOPASS)。要测试参数是否传递,在程序本身的代码中编写如下代码:

DCL-S PARAM1 CHAR(10) INZ('param val ');
DCL-PI @PROGRAM1;
  PARAM1_PASSED CHAR(10) OPTIONS(*NOPASS);
END_PI;

if %parms >= %parmnum(PARAM1_PASSED);
   PARAM1 = PARAM1_PASSED;
   ... or just ignore it if you don't care what they passed
endif;

现在来电者只需编码

@PROGRAM1();