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 noeuds 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 la notion de 99BL positionnée 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.

L’éditeur PDP inclut de nombreuses fonctions. Vous pouvez, par exemple, couper, copier, coller, filtrer les lignes, déboguer, comparer, afficher l’aide à la saisie en appuyant sur les touches Ctrl et espace.
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éristique (*) 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.

Insertion de fonctions ou sous-fonctions

Cette insertion est disponible uniquement dans la facette Pacbase.

Vous pouvez insérer des fonctions ou sous-fonctions dans la PROCEDURE DIVISION à partir d’un assistant de création. Pour l’ouvrir, faites un clic droit dans l’éditeur et sélectionnez Créer une fonction ou sous-fonction. 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 :
  • Un titre pour une fonction ou un commentaire pour une 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,
  • Des informations variables selon l’insertion :
    • Pour une insertion en mode absolu : 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.
    • Pour une insertion en mode relatif : le placement par rapport aux fonctions automatiques. Les indications *@BEFORE, *@AFTER ou *@REPLACE s’affichent au début de l’insertion, suivies de la catégorie, du Segment ou de la Rubrique par rapport auxquels l’insertion s’effectue. Pour une insertion dans la fonction F80, l’accès personnalisé est indiqué.

Vous pouvez modifier le niveau d’une sous-fonction spécifique depuis l’assistant de création d’une sous-fonction. Pour ce faire, placez le curseur à l’intérieur de cette sous-fonction, faites un clic droit et sélectionnez Changer le niveau d’une sous-fonction. Cette action est aussi disponible depuis la vue Structure du code généré.

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.

Vous pouvez déplacer, copier-coller ou supprimer des fonctions ou sous-fonctions depuis le menu contextuel de la vue Structure du code généré.

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, les lignes de code généré provenant du design sont grises et celles provenant de l'insertion de 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.

Deux symboles en lien avec Rational Programming Patterns peuvent être affichés dans la marge :
  • 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é.

      Dans la vue Erreurs, ces avertissements sont de type PDP Reconciliation Marker. Vous pouvez les gérer en faisant un clic droit dessus dans la vue Erreurs et en sélectionnant Correctif rapide.

      Par exemple, dans la facette Pacbase, 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.
    • 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 de ces avertissements, consultez la section Validation de la migration.
    • 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.

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


Vos commentaires