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