OPTIONAL |
Optionnel |
|---|---|
| Cobol | |
Syntaxe
|
FILE-CONTROL. ((SELECT [OPTIONAL] filename ASSIGN TO [label][S] AS JCLvariable) [RESERVE integer AREAS] | ORGANIZATION IS [SEQUENTIAL]/RELATIVE/INDEXED | | ACCESS MODE IS [SEQUENTIAL]/RANDOM/DYNAMIC | |RELATIVE/RECORD KEY alphanumericdatafiled| [ALTERNATIVE RECORD KEY alphanumericrecordfield [WITH DUPLICATES] [PASSWORD IS literaldataname] [FILE STATUS IS alphanumericdataitem, groupdataitem] |
Paramètres
| Nom | Description |
|---|---|
| filename | Ce paramètre permet d'indiquer le nom du fichier qui est référencé dans la clause SELECT. Ce fichier peut être optionnel et n'est pas requis pour l'exécution du programme COBOL. |
| label | Ce paramètre permet de spécifier une étiquette, souvent utilisée pour associer le fichier à un label spécifique dans le code JCL (Job Control Language). |
| S | Ce paramètre permet d'indiquer que le fichier est associé à un label JCL, et peut être utilisé pour spécifier un fichier dans un environnement de traitement par lots (batch processing). |
| JCLvariable | Ce paramètre permet d'indiquer une variable faisant référence au fichier dans un environnement JCL. Il est utilisé pour lier des fichiers avec des noms dynamiques dans des scripts d'exécution de tâches. |
| integer | Ce paramètre permet de spécifier un nombre entier pour la quantité d'aires réservées pour les données du fichier. Il est utilisé dans les environnements où la gestion dynamique de la mémoire est nécessaire. |
| AREAS | Ce paramètre est utilisé pour définir le nombre d'aires (ou zones de mémoire) à réserver pour le fichier en question. Cela est particulièrement utile pour les fichiers manipulés de manière optimisée en termes de performance. |
| ORGANIZATION | Ce paramètre permet de spécifier l'organisation du fichier, par exemple, SEQUENTIAL, RELATIVE, ou INDEXED. Cette option définit la façon dont les enregistrements dans le fichier sont structurés et accédés. |
| ACCESS MODE | Ce paramètre permet de spécifier le mode d'accès au fichier, qui peut être SEQUENTIAL, RANDOM, ou DYNAMIC, indiquant respectivement l'accès en séquence, aléatoire, ou dynamique. |
| RELATIVE/RECORD KEY | Ce paramètre est utilisé pour spécifier la clé de l'enregistrement dans un fichier RELATIVE ou INDEXED. Il définit un champ de clef d'enregistrement utilisé pour l'accès direct aux données. |
| ALTERNATIVE RECORD KEY | Ce paramètre permet de spécifier une clé d'enregistrement alternative pour le fichier. Cette option est utilisée dans les fichiers indexés pour offrir une autre manière d'accéder aux enregistrements, avec la possibilité de traiter des doublons. |
| WITH DUPLICATES | Ce paramètre est utilisé en association avec ALTERNATIVE RECORD KEY et permet de gérer les enregistrements où la clef alternative peut contenir des valeurs dupliquées. |
| PASSWORD | Ce paramètre permet de spécifier un mot de passe associé au fichier pour une gestion de la sécurité ou de l'accès dans certains environnements. |
| FILE STATUS | Ce paramètre permet de spécifier une variable ou un groupe de variables pour enregistrer le statut du fichier après une opération. Cela permet de détecter les erreurs ou l'état du fichier après des opérations telles que OPEN, READ, WRITE,... |
Description
Cette instruction permet d'indiquer que le fichier d'entrée n'est pas obligatoire présent dans une instruction de clause «SELECT».
Remarques
- L'utilisation du mot clef OPTIONAL dans une clause SELECT permet de gérer de manière souple la présence ou l'absence d'un fichier. Cela évite au programme de planter si un fichier non essentiel est manquant au moment de l'exécution. Cette fonctionnalité est utile pour adapter le comportement du programme selon les ressources disponibles.
- La clause OPTIONAL est couramment utilisée dans des environnements de traitement par lots ou des systèmes complexes où certains fichiers d'entrée peuvent ne pas être fournis à chaque exécution. Elle offre une forme de tolérance aux erreurs en ne rendant pas leur présence obligatoire, à condition que le programme le gère correctement.
- L'instruction OPTIONAL doit être utilisée avec précaution : elle permet au programme de continuer sans erreur, mais cela implique que la logique du programme anticipe l'absence du fichier et prenne des décisions alternatives selon les besoins métier. Une mauvaise gestion peut entraîner des résultats incomplets ou incohérents.
- En pratique, OPTIONAL est souvent utilisé pour des fichiers de configuration, des fichiers journaux, ou des données d'entrée supplémentaires. Leur absence ne doit pas bloquer le traitement principal, mais peut influencer certaines décisions internes ou produire des valeurs par défaut.
- La clause OPTIONAL est uniquement valable dans la section FILE-CONTROL de la ENVIRONMENT DIVISION. Elle fait partie intégrante de la définition des fichiers et ne peut pas être utilisée dynamiquement à l'exécution. Une fois compilé, le programme attendra un comportement conforme à cette clause.
- Si un fichier déclaré OPTIONAL est effectivement absent à l'exécution, il est recommandé de vérifier l'état du fichier à l'ouverture à l'aide de la clause FILE STATUS. Cette vérification permet de différencier entre un fichier absent, vide, ou incorrectement assigné.
- La clause OPTIONAL n'est pas disponible dans tous les compilateurs COBOL. Il faut s'assurer que l'environnement de développement prend bien en charge cette directive. Certains anciens compilateurs ou systèmes restreints peuvent l'ignorer ou la rejeter avec une erreur.
- L'implémentation de fichiers OPTIONAL peut également se combiner à une logique conditionnelle dans la procédure. En testant la disponibilité du fichier, on peut orienter le programme vers une branche spécifique, par exemple un traitement alternatif ou une suppression de certaines étapes.
Dernière mise à jour : Jeudi, le 28 juillet 2011