Per controllare in un programma CLP chiamato se il chiamante ha passato un parametro si può tentare di usare la variabile del parametro e testare l’errore MCH3601.
Per ogni parametro che può essere opzionale bisogna definire nel programma CLP una variabile di appoggio che dovrà essere valorizzata se il parametro viene passato oppure inizializzata a blanks o zero se il parametro viene omesso,
Nel programma CLP si dovrà sempre usare la variabile di appoggio, tranne – ovviamente – nell’istruzione iniziale di controllo se il parametro viene passato.
Cfr. anche http://www.rpgpgm.com/2014/07/how-to-cope-with-missing-parameters-in.html
Di seguito un esempio:
PGM PARM(&P_PARM1) DCL VAR(&P_PARM1) TYPE(*CHAR) LEN(10) DCL VAR(&PARM1) TYPE(*CHAR) LEN(10) CHGVAR VAR(&PARM1) VALUE(&P_PARM1) MONMSG MSGID(MCH3601) + EXEC(CHGVAR VAR(&FLD) VALUE(' ')) ... ENDPGM