Analyse et test du code
Utilisation correcte des types de données et des conversions de types
Traitement des zones de caractères
Utilisation du Pushdown de code dans ABAP SQL
Amélioration de la performance des tables internes
Implémentation des contrôles des autorisations
Conception d'un code orienté objet efficace
Définition et utilisation des classes d'exception
Ajout de documentation au code ABAP

Documentation du code ABAP

Objective

After completing this lesson, you will be able to code ABAP du document.

Documentation de code ABAP

Si vous placez le curseur sur le nom d'une classe, d'une méthode ou d'un type et que vous appuyez sur F2, une boîte de dialogue contenant les informations sur l'élément correspondant s'affiche.

Vous pouvez ajouter de la documentation à ce dialogue à l'aide d'ABAP Doc. Vous créez cette documentation en ajoutant des lignes de commentaire spéciales à votre code. Avec ABAP Doc, vous pouvez documenter les instructions déclaratives suivantes :

  • CLASS
  • INTERFACE
  • METHODS
  • TYPES
  • DATA
  • CONSTANTS

Vous pouvez également documenter les paramètres individuels et les exceptions des méthodes et des modules fonction.

Les commentaires ABAP Doc se trouvent devant l'élément qu'ils documentent. Ils commencent par les caractères "!. Si vous essayez de créer ABAP Doc à une position non autorisée dans la classe, le système affiche un avertissement de syntaxe et la documentation est ignorée.

Les commentaires ABAP Doc ne peuvent pas être traduits. Vous devez donc réfléchir attentivement à la langue dans laquelle vous souhaitez créer votre documentation.

Vos commentaires ABAP Doc font partie de la documentation des éléments.

