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.
Remarque : Si vous sélectionnez Source > Formater dans le menu contextuel, les lignes de code ne sont formatées que si vous avez sélectionné un bloc de lignes de code spécifique. Cette action n'est pas opérationnelle si des lignes de code généré sont incluses dans la sélection.
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, l'éditeur COBOL PDP n'apparaît plus déphasé quand il prend le focus. 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 un fichier est généré avec le processus de génération Rational Programming Patterns mis en place à partir de la version 9.6.1, certaines modifications de design ne sont pas considérées comme significatives et ne provoquent pas de désynchronisation. Ceci est le cas, par exemple, pour les modifications des Lignes -GC ou des Mots-Clés.

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'une instance générable (Programme ou Ecran par exemple), 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 les versions de 9.1.2 à 9.6 de Rational Programming Patterns, l'insertion en mode relatif dans l'éditeur COBOL PDP ne pouvait se faire que par l'intermédiaire de la Macro prioritaire associée à l'Ecran ou au Composant Applicatif. Cette Macro était identifiée par le nom de l'instance suivi de SP. A partir de la version 9.6.1, l'insertion en mode relatif s'effectue directement depuis le COBOL des Ecrans et Composants Applicatifs. Les changements induits par la génération 9.6.1 pour les fichiers COBOL générés avant cette version sont expliqués dans Mise à niveau de la génération.
L’assistant de création de fonctions et sous-fonctions 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.
  • Le placement relatif par rapport aux fonctions automatiques du modèle Dialogue ou Composant Applicatif, uniquement dans l'éditeur COBOL PDP. Les annotations *@BEFORE, *@AFTER ou *@REPLACE s’affichent au début de l’insertion, suivies de l'élément par rapport auquel l’insertion s’effectue. Pour une insertion dans la fonction F80, l’accès personnalisé est indiqué.

    Dans les Composants Applicatifs uniquement, l'annotation *@ATTACH s'affiche au début de la PROCEDURE DIVISION quand une fonction est rattachée à un bloc de Vue Logique, ou est rattachée à un bloc de déclaration de curseurs SQL sans positionnement (valeur Aucun dans Type d'action). Toutes les sous-fonctions de cette fonction bénéficient alors de ce rattachement. La fonction indiquée ne génère pas de code dans le COBOL.

Vous pouvez modifier le titre, le niveau ou la condition d'exécution 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.

Remarque : Si vous modifiez la condition d'exécution dans l'assistant de modification de fonctions ou sous-fonctions, une regénération démarre automatiquement dès que vous cliquez sur Terminer. La nouvelle condition d'exécution apparaît alors dans le code. Les éventuelles lignes de condition appartenant à l'ancienne condition d'exécution apparaissent sous forme de lignes de commentaires au début de la nouvelle fonction ou sous-fonction. Vous pouvez les supprimer ou les réutiliser.
Avertissement : Il est recommandé d'utiliser l'assistant pour créer les fonctions et sous-fonctions ou changer leur niveau ou condition d'exécution. 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.

Reportez-vous à Création de fonctions ou sous-fonctions spécifiques pour les explications détaillées sur l'assistant de création de fonctions ou sous-fonctions.

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.
Remarque : La vue Design est obsolète. Elle sera supprimée dans une prochaine version.

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.

La couleur des lignes peut être personnalisée à deux niveaux :
  • Vous pouvez indiquer une couleur par défaut pour les lignes de code affichées dans l’éditeur COBOL PDP et la vue Structure du code généré. Dans l’éditeur COBOL PDP, cette couleur ne s'applique qu'aux lignes générées à partir du design. Dans la vue Structure du code généré, cette couleur s'applique aux nœuds provenant du design et des appels de Macros. Pour changer la couleur par défaut, sélectionnez Fenêtre > Préférences > Général > Apparence > Couleurs et polices > Editeurs PDP COBOL > Couleur du texte du code généré. Cliquez sur Editer. Dans l'assistant de sélection, sélectionnez une autre couleur et cliquez sur OK. Dans la page des préférences, cliquez sur Appliquer puis sur OK. La couleur sélectionnée constitue la couleur de texte par défaut des Paramètres de couleur du code généré dans les préférences des Patterns Pacbase. Elle n'est pas prise en compte dans l’éditeur COBOL PDP si la couleur par défaut des Paramètres de couleur du code généré a été modifiée. Elle est en revanche automatiquement prise en compte dans la vue Structure du code généré. La nouvelle couleur est visible lorsque vous ouvrez des fichiers COBOL avec l’éditeur COBOL PDP. En revanche, vous devez fermer et rouvrir les fichiers COBOL déjà ouverts pour que la nouvelle couleur soit visible.
  • Vous pouvez affecter une couleur à chaque type de ligne de code dans les préférences des Patterns Pacbase. Cette couleur s'applique uniquement à l’éditeur COBOL PDP. Pour accéder à ces préférences, sélectionnez Fenêtre > Préférences > Programmation pilotée par pattern > Patterns Pacbase. Vous pouvez sélectionner une couleur pour le texte de la ligne et une autre couleur pour le fond de la ligne. Cliquez sur un rectangle de couleur. Dans l'assistant de sélection, sélectionnez une autre couleur et cliquez sur OK. Dans la page des préférences, cliquez sur Appliquer puis sur OK. La nouvelle couleur est automatiquement prise en compte lorsque vous ouvrez des fichiers COBOL avec l’éditeur COBOL PDP. En revanche, vous devez fermer et rouvrir les fichiers COBOL déjà ouverts pour que la nouvelle couleur soit prise en compte.

La police de caractères peut aussi être personnalisée en sélectionnant Fenêtre > Préférences > Général > Apparence > Couleurs et polices > Editeurs COBOL PDP > Police de caractères pour les éditeurs COBOL PDP. Pour changer la police, cliquez sur Editer. Dans l'assistant de sélection, sélectionnez une nouvelle police et éventuellement un nouveau style et une nouvelle taille. Puis cliquez sur OK. Dans la page des préférences, cliquez sur Appliquer. La nouvelle police est alors automatiquement prise en compte dans l'éditeur COBOL PDP. Cliquez sur OK pour fermer l'assistant de sélection.

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