Editeur COBOL PDP

L'éditeur COBOL PDP fournit des fonctions supplémentaires par rapport à celles déjà implémentées par l'éditeur COBOL standard. Il vous permet de modifier le COBOL tout en voyant clairement l'origine des lignes de code (lignes générées ou lignes de code spécifique par exemple), les lignes supprimées ou écrasées et les éventuels problèmes. Pour naviguer facilement dans le code, vous pouvez utiliser la vue Structure du code généré, qui affiche un arbre avec les nœuds générés de l'instance.

Vous pouvez ouvrir le fichier généré d'un Programme, Ecran ou Serveur dans la facette Pacbase, ou d'un Programme COBOL ou Copybook COBOL dans la facette COBOL. Pour cela, depuis la vue Explorateur de designs ou une vue des résultats d'une recherche locale ou serveur d'instances ou de références, faites un clic droit sur le fichier généré et sélectionnez Ouvrir avec > Editeur COBOL PDP. L'affichage est identique (même coloration) quand le fichier est ouvert localement ou sur le serveur. Cependant, si vous ouvrez le fichier sur le serveur, vous ne pouvez pas le mettre à jour.
Conseil : Pour la facette Pacbase, vous devez connaître les concepts expliqués dans Les étapes pour générer le COBOL d'un Programme, Ecran ou Serveur.

Pour des explications sur les variables et fonctions générées dans le code, référez-vous à Description du COBOL généré à partir d'un Programme, Ecran ou Serveur.

Composition des lignes dans l'éditeur COBOL PDP

Dans l'éditeur COBOL PDP, les lignes de code se composent de deux parties, dont la séparation est matérialisée par une ligne verticale. La première partie est la ligne de code proprement dite. La deuxième partie, à partir de la colonne 73, affiche des informations supplémentaires qui dépendent de l'origine de la ligne de code.

Les informations affichées à partir de la colonne 73 sont les suivantes :
  • Le nom du Programme, de l'Ecran ou du Serveur pour les lignes générées à partir du design de l'instance et pour les lignes générées à partir des micro-patterns insérés dans les Macros appelées.
  • Le nom de la Macro pour les lignes de généré provenant d'une Macro.
  • L'identifiant de l'appel du micro-pattern dans les lignes générées à partir d'une insertion de micro-pattern dans le code spécifique du Programme, de l'Ecran ou du Serveur. L'identifiant est généré automatiquement lors de la génération du Programme, de l'Ecran ou du Serveur pour différencier les appels. Cet identifiant correspond au numéro d'ordre de l'appel. L'identifiant du premier micro-pattern appelé est 000001 et est incrémenté de 1 à chaque nouvel appel de micro-pattern.
  • Une annotation DOT qui remplace le niveau 99 positionné dans les Macros Pacbase. Vous ne devez pas la supprimer car lors de la génération, elle ajoute un point à la fin de la ligne significative précédente.
  • Une annotation dot qui remplace la notion de 99BL positionnée dans le code spécifique des Programmes, Ecrans ou Serveurs Pacbase. Vous ne devez pas la supprimer car lors de la génération, elle ajoute un point à la fin de la ligne significative précédente.
  • Une annotation COA pour les lignes de code spécifique dont une opérande était COA dans Pacbase.
  • Le niveau de la fonction ou sous-fonction sur la ligne de l'étiquette de cette fonction ou sous-fonction insérée dans le code spécifique du Programme, de l'Ecran ou du Serveur ou dans les Macros appelées. Le niveau s'affiche sous la forme lvnn, où nn représente le nombre niveau. Il n'y a pas de niveau sur les fonctions ou sous-fonctions générées à partir du design du Programme, de l'Ecran ou du Serveur.

Vous pouvez saisir certaines informations à partir de la colonne 73. Vous pouvez insérer manuellement des sous-fonctions avec un niveau. Vous pouvez aussi indiquer des DOT pour ajouter un point à la fin de la ligne significative précédente, par exemple si la ligne précédente vient d'une Macro.

Modification du code généré

Vous pouvez modifier le code généré pour l'adapter à vos besoins.

