END-CALL |
Fin d'appel |
|---|---|
| Cobol | |
Syntaxe
|
CALL identifier1 [USING dataname1 [,dataname2] ...] END-CALL |
Paramètres
| Nom | Description |
|---|---|
| identifier1 | Ce paramètre permet d'indiquer le nom du programme ou module externe que vous souhaitez appeler. Il peut être un nom littéral entre guillemets (exemple "MODULEX") ou une variable contenant dynamiquement ce nom. Il s'agit de l'élément central de l'appel. Le programme spécifié doit être accessible dans l'environnement d'exécution (chargeable en mémoire ou préalablement lié). |
| dataname1 [, dataname2] ... | Ces paramètres permettent de transmettre des données au programme appelé. Chaque dataname représente une variable ou un champ COBOL étant passé par adresse au programme externe. Cela permet au programme appelé d'accéder (et éventuellement modifier) les données du programme appelant. Le nombre, l'ordre, et la nature des paramètres doivent correspondre à ceux attendus par le programme cible pour assurer la compatibilité et éviter les erreurs à l'exécution. |
Description
Cette instruction permet d'indiquer la fin d'une instruction CALL.
Remarques
- Structure d'appel modulée : END-CALL marque la fin d'un bloc d'appel de programme externe. En COBOL, les appels à des programmes ou des modules externes sont essentiels pour gérer les interactions entre différents composants d'une application. Cela permet de structurer proprement les appels, particulièrement dans les cas où plusieurs appels sont imbriqués ou conditionnels.
- Clôture de l'instruction CALL : L'instruction END-CALL est cruciale pour délimiter la portée de l'instruction CALL dans un programme COBOL. Sans cette instruction, le programme pourrait rencontrer des erreurs de syntaxe, car COBOL attend une fin explicite pour l'instruction, particulièrement dans les environnements complexes avec des blocs conditionnels ou des appels multiples.
- Nom du programme externe (identifier1) : Le paramètre identifier1 fait référence au programme externe à appeler, que ce soit un programme COBOL ou un module dynamique. Ce nom peut être dynamique (via une variable), ce qui permet de l'utiliser dans des scénarios flexibles où le programme à appeler peut être déterminé au moment de l'exécution, offrant une meilleure adaptabilité au programme.
- Transmission de données (USING dataname1, dataname2) : Le paramètre USING permet de spécifier quelles données doivent être passées au programme appelé. Ce passage par référence permet au programme externe d'accéder directement aux données, et les modifications dans le programme appelé affecteront directement les variables du programme appelant. Cette fonctionnalité est essentielle pour manipuler de grandes quantités de données ou effectuer des calculs dans un programme externe.
- Importance de l'ordre des paramètres : L'ordre des dataname passés avec le paramètre USING est critique. Le programme externe attend un ordre spécifique pour les paramètres. Si cet ordre n'est pas respecté, cela peut entraîner des erreurs d'exécution ou des résultats imprévus, soulignant l'importance de la gestion rigoureuse des interfaces entre les programmes.
- Passage par adresse vs valeur : Le passage des données via USING se fait par adresse, ce qui signifie que toute modification faite dans le programme externe sur les données affectera directement les variables dans le programme appelant. Cette approche est plus efficace en termes de performance, car elle évite des copies de données, mais elle nécessite une gestion précise des accès aux données.
- Interopérabilité entre les programmes : L'utilisation de CALL et END-CALL permet l'interopérabilité entre différents programmes COBOL ou entre COBOL et d'autres langages. Cela est particulièrement utile dans des systèmes qui intègrent plusieurs technologies ou dans des architectures de type "microservices", où différents modules peuvent être développés indépendamment mais doivent interagir entre eux.
- Gestion des erreurs et robustesse : Le bloc CALL avec END-CALL peut être accompagné de la gestion des erreurs via des mécanismes comme ON EXCEPTION pour gérer les erreurs spécifiques du programme appelé. Cela améliore la robustesse de l'application en permettant au programme d'attraper et de traiter des exceptions ou des échecs d'exécution provenant du programme externe de manière propre et contrôlée.
Dernière mise à jour : Jeudi, le 28 juillet 2011