ADELIA |
|
SADELIA |
|
|
(I/B) |
|
(B) (S) |
|
|
Attention : cet ordre est utilisé avec la version d'Adélia générant du RPG et avec les programmes SADELIA.
Paragraphe d'utilisation
Tous
Syntaxe
RETOURNER
Description
Sur AS/400, cet ordre permet de sortir d'un programme appelé. Dans ce cas, le programme appelé reste en mémoire centrale. Le programme appartient toujours à la liste des programmes actifs, la mémoire statique est occupée et les zones de travail restent connues par le système pour une exécution suivante.
De plus, les fichiers ouverts par le programme appelé restent ouverts.
Pour décharger le programme de la mémoire et libérer les ressources qui lui sont associées (fichiers ouverts), on peut le rappeler en faisant en sorte qu'il se termine par un ordre TERMINER.
L'autre ordre permettant de sortir d'un programme est TERMINER.
Pour les programmes ADELIA, il est possible d'indiquer le même mode de sortie de programme à TERMINER qu'à RETOURNER, lors de la génération du programme (option de génération RT ou LR).
Attention :
-
- Pour les programmes ADELIA, des problèmes d'affichage peuvent survenir lors de l'utilisation de cet ordre dans un programme avec fenêtre. Dans ce cas, il faut gérer soi-même l'ouverture et la fermeture du fichier écran.
- Dans un programme SADELIA généré pour une autre plate-forme que l'AS/400, s'il est placé dans le paragraphe INIT_PGM ou dans une procédure publique appelée en direct, l'ordre RETOURNER a le même effet que l'ordre TERMINER, sinon il a le même effet que l'ordre QUITTER.
Par exemple
* (PROGRAMME ENTREE_COMMANDE) |
* |
APPELER FENETRE_CLIENT W_NOM_CLI W_CODE_CLI W_CODE_RETOUR |
* |
SI W_CODE_RETOUR <> 'N' |
ZZ_CODE_CLI = W_CODE_CLI |
ZZ_NOM_CLI = W_NOM_CLI |
FIN |
* (PROGRAMME FENETRE_CLIENT) |
* |
RECEVOIR NOM CODE VAL_RETOUR |
TRAITER 01 |
TRANSACTION 01 |
SI *F03 |
VAL_RETOUR = 'N' |
TERMINER |
* libère les ressources de ce programme |
* et retourne au programme d'entrée de commandes |
FIN |
* ... |
SI *F12 |
VAL_RETOUR = 'R' |
RETOURNER |
* retourne au programme d'entrée de commandes |
* sans libérer les ressources de FENETRE_CLIENT |
FIN |