Important : Dans la facette Pacbase, le contrôle syntaxique du COBOL est désactivé pour toutes les instances dont la variante de génération (indiquée dans l'onglet Définition) n'est pas une variante IBM®.
Conseil : Pour les lignes qui ont des caractères à partir de la colonne 73, si vous souhaitez que ces caractères conservent leur position initiale (pas de décalage vers la droite) lorsque vous insérez du code ou du texte avant la colonne 72, cochez le choix Gérer les numéros de séquence dans le menu Fenêtre > Préférences > COBOL > Editeur > Numéros de séquence.

Des facilités d'insertion de code sont disponibles sous forme de micro-patterns et fragments. Il est fortement recommandé de ne pas modifier le code généré par un micro-pattern. Des avertissements dans la marge de gauche vous signalent les cas où l’insertion du code spécifique peut perturber la réconciliation. Ceci est le cas si vous écrasez une ligne générée par un micro-pattern et ajoutez un appel de micro-pattern dans le code généré par micro-pattern.

Vous pouvez ventiler des lignes de Macros à l'intérieur d'un bloc de code spécifique. Pour cela, vous devez encadrer les lignes de code spécifique par des balises. Un bloc devant apparaître avant une ligne de Macro doit débuter par une ligne contenant la balise *{BEFORE FFFSSLIN (où FFSS est la fonction ou sous-fonction et LIN le numéro de ligne) et finir par une ligne contenant la balise *}. Un bloc devant apparaître après une ligne de Macro doit débuter par une ligne contenant la balise *{AFTER FFFSSLIN et finir par une ligne contenant la balise *}

L’éditeur PDP inclut de nombreuses fonctions. Vous pouvez, par exemple, couper, copier, coller, filtrer les lignes, déboguer ou comparer. Vous pouvez afficher l’aide à la saisie en appuyant sur les touches Ctrl et espace. Si vous sélectionnez des lignes de micro-patterns (lignes de déclaration et lignes générées), les copiez ou les coupez, puis les collez, les lignes générées ne sont pas collées. Seules les lignes de déclaration sont collées.
Limite : Les fonctions Annuler et Répéter de l’éditeur sont désactivées après une génération. La pile de modifications pour annuler et répéter est vide après chaque génération. Les modifications faites avant une génération ne peuvent donc pas être défaites par la fonction Annuler. Pour supprimer les modifications (génération comprise) effectuées avant la génération, il est toujours possible de sortir de l’éditeur sans sauvegarder ou d’utiliser la fonction Rétablir le fichier.
L'éditeur COBOL PDP signale un état modifié en affichant un astérisque (*) dans l'onglet de l'éditeur quand le fichier généré est directement modifié. Pour annuler les modifications, faites un clic droit dans l'éditeur et sélectionnez Rétablir le fichier.
Remarque : Dans les éditeurs de design, vous pouvez modifier des designs ayant participé à la génération. Dans ce cas, l'éditeur COBOL PDP ne signale pas un état modifié. Il signale uniquement la désynchronisation entre le design et le code généré avec l’icône Déphasage entre design et code généré. Si vous fermez les éditeurs de design sans sauvegarder, puis fermez l'éditeur COBOL PDP et l'ouvrez à nouveau, il n'apparaît plus déphasé. Il est à noter que si une instance est ouverte dans plusieurs éditeurs de design simultanément, les modifications sont conservées tant que vous n'avez pas fermé le dernier de ces éditeurs sans enregistrer.

Si vous faites un clic droit n'importe où dans la vue, vous pouvez sélectionner Générer le code dans le menu contextuel. Si vous avez mis à jour le design d'un Programme, Ecran ou Serveur, le code nouvellement généré intégrera les modifications du design tout en conservant tous les changements spécifiques entrés dans le code.

La préférence Gestion du contrôle de structure avant génération, accessible depuis Fenêtre > Préférences > Programmation pilotée par pattern > Patterns Pacbase contrôle que l'imbrication des sous-fonctions dans le COBOL est correcte avant la génération. Par défaut, elle bloque la génération si le contrôle détecte des erreurs.

Création et modification de fonctions et sous-fonctions spécifiques

Ces actions sont disponibles uniquement dans la facette Pacbase.

Vous insérez des fonctions ou sous-fonctions spécifiques dans la PROCEDURE DIVISION. Pour ouvrir l'assistant de création, faites un clic droit et sélectionnez Actions sur fonction et sous-fonction > Créer. La position du curseur lors de l’ouverture de l’assistant est sans importance. La fonction ou sous-fonction créée est insérée correctement selon le numéro que vous lui donnez dans l’assistant.

Il existe deux modes d’insertion :
  • Insertion en mode absolu dans les Programmes, Ecrans et Serveurs,
  • Insertion en mode relatif par rapport aux fonctions automatiques du modèle Dialogue standard ou client ou Composant Applicatif.
    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.
L’assistant de création de fonctions et sous-fonction insère les éléments suivants dans le code :
  • Le titre de la fonction ou sous-fonction,
  • Les étiquettes de début et de fin,
  • Le niveau,
  • Le commentaire *<insert code for Fffnn here> (avec Fffnn le code de la fonction ou sous-fonction) pour indiquer le début d’une insertion possible de code spécifique,
  • La condition d’exécution si elle a été indiquée dans l’assistant. La condition d'exécution est indiquée à la fin de la ligne de commentaire précédant l'insertion (*.DU par exemple).
    Remarque : Pour des explications sur les conditions d'exécution DO et CO, consultez Cas particulier des boucles DO et CO.

Vous pouvez modifier le niveau ou le titre d'une fonction ou sous-fonction spécifique à partir de l'assistant de modification. Pour ouvrir cet assistant, placez le curseur à l’intérieur d'une fonction ou sous-fonction, faites un clic droit et sélectionnez Actions sur fonction et sous-fonction > Modifier.

Avertissement : Il est recommandé d'utiliser l'assistant pour créer les fonctions et sous-fonctions ou changer leur niveau. En effet, l'assistant réorganise automatiquement les étiquettes de fin (Fffnn-FN) des fonctions ou sous-fonctions existantes concernées par la mise à jour. Toute mise à jour manuelle implique une réorganisation manuelle de ces étiquettes.
Les actions de création et de modification sont aussi disponibles depuis le menu contextuel de la vue Structure du code généré. Cette vue vous permet de plus de déplacer, copier-coller et supprimer des fonctions ou sous-fonctions.
Avertissement : Suite à des actions de copier-coller, la condition d'exécution affichée sous forme de commentaire (*.BL par exemple) sur la ligne de titre de la fonction ou sous-fonction dans l'éditeur COBOL PDP peut ne plus correspondre à la condition réelle d'exécution.

Déphasage entre le design et le code généré

Lorsque le design de l’instance générée est modifié, il peut y avoir un déphasage entre le design et le code généré. Dans ce cas, l’icône Déphasage entre design et code généré apparaît, suivie d’un caractère spécial dans le titre de l’onglet de l’éditeur PDP. Le caractère spécial par défaut est > mais vous pouvez le modifier en sélectionnant Fenêtre > Préférences > Programmation pilotée par pattern > Infrastructure PDP > Caractère à utiliser pour mieux visualiser le besoin de regénération dans l’éditeur PDP. Ces signaux vous préviennent qu'une nouvelle génération est requise. Vous pouvez regénérer globalement tous les fichiers déphasés par rapport au design depuis la vue Gestionnaire de génération.
Remarque : Tout déphasage est également signalé dans la vue Design de l’instance. Le bouton permettant la génération se colorise alors (Générer est recommandé suite à des modifications dans le design) pour signifier que Générer est recommandé suite à des modifications dans le design. Une fois la génération effectuée, le déphasage disparaît et le bouton reprend son aspect initial.

Spécificités de l’affichage dans l’éditeur COBOL PDP

La coloration PDP, en plus de celle de l'éditeur COBOL standard, vous permet de connaître l'origine des lignes. Par défaut, les lignes provenant des Macros sont kaki (facette Pacbase) et les lignes de code généré provenant du design sont grises. Les lignes de déclaration des micro-patterns sont roses et les lignes générées à partir de la déclaration des micro-patterns sont bleues. De plus, les étiquettes de début et de fin des fonctions et sous-fonctions Pacbase dans le code spécifique et le code provenant des Macros ont par défaut une couleur particulière et sont en gras.

Vous pouvez changer ces couleurs PDP par défaut en sélectionnant Fenêtre > Préférences > Programmation pilotée par pattern > Patterns Pacbase.

Gestion des avertissements

Les symboles d'avertissement suivants, affichés dans la marge et dans la vue Erreurs, sont en lien avec Rational Programming Patterns :
  • information est affiché à l'endroit où des lignes de code ont été effacées ou écrasées. Si vous positionnez votre souris sur ce symbole, vous pouvez voir les lignes effacées ou les lignes écrasées par les lignes courantes.
  • avertissement est affiché dans les cas suivants :
    • Sur les lignes où la réconciliation (synchronisation) détecte un problème éventuel. La réconciliation est le processus qui intègre, après une génération, le nouveau design d'une instance avec les changements spécifiques utilisateur. Un avertissement est affiché, par exemple, si la réconciliation n'est pas sûre de l'endroit où le code spécifique doit être placé car plusieurs endroits sont possibles, ou si le code généré écrasé a été modifié. Ces avertissements ont un type PDP Reconciliation Marker dans la vue Erreurs.

      Dans la facette Pacbase, des correctifs rapides sont disponibles pour les avertissements de réconciliation qui indiquent que les modifications de l'utilisateur ne peuvent pas être reconduites dans le code réconcilié car la position n'existe plus.

    • Sur les lignes où une différence entre la génération Pacbase et la génération locale est détectée (facette Pacbase). Pour des explications sur la gestion des avertissements de migration Rational Programming Patterns, référez-vous à Gestion des avertissements dans la vue Erreurs ou l'éditeur COBOL PDP et Gestion des avertissements dans la vue Gestionnaire de validation.
    • Sur les lignes où un micro-pattern a positionné un avertissement.
    • Sur l'étiquette PROCEDURE DIVISION en cas d'écrasement de lignes de Macros dans la PROCEDURE DIVISION, ou sur la ligne de début du COBOL en cas d'écrasement de lignes de Macros hors de la PROCEDURE DIVISION. Des lignes de Macros sont écrasées si elles sont présentes dans deux Macros différentes ou si une Macro est appelée plusieurs fois au même emplacement.
    • Sur l'étiquette PROCEDURE DIVISION d'un Serveur si l'emplacement d'une sous-fonction après une fusion de Macros semble anormale. L'avertissement vous demande de vérifier l'emplacement de la sous-fonction.
  • Correctif rapide pour les avertissements de réconciliation et de migration est affiché, en plus du symbole d'avertissement avertissement, pour les avertissements de migration et les avertissements de réconciliation indiquant que le code de l'utilisateur ne peut pas être reconduit dans le code réconcilié car la position n'existe plus. Ce symbole indique que des correctifs rapides sont disponibles dans la vue Erreurs et dans l'éditeur COBOL PDP. Pour les afficher, cliquez sur le symbole. Vous pouvez aussi les afficher en faisant un clic droit sur une des lignes portant l'avertissement et en sélectionnant Correctif rapide, ou en cliquant sur une de ces lignes et en sélectionnant Editer > Correctif rapide.
    Les correctifs rapides suivants sont disponibles pour les avertissements de réconciliation relatifs au code de l'utilisateur :
    • Laisser le code en l'état (supprimer le problème)
    • Laisser le code de l'utilisateur et son contexte à cette position
    • Insérer le code spécifique à cette position
    Par exemple, si vous avez remplacé l'appel d'une Macro par une autre Macro, des avertissements de réconciliation peuvent apparaître si la Macro initiale contenait des lignes de code spécifique. Les correctifs rapides vous permettent alors d'effectuer les actions suivantes :
    • Insérer uniquement les lignes de code spécifique de la Macro initiale là où elles était initialement insérées.
    • Insérer les lignes de code spécifique de la Macro initiale avec leur contexte pour conserver la cohérence du code COBOL.
    • Laisser le code tel quel. Les lignes de code spécifique de la Macro initiale sont supprimées.

    Dans certains cas, vous devez réinsérer manuellement les blocs de code spécifique au bon endroit.

    Ce cas se produit lorsque les étiquettes de la Macro ont été modifiées (code de la sous-fonction ou numéro de ligne). La vue Erreurs affiche alors un avertissement par bloc de code spécifique mal placé.

    Pour corriger le problème, procédez de la façon suivante :
    • Placez votre curseur sur l'avertissement. Pour cela, double-cliquez sur l'avertissement dans la vue Erreurs. Vous pouvez aussi accéder à l'avertissement directement dans l'éditeur de COBOL PDP. Dans les deux cas, le symbole de l'avertissement est décoré par le symbole du correctif rapide Correctif rapide pour les avertissements de réconciliation et de migration.
    • Cliquez sur l'avertissement. La liste des correctifs rapides s'affiche. Double-cliquez sur Insérer le code spécifique à cette position. Le bloc de lignes de code spécifique concerné est inséré.
    • Coupez et collez les lignes pour les replacer au bon endroit. Dans la vue Erreurs, le numéro de ligne de l'avertissement traité est modifié.
    • Cliquez sur l'avertissement et double-cliquez sur le correctif Laisser le code en l’état (Supprimer le problème). L'avertissement disparaît alors.
    Vous devez procéder ainsi pour tous les avertissements de ce type.

Si du code spécifique doit être scindé en plusieurs morceaux et inséré à plusieurs endroits dans le code généré, vous devez résoudre le problème manuellement. Sélectionnez le correctif Laisser le code en l’état (Supprimer le problème) puis déplacez manuellement les blocs de code spécifique aux endroits voulus.

Vous pouvez modifier l'affichage de l'éditeur PDP avec des filtres depuis la vue Structure du Code Généré.


Vos commentaires