Création d’une fonction ou sous-fonction
Certaines fonctions ou sous-fonctions sont indépendantes des fonctions ou sous-fonctions automatiques. D’autres sont insérées relativement à des fonctions ou sous-fonctions automatiques spécifiques au modèle Dialogue standard ou client ou Composant Applicatif. Les informations affichées dans l'assistant de création varient en conséquence.
- L’insertion de fonctions ou sous-fonctions relatives associées aux deux modèles est impossible dans une même Macro.
- Une insertion en mode absolu est toujours possible. Pour un Programme, ce type d’insertion est le seul possible.
- Dans un Ecran standard ou client, une insertion par rapport au modèle Composant Applicatif est impossible.
- Dans un Composant Applicatif, une insertion par rapport au modèle Dialogue standard ou client est impossible.
- Code fonction
- Ce code est obligatoire. Il est constitué de deux caractères, uniquement des chiffres ou des
lettres.
Dans une Macro, vous pouvez le paramétrer en indiquant un $ suivi d’un chiffre ou d’une lettre.
Un code fonction ne peut pas être modifié s'il existe au moins une ligne dépendante de cette fonction.
Ce code détermine l'emplacement des lignes source dans la séquence des fonctions.
Le code des fonctions automatiquement générées est préétabli. Si vous sélectionnez un modèle dans la zone Modèle, vous devez donc créer un code fonction relativement aux codes des fonctions automatiques.
Pour le modèle Dialogue standard ou client, vous devez indiquer une des fonctions automatiques suivantes :- 20 : Contrôles des Rubriques
- 25 : Accès aux Segments en réception
- 30 : Transfert des Rubriques
- 35 : Ecritures de mise à jour
- 60 : Accès aux Segments en affichage
- 65 : Alimentation des Rubriques
- 80 : Accès physiques aux Segments
Avertissement : Dans cette version de Rational Programming Patterns, l'insertion en mode relatif dans l'éditeur COBOL PDP ne peut se faire que par l'intermédiaire de la Macro prioritaire associée à l'Ecran ou au Composant Applicatif. Cette Macro est identifiée par le nom de l'instance suivi de SP. Par exemple, l'insertion d'une fonction ou sous-fonction relative dans l'Ecran SCR001 doit être faite dans la Macro prioritaire SCR001SP.Remarque : Pour des explications sur les fonctions automatiques, référez-vous à Description du COBOL généré à partir d'un Programme, Ecran ou Serveur.
- Code sous-fonction
- Ce code est constitué de deux caractères, uniquement des chiffres ou des lettres.
Dans une Macro, vous pouvez le paramétrer en indiquant un $ suivi d’un chiffre ou d’une lettre.
Ce code détermine l'emplacement des lignes source dans la séquence des fonctions.
Pour le modèle Dialogue standard ou client, le code sous-fonction est obligatoire. Il ne doit pas reprendre le code des sous-fonctions générées, qui est toujours numérique. Vous devez donc indiquer un code sous-fonction purement alphabétique.
Pour le modèle Composant Applicatif, le code sous-fonction est interdit pour une Insertion par rapport aux traitements de niveaux hiérarchiques 05. En revanche, il est obligatoire pour une Insertion par rapport aux traitements SQL, une Insertion par rapport aux traitements Vue Logique et un Remplacement d'un accès physique. Il est facultatif pour une Insertion par rapport au niveau des accès logiques.
- Niveau
- Le niveau est constitué de deux chiffres.
Dans une Macro, vous pouvez le paramétrer en indiquant un $ suivi d’un chiffre ou d’une lettre.
Il est affiché différemment selon l’entité :- Pour une Macro, il est affiché dans l’arbre de la vue Structure du code Macro, sur le noeud correspondant à la fonction ou sous-fonction. Il est identifié dans le code de la Macro sous la forme LV=nn (où nn représente le niveau).
- Pour un Programme, Ecran ou Composant Applicatif, il est affiché à partir de la colonne 73, sous la forme lvnn (où nn représente le niveau).
La valeur du niveau dépend de l’élément créé. Pour une fonction, le niveau est 05. Pour une sous-fonction, le niveau doit être compris entre 06 à 98. Le niveau par défaut des sous-fonctions est 10.
A l'intérieur d'une fonction, une sous-fonction de niveau n est dépendante des sous-fonctions de niveau inférieur à n qui la précèdent. Par exemple, une sous-fonction de niveau 15 dépend de toute sous-fonction de niveau 06 à 14 la précédant. Une sous-fonction n'est exécutée que si la fonction et toutes les sous-fonctions dont elle dépend sont exécutées.
- Titre
- Vous pouvez indiquer, de manière facultative, le titre de la fonction
ou sous-fonction. La valeur par défaut est constituée d'une série
de tirets.
Pour une insertion dans un Programme, Ecran ou Serveur, la chaîne de caractère que vous indiquez constituera le titre d’une fonction ou un commentaire sur la première ligne d’une sous-fonction. La valeur par défaut est une série de tirets. Si vous la laissez et voulez la modifier dans le code, double-cliquez dessus et indiquez une autre valeur.
- Condition d’exécution
- Cette zone est disponible pour une fonction ou sous-fonction non liée à un modèle (valeur
Aucun dans la zone Modèle).Vous indiquez si l'exécution de la fonction ou sous-fonction est conditionnée de l’une des façons suivantes :
- Aucun : La fonction ou sous-fonction est toujours exécutée. Remarque : Pour créer une fonction ou sous-fonction de ce type, vous pouvez aussi insérer un fragment Sous-fonction sans conditionnement
- IT : La fonction ou sous-fonction est exécutée si la condition est
satisfaite.
Après avoir inséré la fonction ou sous-fonction, créez une ligne sans numéro de ligne directement dans le code et saisissez la condition. Vous pouvez saisir du code sur les lignes suivantes en créant des lignes débutant par des numéros de ligne.
Remarque : Pour créer une fonction ou sous-fonction avec une condition IT, vous pouvez aussi insérer un fragment Sous-fonction avec conditionnement.Les ordres COBOL IF THEN condition et NEXT SENTENCE GO TO Fffnn-FN sont générés automatiquement après la génération de l’instance appelant la Macro.
- EL : Cette condition est interdite au niveau fonction. La sous-fonction
est exécutée si la sous-fonction précédente avec une condition IT ne l’a pas
été.
Après avoir inséré la sous-fonction, créez une ligne sans numéro de ligne directement dans le code et saisissez la condition. Vous pouvez saisir du code sur les lignes suivantes en créant des lignes débutant par des numéros de ligne.
Les ordres COBOL Fffnn-900 et GO TO Fffnn-FN sont générés automatiquement après la génération de l’instance appelant la Macro. ffnn est la sous-fonction associée contenant la condition IT.
- DW : Cette condition est interdite au niveau fonction. La sous-fonction
est exécutée de façon répétitive tant que sa condition est satisfaite.
Après avoir inséré la sous-fonction, créez une ligne sans numéro de ligne directement dans le code et saisissez la condition. Vous pouvez saisir du code sur les lignes suivantes en créant des lignes débutant par des numéros de ligne.
Les ordres COBOL Fffnn-900 et GO TO Fffnn sont générés automatiquement après la génération de l’instance appelant la Macro.
- DU : Cette condition est interdite au niveau fonction. La sous-fonction
est exécutée de façon répétitive jusqu’à ce que sa condition soit satisfaite. Elle est donc exécutée
au moins une fois.
Après avoir inséré la sous-fonction, créez une ligne sans numéro de ligne directement dans le code et saisissez la condition. Vous pouvez saisir du code sur les lignes suivantes en créant des lignes débutant par des numéros de ligne.
Aucun ordre COBOL n’est généré automatiquement.
Note sur la condition DO : La condition DO ne peut pas être sélectionnée dans cet assistant. Cependant, elle peut être présente dans le code spécifique écrit dans Pacbase. Dans ce cas, elle apparaît dans le code dans l'éditeur COBOL PDP et est affichée dans l'assistant mais ne peut pas être sélectionnée. Pour savoir comment gérer une boucle DO migrée de Pacbase, consultez Cas particulier des boucles DO et CO.Pour indiquer qu'un traitement doit être effectué de façon répétitive, comme dans la boucle DO, vous pouvez insérer le fragment Insertion d'une boucle dans une sous-fonction. Ce fragment est disponible depuis la vue Fragments, catégorie Fragments RPP. Il insère un ordre COBOL PERFORM. Vous pouvez aussi écrire un ordre PERFORM directement sur une nouvelle ligne de code, sans utiliser le fragment.
Note sur la condition CO : La condition CO n'est pas disponible dans cet assistant. Cependant, elle peut être présente dans le code spécifique écrit dans Pacbase. Pour savoir comment la gérer, consultez Cas particulier des boucles DO et CO.Elle est reprise dans Rational Programming Patterns sous forme d'un micro-pattern CO, dans les Macros uniquement. Pour indiquer que des traitements doivent être exécutés indépendamment les uns des autres en fonction de la valeur d'une variable, vous devez insérer le fragment Micro-pattern CO : traitement du Case Of dans une Macro. Ce fragment est disponible depuis la vue Fragments, catégorie Fragments RPP pour Macro. Il insère un micro-pattern CO avec le nom de la variable à tester. Vous devez ensuite créer les sous-fonctions contenant les traitements à effectuer en fonction de la valeur de la variable.
- Aucun : La fonction ou sous-fonction est toujours exécutée.
Positionnement spécifique
- Modèle
- Les informations que vous devez indiquer dans l’assistant dépendent
du modèle sélectionné dans cette zone. Trois valeurs sont possibles
:
- Aucun : Les fonctions ou sous-fonctions créées dans l’assistant ne sont pas insérées relativement à des fonctions ou sous-fonctions automatiques.
- Dialogue standard ou client : Vous ne pouvez créer que des sous-fonctions. Ces sous-fonctions sont insérées relativement à des sous-fonctions automatiques du modèle.
- Composant Applicatif : Les fonctions et sous-fonctions créées dans l’assistant sont insérées relativement à des fonctions et sous-fonctions automatiques du modèle.
- Type d’insertion
- Cette zone est associée au modèle Composant Applicatif. Vous devez indiquer par rapport à quel traitement automatique votre traitement spécifique sera inséré. Les insertions suivantes sont possibles :
- Insertion par rapport aux traitements de niveau hiérarchique 05 : Insertion par rapport aux blocs de début et de fin de Composant Applicatif, bloc des déclarations SQL et blocs Vue Logique (uniquement dans une Macro).
- Insertion par rapport aux traitements SQL :
Insertion par rapport aux traitements SQL de niveau hiérarchique 10 situés
dans le bloc des déclarations SQL. Ces insertions sont relatives aux
ordres SQL DECLARE CURSOR et WHENEVER.Remarque : Avant d'insérer des traitements spécifiques SQL, vous devez d'abord associer une fonction de niveau hiérarchique 05 au bloc FSQL. Les insertions se feront ensuite dans des sous-fonctions de niveaux hiérarchiques inférieurs.
- Insertion par rapport aux traitements d’une Vue Logique : Insertion dans le corps du programme ou dans les traitements élémentaires exécutés par PERFORM. Cette insertion n'est possible que dans une Macro.
- Insertion par rapport au niveau des accès logiques : Insertion dans les traitements d'accès logiques aux Segments pour contrôle, mise à jour ou sélection. Cette insertion n'est possible que dans une Macro.
- Insertion par rapport au niveau des accès physiques : Insertion dans la fonction 80.Cette insertion n'est possible que dans une Macro.