ABAP Doc utilise un sous-ensemble de balises HTML pour vous permettre de formater votre documentation. L'exemple utilise la balise <strong> pour mettre l'accent et une balise <br> pour un saut de ligne. (Notez que sans la balise de renvoi à la ligne, les deux lignes d'ABAP Doc sont affichées l'une à côté de l'autre).

Outre un texte et un saut de ligne fortement accentués, vous pouvez utiliser les balises suivantes :

Balises de format supplémentaires dans ABAP Doc

ObjectifMise en forme des balises
En-tête, niveau 1<h1>...</h1>
En-tête, niveau 2<h2>...</h2>
En-tête, niveau 3<h3>...</h3>
Texte mis en évidence<em>...</em>
Paragraphe<p>...</p>
Liste non triée<ul><li>...</li>...<li>...</li></ul>
Liste triée<ol><li>...</li>...<li>...</li></ol>

Astuce

Dans un commentaire ABAP Doc, vous pouvez utiliser la saisie semi-automatique du code source (Ctrl + Espace) pour insérer des balises de mise en forme.

Avec ABAP Doc, vous pouvez documenter à la fois une méthode et ses paramètres individuels. Pour documenter la méthode, utilisez les commentaires "! normaux. Pour documenter un paramètre, utilisez la notation "! @parameter <name> | et ajoutez votre commentaire après la barre verticale (|).

Vous pouvez ajouter ABAP Doc pour une méthode et sa signature à l'aide d'un quickfix. Une fois que vous avez déclaré la méthode, appuyez sur Ctrl + 1 pour ouvrir les solutions rapides possibles et sélectionnez Ajouter ABAP Doc. L'éditeur génère ensuite la documentation correspondante.

Si la signature d'une méthode change, vous pouvez utiliser des correctifs rapides pour supprimer les commentaires ABAP Doc des paramètres supprimés et pour ajouter des commentaires ABAP Doc pour de nouveaux paramètres.

Vous pouvez vous assurer qu'une description ABAP Doc d'un objet est répliquée dans la description dans les propriétés de l'objet et dans la liste d'objets. Pour ce faire, utilisez une balise de paragraphe <p> avec l'option class="shorttext synchronized".

Les modifications que vous apportez à la description dans les propriétés d'objet sont répliquées dans le commentaire ABAP Doc.

Vous pouvez ajouter des liens de navigation à la documentation d'autres objets.

En plus de créer un lien vers un objet entier, vous pouvez également le lier à ses éléments individuels. Dans notre exemple, il existe un lien vers la méthode GET_AIRPORTS. - Le lien "! {@link zif_1_abap_doc_constants.DATA:auth_create} définit un lien vers la documentation de la constante auth_create dans l'interface ZIF_1_ABAP_DOC_CONSTANTS.

Utilisez les ID suivants pour les éléments individuels :

DATA
pour les constantes, les variables et les paramètres de procédure dans le contexte approprié
DOMA
pour les domaines dans le Dictionnaire ABAP
INTF
pour les interfaces implémentées dans une classe (utilisées pour accéder aux composants d'interface).
METH
pour les méthodes

Comment utiliser le code ABAP Doc to Document

Regardez cette vidéo pour savoir comment utiliser le code ABAP Doc to Document.

Ajouter documentation au code ABAP

Dans cet exercice, vous allez ajouter de la documentation à votre codage pour faciliter son utilisation.

Modèle :

  • /LRN/CL_S4D401_EXS_CLASS (classe globale)

Solution :

  • /LRN/CL_S4D401_DCS_ABAP_DOC (classe globale)

Tâche 1: Copier modèle (facultatif)

Copiez la classe de modèle /LRN/CL_S4D401_EXS_CLASS. Si vous avez terminé l'exercice précédent, vous pouvez ignorer cette tâche et continuer à modifier votre classe ZCL_##_SOLUTION.

Étapes

  1. Copiez la classe /LRN/CL_S4D401_EXS_CLASS dans une classe de votre propre package (nom proposé : ZCL_##_SOLUTION, ## correspondant à votre numéro de groupe).

    1. Dans l'explorateur de projets, cliquez avec le bouton droit de la souris sur la classe /LRN/CL_S4D401_EXS_CLASS pour ouvrir le menu contextuel.

    2. Dans le menu contextuel, sélectionnez Dupliquer....

    3. Saisissez le nom de votre package dans la zone Package. Dans la zone Nom, saisissez ZCL_##_SOLUTION, où ## représente votre numéro de groupe.

    4. Cliquez sur Next.

    5. Confirmez l'ordre de transport et cliquez sur Terminer.

  2. Activez la copie.

    1. Appuyez sur Ctrl + F3 pour activer la classe.

Tâche 2: Ajouter documentation

Ajoutez la documentation ABAP Doc à la classe locale LCL_CARRIER et à la méthode Factory GET_INSTANCE.

Textes de documentation suggérés

TypeÉlément de codeDocumentation
Classe localeLCL_CARRIER

Compagnie aérienne - Une logique d'usine garantit qu'il ne peut y avoir qu'une seule instance pour chaque ID de transporteur.

MéthodeGET_INSTANCE

Méthode Factory - retourne une instance de cette classe.

Paramètrei_carrier_id

Identification à trois caractères du transporteur.

Paramètrer_resultRéférence à l'instance - initial si l'instanciation a échoué.
ExceptionZCX_##_ÉCHECÉchec de l'instanciation - Analysez le texte d'exception pour plus de détails.

Étapes

  1. Utilisez un correctif rapide pour ajouter la documentation ABAP Doc à la classe locale LCL_CARRIER.

    1. Dans votre classe globale, naviguez jusqu'à la définition de la classe locale LCL_CARRIER.

    2. Dans l'instruction CLASS … DEFINITION, placez le curseur sur lcl_carrier et appuyez sur Ctrl + 1 pour appeler les solutions rapides disponibles.

    3. Dans la liste des solutions rapides disponibles, sélectionnez Ajouter ABAP Doc.

      Résultat

      Le correctif rapide ajuste le code comme suit :
      ABAP
      12
      "! CLASS lcl_carrier DEFINITION CREATE PRIVATE.
  2. Gérez la documentation avec le texte de la table.

    Astuce

    Lorsque vous appuyez sur Entrée, l'éditeur insère une nouvelle ligne qui commence par "!.
    1. Adaptez le code comme suit :

      ABAP
      123
      "! Flight Carrier - "! A factory logic ensures that there can only be one instance for each carrier ID. CLASS lcl_carrier DEFINITION CREATE PRIVATE.
  3. Affichez les informations d'élément ABAP pour la classe locale LCL_CARRIER pour afficher l'édition.

    1. Dans l'instruction CLASS … DEFINITION, placez le curseur sur lcl_carrier et appuyez sur F2 pour afficher les informations de l'élément.

    2. Le texte ABAP Doc est affiché sous l'intitulé Documentation.

  4. Utilisez un quickfix pour ajouter la documentation ABAP Doc à la méthode statique GET_INSTANCE de la classe locale LCL_CARRIER.

    1. Dans la classe LCL_CARRIER, naviguez jusqu'à la définition de la méthode GET_INSTANCE.

    2. Dans l'instruction CLASS-METHODS, placez le curseur sur get_instance et appuyez sur Ctrl + 1 pour appeler les solutions rapides disponibles.

    3. Dans la liste des solutions rapides disponibles, sélectionnez Ajouter ABAP Doc.

      Résultat

      Le correctif rapide ajuste le code comme suit :
      ABAP
      12345
      "! "! @parameter i_carrier_id | "! @parameter r_result | "! @raising zcx_##_failed | CLASS-METHODS get_instance
  5. Gérez la documentation de la méthode avec le texte de la table.

    1. Adaptez le code comme suit :

      ABAP
      12345
      "! Factory method - returns an instance of this class. "! @parameter i_carrier_id | "! @parameter r_result | "! @raising zcx_##_failed | CLASS-METHODS get_instance
  6. Gérez la documentation pour les paramètres de méthode et pour l'exception avec les textes de la table.

    1. Adaptez le code comme suit :

      ABAP
      12345
      "! Factory method - returns an instance of this class. "! @parameter i_carrier_id | Three-character identification of the carrier. "! @parameter r_result | Reference to the instance - initial if instantiation failed. "! @raising zcx_##_failed | Instantiation failed - evaluate the exception text for details. CLASS-METHODS get_instance
  7. Affichez les informations d'élément ABAP pour la méthode GET_INSTANCE de la classe locale LCL_CARRIER pour afficher l'édition.

    1. Dans l'instruction CLASS-METHODS, placez le curseur sur get_instance et appuyez sur F2 pour afficher les informations sur l'élément.

    2. Les textes ABAP Doc sont affichés sous l'intitulé Documentation.

Tâche 3: Ajouter documentation formatée

Ajoutez la documentation ABAP Doc formatée pour la méthode FIND_PASSENGER_FLIGHT de la classe locale LCL_CARRIER. Le cas échéant, ajoutez une documentation ABAP Doc similaire pour la méthode FIND_CARGO_FLIGHT.

Textes de documentation suggérés

TypeÉlément de codeDocumentation
MéthodeFIND_PASSENGER_FLIGHT

Recherchez un vol de passagers entre deux aéroports qui

  • est postérieur ou égal à une date donnée et
  • a un nombre minimum de places disponibles restant
Paramètrei_airport_from_id

Aéroport de départ

Paramètrei_airport_to_idAéroport d'arrivée
Paramètrei_from_datePremière date de vol possible
Paramètrei_placesNombre minimum de places disponibles
Paramètree_flightVol trouvé (référence objet)
Paramètree_days_laterNombre de jours après la date demandée

Étapes

  1. Utilisez un quickfix pour ajouter la documentation ABAP Doc à la méthode FIND_PASSENGER_FLIGHT de la classe locale LCL_CARRIER.

    1. Dans la classe LCL_CARRIER, naviguez jusqu'à la définition de la méthode FIND_PASSENGER_FLIGHT.

    2. Dans l'instruction METHODS, placez le curseur sur find_passenger_flight et appuyez sur Ctrl + 1 pour appeler les solutions rapides disponibles.

    3. Dans la liste des solutions rapides disponibles, sélectionnez Ajouter ABAP Doc.

      Résultat

      Le correctif rapide ajuste le code comme suit :
      ABAP
      12345678
      "! "! @parameter i_airport_from_id | "! @parameter i_airport_to_id | "! @parameter i_from_date | "! @parameter i_seats | "! @parameter e_flight | "! @parameter e_days_later | METHODS find_passenger_flight
  2. Gérez la documentation de la méthode avec le texte de la table. Assurez-vous de formater le vol de passagers comme texte fortement mis en évidence et d’utiliser une liste non triée pour les propriétés de vol.

    Astuce

    Vous n'avez pas à vous souvenir des directives de format par cœur. Appuyez sur Ctrl + Espace pour insérer une directive de format dans la saisie semi-automatique du code source.
    1. Adaptez le code comme suit :

      ABAP
      123456789101112
      "! Search for a <strong>passenger flight</strong> between two airports that "! <ul> "! <li>lies on or after a given date and</li> "! <li>has a minimum number of available seats left</li> "! </ul> "! @parameter i_airport_from_id | "! @parameter i_airport_to_id | "! @parameter i_from_date | "! @parameter i_seats | "! @parameter e_flight | "! @parameter e_days_later | METHODS find_passenger_flight
  3. Gérez la documentation des paramètres de méthode avec les textes de la table. Assurez-vous de mettre en forme Départ et Arrivée comme texte mis en évidence.

    1. Adaptez le code comme suit :

      ABAP
      123456789101112
      "! Search for a <strong>passenger flight</strong> between two airports that "! <ul> "! <li>lies on or after a given date and</li> "! <li>has a minimum number of available seats left</li> "! </ul> "! @parameter i_airport_from_id | <em>Departure</em> airport "! @parameter i_airport_to_id | <em>Arrival</em> airport "! @parameter i_from_date | First possible flight date "! @parameter i_seats | Minimum number of available seats "! @parameter e_flight | Found flight (object reference) "! @parameter e_days_later | Number of days after the requested date METHODS find_passenger_flight
  4. Affichez les informations d'élément ABAP pour la méthode FIND_PASSENGER_FLIGHT de la classe locale LCL_CARRIER pour voir l'édition.

    1. Dans l'instruction METHODS, placez le curseur sur find_passenger_flight et appuyez sur F2 pour afficher les informations sur l'élément.

    2. Les textes ABAP Doc sont affichés sous l'intitulé Documentation.

  5. Facultatif : ajoutez une documentation ABAP Doc formatée similaire pour la méthode FIND_CARGO_FLIGHT.

    Astuce

    Copiez et collez la documentation ABAP Doc pour la méthode FIND_PASSENGER_FLIGHT et adaptez-la à la méthode FIND_CARGO_FLIGHT.
    1. Adaptez le code comme suit :

      ABAP
      123456789101112
      "! Search for a <strong>cargo flight</strong> between two airports that "! <ul> "! <li>lies on or after a given date and</li> "! <li>has a minimum number of available capacity left</li> "! </ul> "! @parameter i_airport_from_id | <em>Departure</em> airport "! @parameter i_airport_to_id | <em>Arrival</em> airport "! @parameter i_from_date | First possible flight date "! @parameter i_cargo | Minimum number of available capacity "! @parameter e_flight | Found flight (object reference) "! @parameter e_days_later | Number of days after the requested date METHODS find_cargo_flight

Tâche 4: Ajouter des liens

Ajoutez la documentation ABAP Doc suivante pour la classe locale LCL_FLIGHT :

Textes de documentation suggérés

TypeÉlément de codeDocumentation
Classe localeLCL_FLIGHT

Surclasse abstraite pour les classes lcl_passager_flight et lcl_cargo_flight

Chaque instance est identifiée de manière unique par les attributs carrier_id, connection_id et flight_date.

Ajoutez des liens à la documentation des sous-classes locales LCL_PASSENGER_FLIGHT et LCL_CARGO_FLIGHT et aux attributs publics carrier_id, connection_id et flight_date.

Étapes

  1. Utilisez un correctif rapide pour ajouter la documentation ABAP Doc à la classe locale LCL_FLIGHT.

    1. Dans votre classe globale, naviguez jusqu'à la définition de la classe locale LCL_FLIGHT.

    2. Dans l'instruction CLASS … DEFINITION, placez le curseur sur lcl_flight et appuyez sur Ctrl + 1 pour appeler les solutions rapides disponibles.

    3. Dans la liste des solutions rapides disponibles, sélectionnez Ajouter ABAP Doc.

      Résultat

      Le correctif rapide ajuste le code comme suit :
      ABAP
      12
      "! CLASS lcl_flight DEFINITION ABSTRACT.
  2. Gérez la documentation avec le texte de la table.

    1. Adaptez le code comme suit :

      ABAP
      12345678
      "! Abstract superclass for classes "! lcl_passenger_flight and "! lcl_cargo_flight "! Every instance is uniquely identified by attributes "! carrier_id, "! connection_id, and "! flight_date. CLASS lcl_flight DEFINITION ABSTRACT.
  3. Ajoutez un saut de ligne après lcl_cargo_flight.

    1. Adaptez le code comme suit :

      ABAP
      12345678
      "! Abstract superclass for classes "! lcl_passenger_flight and "! lcl_cargo_flight <br/> "! Every instance is uniquely identified by attributes "! carrier_id, "! connection_id, and "! flight_date. CLASS lcl_flight DEFINITION ABSTRACT.
  4. Ajoutez un lien vers la documentation de la classe locale LCL_PASSENGER_FLIGHT et un lien vers la documentation de la classe locale LCL_CARGO_FLIGHT.

    Remarque

    Notez que cette documentation ABAP Doc se trouve au niveau de la classe globale et non dans la classe locale LCL_FLIGHT. Cela signifie qu'un signe point au début d'un lien s'adresse à la classe globale. Pour adresser une classe locale dans la même classe globale, vous devez placer un point devant le nom de la classe.
    1. Adaptez le code comme suit :

      ABAP
      12345678
      "! Abstract superclass for classes "! {@link .lcl_passenger_flight} and "! {@link .lcl_cargo_flight} <br/> "! Every instance is uniquely identified by attributes "! carrier_id, "! connection_id, and "! flight_date. CLASS lcl_flight DEFINITION ABSTRACT.
  5. Ajoutez maintenant des liens aux attributs carrier_id, connection_id et flight_date de la classe locale LCL_FLIGHT.

    Remarque

    Si vous voulez référencer un attribut ou un autre objet de données dans un lien, vous devez insérer DATA : immédiatement avant le nom de l'objet.
    1. Adaptez le code comme suit :

      ABAP
      12345678
      "! Abstract superclass for classes "! {@link .lcl_passenger_flight} and "! {@link .lcl_cargo_flight} <br/> "! Every instance is uniquely identified by attributes "! {@link .lcl_flight.DATA:carrier_id}, "! {@link .lcl_flight.DATA:connection_id}, and "! {@link .lcl_flight.DATA:flight_date}. CLASS lcl_flight DEFINITION ABSTRACT.
  6. Affichez les informations d'élément ABAP pour la classe locale LCL_FLIGHT pour afficher l'édition. Cliquez sur les liens pour vérifier qu'ils fonctionnent.

    1. Dans l'instruction CLASS … DEFINITION, placez le curseur sur lcl_flight et appuyez sur F2 pour afficher les informations de l'élément.

    2. Le texte ABAP Doc est affiché sous l'intitulé Documentation.

  7. Enfin, activez votre code.

    1. Appuyez sur Ctrl + F3 pour activer le code.