ABAP

ABAP est un langage de programmation propriétaire, faisant partie de l'ensemble logiciel SAP. Il s'agit actuellement du langage utilisé dans la programmation des Web Application Server faisant partie de la plateforme Netweaver pour la réalisation de progiciels.

Sa version ABAP/4 est objet, le chiffre 4 faisant de plus référence à son appartenance à la classe des langages de quatrième génération.

Sommaire

Histoire

L'acronyme ABAP signifiant à l'origine Allgemeiner Berichtsaufbereitungsprozessor (processeur générique pour la préparation de rapport) et a par la suite été anglicisé en Advanced Business Application Programming.

ABAP est l'un des successeurs du COBOL et est apparu dans les années 1980 dans la vague des langages de quatrième génération (4GLs). Il s'agit d'un dérivé du langage permettant de réaliser des sorties de données (appelées rapports) de l'application SAP R/2, sur lequel de nombreuses multinationales avaient bâti leur architecture d'application professionnelle. ABAP a par la suite été maintenu comme langage de référence pour les applications SAP R/3 qui sont apparus en 1992.

À l'origine, ce langage comprenait le concept de Base de données logique qui devait permettre à tout utilisateur de créer lui-même les rapports dont il avait besoin. Il s'est avéré en fait que développer des programmes avec ce langage ne pouvait être fait en pratique que par des professionnels disposant d'une solide expérience.

Le langage a été par la suite étendu pour englober un modèle de données orienté objets (ABAP Objects) à partir de sa version 4.5, pour être finalement intégré comme langage d'un produit plus général appelé NetWeaver. Ce dernier utilise aussi bien ABAP que le java.

C'est un langage interprété.

Composants du langage

Le code source: il est écrit directement dans un composant de SAP appelé SAP Workbench et il sera stocké dans la base d'information de l'outil. Ce langage, de même que java, a besoin d'être compilé pour pouvoir être exécuté. Cependant, à la différence de java, avant chaque utilisation d'un programme, le processeur SAP vérifie qu'il possède la dernière version du programme. Si ce n'est pas le cas, ce dernier est recompilé à la volée.

Le dictionnaire de données (DDIC) : la base de données est masquée pour le programmeur. Il y accède donc au travers de clauses faisant partie du langage lui-même. De même, la gestion du modèle de données est réalisée au travers d'un composant qui créera ou modifiera lui-même les tables de données. Ce dictionnaire de données comprend :

  • Des domaines représentant un concept élémentaire (par exemple un fournisseur, une référence article) ; chaque élément de donnée comprend au minimum un type de donnée et la spécification de son occupation mémoire.
  • Des éléments de données . Chaque élément de donnée est construit à partir d'un domaine et correspond à une utilisation particulière de ce dernier pour stocker une information, ou pour afficher un champ. Chaque élément de donnée comprend quatre descriptions textuelles qui peuvent être traduites (de manière à rendre l'application utilisable par des locuteurs de différentes langues).
  • Des structures et des tables de différents types permettant de stocker des informations, d'utiliser des types composites pour les transferts de données entre programmes et de stocker de l'information dans la base.

Un outil de transport . À chaque modification d'un programme, celui-ci doit être transporté de l'environnement dans lequel il est créé vers un environnement de test puis dans l'environnement de production (chacun de ces environnements dispose de jeux de données distincts, il peut exister plus de trois environnements dans un système d'information donné). Cette opération est réalisée par la mise en œuvre d'un ordre de transport.

ABAP pour quoi faire ?

