Ultimo aggiornamento: 15-Dic-2018

Controllo parametri mancanti in CLP

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