ADELIA |
|
|
|
|
(I/B) |
|
|
|
|
Paragraphe d'utilisation
Tous
Syntaxe
DEBUT_PROCEDURE NomProcédure
Description
Cet ordre marque le début d'une procédure interne au programme (sous-programme interne). Une procédure peut être placée à n'importe quel endroit du programme.
Le nom de la procédure ne peut pas excéder 6 caractères, le premier de ces caractères étant alphabétique. Cependant :
-
Deux procédures ne peuvent pas être imbriquées.
Une procédure ne peut pas être écrite dans une imbrication de type SI ou TANT_QUE.
Une procédure ne peut pas être écrite dans des paragraphes TRT_TOTAL, TRT_CHANGEMENT, CHANGEMENT_PAGE, GESTION_SFL, AJOUT_SFL.
A chaque ordre DEBUT_PROCEDURE doit correspondre un ordre FIN_PROCEDURE permettant de terminer la procédure.
Toutes les procédures d'un programme doivent avoir un nom différent.
Une procédure est toujours appelée par une instruction TRAITER_PROC, sauf s'il s'agit de *PSSR qui est automatiquement appelée en cas d'erreur de programme.
Il peut y avoir plusieurs TRAITER_PROC pour appeler la même procédure.
Important : l'utilisation du mot réservé *PSSR n'est autorisée que pour les utilisateurs qui génèrent du RPG. Il s'agit de la routine de gestion des erreurs programme détectées à l'exécution ; voir les brochures IBM correspondantes pour avoir plus d'informations sur l'utilisation du sous-programme *PSSR.
Par exemple
SI ARTICLE EXISTE
VALEUR_TABLE = CODE_TAXE
SINON
VALEUR_TABLE = '000'
FIN
TRAITER_PROC CLPRIX
*
DEBUT_PROCEDURE CLPRIX
CLE_TABLE = 'TAXE'
LIRE FICHIER_TABLE
PRIX_TOTAL = ( PRIX_ART * QTE - REMISE ) * TAUX_TAXE
FIN_PROCEDURE
*
DEBUT_PROCEDURE *PSSR
SI *STATUT_PGM <> 0
CODE_FIN_PSSR = '*CANCL'
FIN
TRAV_ERR = *JOB
USER_ERR = *USER
HEURE HEURE_ERR
PGME_ERR = *NOM_PGM
APPELER TRACE_ERREURS TRAV_ERR USER_ERR HEURE_ERR PGME_ERR
FIN_PROCEDURE CODE_FIN_PSSR