Téléchargement des produits


Version anglaise


 

 

ADELIA

      

      

      

      

(I/B)

 

 

 

 

 

Paragraphe d'utilisation

Fin de paragraphe PROCEDURE

 

Syntaxe

FIN_PROCEDURE IdVar

 

IdVar

IdVar | Rien

 

Description

Cet ordre marque la fin d'une procédure interne au programme (sous-programme interne).

Une procédure peut être placée à n'importe quel endroit du programme.

 

Cependant :

Chaque ordre FIN_PROCEDURE doit correspondre à un ordre DEBUT_PROCEDURE qui doit le précéder.

Le contrôle est rendu au programme derrière l'ordre qui a appelé cette procédure "TRAITER_PROC NomProcédure".

 

Si l'ordre FIN_PROCEDURE termine :

    • soit une procédure de type *PSSR (possible uniquement en RPG) :
      DEBUT_PROCEDURE *PSSR,

    • soit une procédure de type INFSR (possible en RPG pour définir une procédure déclarative) :
      DEBUT_PROCEDURE PROFI1 où PROFI1 est une procédure de gestion d'erreur fichier (INFSR),

il est possible, dans ces deux cas, de préciser derrière l'ordre FIN_PROCEDURE une variable alphanumérique.

 

 

Par exemple :

 

FIN_PROCEDURE INSTRUC_RETOUR

 

Cette variable contient un mot-clé qui indique où le contrôle doit être rendu après l'exécution de la procédure ; voir les brochures IBM RPG concernant l'utilisation de cette variable associée à l'instruction ENDSR à propos des procédures déclaratives.

 

Important : les notions de *PSSR et de INFSR n'étant pas gérées avec le générateur C, la variable de fin de procédure n'est alors pas prise en compte.

 

Par exemple

SI   ARTICLE EXISTE

VALEUR_TABLE = CODE_TAXE

TRAITER_PROC CLPRIX

SINON

VALEUR_TABLE = '000'

TRAITER_PROC CLPRIX

FIN

*

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

 

Voir aussi la liste des ordres L4G par thème

↑ Haut de page

  • Aucune étiquette