ABAP jusqu'à l'apparition de NetWeaver était la brique constituante des systèmes SAP R/3. Il permet de réaliser :

  • Des rapports . ABAP a été conçu à l'origine pour cela et comprendre des clauses générant automatiquement des rapports. Un rapport est constitué en général d'un écran de sélection de données et d'une liste affichant le résultant. Les rapports peuvent aussi être générés par un utilisateur avec SAP Business Report ou par un utilisateur simplement averti avec SAP Query.
  • Des transactions . Une transaction est constituée d'une succession d'écrans appelés Dynpro, chaînés entre eux par un programme contenant la logique de la transaction.
  • Des fonctions . Il s'agit de sous-programmes contenant la description d'une fonctionnalité du système. Ces fonctions peuvent être internes et permettre ainsi une plus grande cohérence du système ou permettre la communication avec d'autres systèmes. Si les systèmes externes sont aussi des systèmes SAP R/3 on parlera de fonctions RFC (Remote Function Call) sinon la fonction sera généralement encapsulée et les appels pourront être réalisés à partir d'autres langages, on parlera alors de BAPI. Enfin, il existe d'autres variétés de fonctions et de protocole comme par exemple :
  • tRFC: transactional RFC qui permet de réaliser de véritables transactions entre systèmes ;
  • qRFC: queued RFC qui permet d'assurer la synchronisation d'appels en masse entre deux systèmes ; ce protocole permet ainsi d'assurer la consistance des données dans le module de datawarehouse BW.
  • Des programmes de gestion d'IDOCs. Un Idoc est un document de format unique composé de segments qui, une fois rassemblés et exécutés permettent diverses opérations au sein du système (création de commandes client, de demandes d'achats, gestion de données du personnel…). L'avantage d'un Idoc est, que de par sa composition, il peut provenir de systèmes externes pour être reconstruit dans SAP et inversement.

ABAP a évolué pour intégrer la programmation objets. Tous les concepts de la programmation objets se retrouvent dans ABAP Objects. ABAP Objects constitue une extension du langage ABAP, avec lequel il est totalement compatible : ainsi il est possible qu'un programme comporte à la fois une partie procédurale et une partie orientée objets, car le déroulement procédural du programme peut à tout moment instancier une classe puis appeler les méthodes de l'objet qu'il vient de créer.

Exemples de programmes ABAP

Le grand classique:

 REPORT Z_XX_TRANSACTION.
 *
 * -- Commentaire de ligne
 *
 PARAMETERS p_input(16) TYPE c DEFAULT 'Hello World!'.
 
 *
 *-- Affichage du résultat:
 *
  WRITE: / 'L''entrée était: ', p_input.

Un exemple plus commun avec recherche dans la base de données:

 REPORT Z_XX_TRANSACTION.
 *
 * -- Declaration de données
 *
 TABLES:
  TSTC,                                                 "Tables des transactions
  TSTCT.                                                "Tables de leurs descriptions
 
 * Tables internes pour l'exemple
 DATA : XT_TSTC TYPE TABLE OF TSTC,
        XE_TSTC TYPE TSTC,
        XT_TSTCT TYPE TABLE OF TSTCT,
        XE_TSTCT TYPE TSTCT.
 *
 " -- Début de la déclaration de l'écran de sélection
 SELECT-OPTIONS S_TCODE FOR TSTC-TCODE OBLIGATORY.
 *
 *
 *------------------
 START-OF-SELECTION.  " -- Début de l'extraction des données
 *------------------
  CLEAR: XT_TSTC,
         XT_TSTCT.
  SELECT * FROM TSTC INTO TABLE XT_TSTC
    WHERE TCODE IN S_TCODE.
  IF sy-subrc EQ 0.                                      " Si la sélection s'est bien passée
    SORT XT_TSTC BY TCODE.                               " On trie la table par nom de transaction (facultatif)
  ENDIF.
 *
  SELECT * FROM TSTCT INTO TABLE XT_TSTCT
    WHERE TCODE IN S_TCODE
    AND   SPRSL = SY-LANGU.
  IF sy-subrc EQ 0.
    SORT XT_TSTCT BY TCODE.                              " On trie la table par nom de transaction
                                                         " (obligatoire pour lecture dichotomique plus bas)
  ENDIF.
 *
 *
 *------------
 TOP-OF-PAGE.
 *------------
  "    -- Haut de page (sur chaque page)
  WRITE / 'Programme exemple: liste de transactions '.
  SKIP.                                                  "Saut de ligne
  ULINE.                                                 "Ligne continue horizontal
 *
 *                                                
 *------------
 END-OF-PAGE.
 *------------
  "    -- Bas de page (sur chaque page)
  ULINE.
 *
 *
 *-----------------
 END-OF-SELECTION.  "Traitement des données après sélection
 *-----------------
  LOOP AT XT_TSTC INTO XE_TSTC.                          "Boucle sur les transactions
    " Recherche de la description
    READ TABLE XT_TSTCT INTO XE_TSTCT
                    WITH KEY TCODE = XE_TSTC-TCODE
                             BINARY SEARCH.              "Lecture dichotomique ⇒ meilleur performance
    IF SY-SUBRC NE 0. " Erreur
      WRITE : /  "Saut de ligne
              SY-VLINE,                                  "Barre verticale
              XE_TSTC-TCODE, SY-VLINE,                   "Code puis barre
              (25) '-- Pas de description --',            "Largeur du texte spécifiée
              SY-VLINE.                                  "Barre verticale
    ELSE.
      WRITE : /                                          "Saut de ligne
              SY-VLINE,                                  "Barre verticale
              XE_TSTC-TCODE, SY-VLINE,                   "Code puis barre
              (25) XE_TSTCT-TTEXT,                       "Description sur 25 caractères
              SY-VLINE.                                  "Barre verticale
    ENDIF.
  ENDLOOP.

