| RPG : valeur de retour procédure |
|
Lorsque l'on souhaite exécuter plusieurs procédures et tester leur valeur de retour, attention à la syntaxe : le compilateur crée un code qui s'arrête d'évaluer les expressions logiques dès que celles-ci ne peuvent plus être vraies :
h dftactgrp( *no )
d proc1 pr n
d proc2 pr n
d execProc s n
/free
execProc = proc1() and proc2() ; // proc2 n'est pas exécutée car proc1 renvoie *off
execProc = proc1() ;
execProc = proc2() and execProc ; // proc2 est exécutée
return ;
/end-free
p proc1 b
d pi n
/free
dsply 'Procédure 1' ;
return *off ;
/end-free
p e
p proc2 b
d pi n
/free
dsply 'Procédure 2' ;
return *on ;
/end-free
p e
Résultat dsply :
DSPLY Procédure 1
DSPLY Procédure 1
DSPLY Procédure 2
|