Ce qui donne pour l'écran de selection :

Ecran selection exampl ABAP.PNG


Et pour le résultat :

Resultat example ABAP.PNG

Liens externes

  • SAP-Integration Une communauté française d'aide à SAP et au langage ABAP contenant des tutoriaux
  • Interface PHP / SAPRFC Permet d'interfacer des applications web / PHP à SAP et d'y executer des BAPI, Modules fonctions executables à distance
  • Sapdev Blog de trucs et astuces en ABAP
  • sapetabap La base de connaissance dédiée à l'ABAP en français

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article ABAP de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • ABAP — Paradigmen: 4GL (Fourth Generation Language) Entwickler: SAP AG Aktuelle Version: 7.1[1]  (2007) Einflüsse …   Deutsch Wikipedia

  • Abap — Paradigmen: 4GL Sprache Entwickler: SAP AG Aktuelle Version: 7.1[1]  (2007) …   Deutsch Wikipedia

  • ABAP — (Advanced Business Application Programming) es un lenguaje de cuarta generación, propiedad de SAP, que se utiliza para programar la mayoría de sus productos (R/3, mySAP Business suite...). Utiliza sentencias de Open SQL para conectarse con… …   Wikipedia Español

  • ABAP —   [Abk. für Advanced Business Application Programming], die Programmiersprache von SAP zur Programmierung der betriebswirtschaftlichen Software R/3 von SAP. Die Sprache …   Universal-Lexikon

  • ABAP — (Advanced Business Application Programming) es un lenguaje de cuarta generación, propietario de SAP, que se utiliza para programar dentro de R/3. Utiliza sentencias de Open SQL para conectarse con prácticamente cualquier base de datos. Cuenta con …   Enciclopedia Universal

  • ABAP — UK US noun [U] IT ► ABBREVIATION for Advanced Business Application Programming: a computer language used for writing programs used in business …   Financial and business terms

  • ABAP — Infobox programming language name = ABAP/4 logo = paradigm = Object oriented, structured, imperative year = 1980s designer = SAP AG typing = Static, strong, safe, nominative implementations = SAP R/2,SAP R/3 dialects = influenced by = Objective C …   Wikipedia

  • ABAP — Associacao Brasileira das Agencias de Propaganda brasilianische Dachgesellschaft nationaler Marketinggesellschaften, Rio de Janeiro http://www.abap rio.com.br/ …   Acronyms

  • ABAP — Associacao Brasileira das Agencias de Propaganda brasilianische Dachgesellschaft nationaler Marketinggesellschaften, Rio de Janeiro (http://www.abap rio.com.br/) …   Acronyms von A bis Z

  • ABAP — …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”