Une question ? Appelez nous +33 1 41 32 53 60

L’ABAP pour SAP S/4 HANA

Partager
Partager sur facebook
Partager sur twitter
Partager sur linkedin

Introduction

Le développement ABAP pour SAP HANA fait référence à tous les développements qui exploitent la puissance de SAP HANA au sein des applications basées sur l’ABAP.  

Dans ce contexte, la plateforme SAP HANA est la base de données principale sous-jacente à la plateforme ABAP. Cette option de déploiement de système est prise en charge avec AS ABAP 7.4 et les versions ultérieures. 

L’introduction de la plateforme SAP HANA dans l’univers ABAP a apporté un changement dans le paradigme de la programmation d’application. La règle générale ici est assez simple: 

« Faire tout ce qu’on peut dans la base de données pour obtenir les meilleures performances, mais en même temps, éviter une charge inutile pour elle-même. » 

Le paradigme de programmation d’application classique, data-to-code, où une énorme quantité de données sont extraites de la base de données, stockées dans des tables internes puis traitées sur le serveur d’application, passe à la base de données en mémoire paradigme de programmation code-to-data (code pushdown), où les calculs gourmands en données sont délégués à la base de données et seuls les jeux de résultats sont renvoyés au serveur d’application. Cela réduit à la fois la consommation de mémoire et la charge de travail sur le serveur d’applications, ainsi que la charge du réseau. 

En tant que développeur, il est important de comprendre les règles d’or classiques de la programmation SQL qui sont toujours valables pour SAP HANA. Cependant, il y a un changement dans la priorité de ces règles. 

L’illustration ci-dessous fournit un aperçu compact de ces règles et de la manière dont leurs priorités changent lors de la programmation au-dessus de la plate-forme SAP HANA. 

règles-d’or-programmation-SQL

Code ‘pushdown’ géré par ABAP

Qu’est-ce qu’un code pushdown?

L’une des principales différences pour le développement ABAP d’applications pour HANA est que vous pouvez pousser vers le bas des calculs vers la couche de base de données HANA au lieu d’amener toutes les données vers la couche ABAP et de traiter les données pour effectuer des calculs. C’est ce qu’on appelle le paradigme Code-to-Data dans le contexte du développement d’applications ABAP optimisées pour HANA. 

ABAP for HANA and “Code Push-Down”

Diverses techniques de programmation de code ‘pushdown’, avec différents niveaux d’utilisation des capacités natives avancées de SAP HANA, sont disponibles dans la plate-forme ABAP. 

SAP recommande :  

  • Aide à la recherche améliorée (aide F4) 
  • Visualiseur de liste SAP avec accès aux données intégré (ALV avec IDA) 
  • Open SQL 
  • Services de données de base ABAP (ABAP Core Data Services : CDS) 
  • Procédures de base de données gérées ABAP (ABAP Managed Database Procedures AMDP) 
  • Fonctions de table ABAP CDS 

Aide à la recherche améliorée (aide F4) :

Avec ABAP 7.4 et les versions ultérieures, la fonctionnalité d’un objet d’aide à la recherche (Aide F4) a été améliorée avec une recherche de texte intégral en option avec saisie anticipée et tolérance aux pannes. 

En sélectionnant simplement l’option améliorée appropriée dans une aide à la recherche, une recherche par saisie anticipée de type Google peut être activée. Également appelée recherche au fur et à mesure de la frappe, cette fonction offre une interaction utilisateur plus rapide en affichant les résultats de recherche possibles à partir de l’aide F4 standard lors de la saisie des entrées.  

De plus, une option de recherche floue en texte intégral peut être activée. Cette fonction est spécifique à SAP HANA et offre une recherche dans les colonnes à tolérance de pannes. Aucune modification n’est requise du côté de l’interface utilisateur. 

Visualiseur de liste SAP avec accès aux données intégré (ALV avec IDA) : 

ALV avec IDA offre une variante optimisée en mémoire du composant de réutilisation ALV bien connu. Avec le nouveau composant, toutes les opérations de l’interface utilisateur centrées sur les données telles que le tri, le regroupement ou l’agrégation sont déléguées à la base de données et donc toujours traitées sur l’ensemble de données complet. Les contraintes telles que les autorisations et les plages de valeurs sont déclarées et évaluées directement sur la base de données, et la pagination de la base de données est utilisée sur SAP HANA afin que seules les données visibles soient extraites de la base de données. 

Un cas d’utilisation de base typique consiste à améliorer les performances d’une application basée sur ALV existante qui fonctionnait avec une énorme quantité de données. Avec l’ALV classique, les développeurs doivent par exemple spécifier un paramètre de troncature pour limiter la quantité de données extraites de la base de données et stockées dans des tables internes. Cela signifie que les opérations centrées sur les données n’ont été effectuées que sur les données extraites qui peuvent ne pas être l’ensemble de résultats. 

Open SQL  

Open SQL est la première couche d’abstraction de la plateforme ABAP. Il définit une syntaxe et une sémantique communes utilisées pour accéder à tous les systèmes de bases de données relationnelles pris en charge par SAP. Ainsi, permettre aux développeurs ABAP de travailler de manière indépendante de la base de données – à moins d’utiliser explicitement des fonctionnalités spécifiques à la base de données. 

Le code pushdown dans ABAP commence par Open SQL, car il s’agit de la technique la plus connue de toutes et est utilisée majoritairement lorsqu’il s’agit de récupérer des données de la base de données. 

Avec ABAP 7.4 et les versions ultérieures, Open SQL a été fortement amélioré et certaines des limitations existantes étaient supprimées, offrant ainsi une couverture plus large de la norme SQL-92. Un niveau d’expressivité plus élevé dans les instructions Open SQL est désormais possible en utilisant par exemple l’ensemble de fonctions et d’expressions SQL intégrées, de compréhensions de tables et de fonctionnalités de jointures ‘JOIN’ améliorées. 

Services de données de base ABAP (ABAP Core Data Services CDS)  

CDS représente la prochaine génération de définition et d’accès aux données de SAP pour les applications centrées sur les bases de données. Techniquement, CDS utilise et étend SQL pour capturer l’intention commerciale. 

La spécification CDS provient du monde SAP HANA, mais en plus de l’implémentation fournie dans SAP HANA (HANA CDS), une autre est fournie dans la plateforme ABAP (ABAP CDS). 

L’intégration de CDS dans la plate-forme ABAP fournit une nouvelle couche d’abstraction de base de données et une infrastructure de modélisation avancée pour définir des modèles de données sémantiquement riches quels que soient les domaines d’application c’est-à-dire les transactions, la recherche et l’analyse. 

ABAP CDS représente une technologie de base au sein de SAP S/4HANA, où il est utilisé comme modèle de données virtuel (VDM) et dans le nouveau modèle de programmation ABAP pour les applications SAP Fiori. 

Les objets ABAP CDS sont créés dans les outils de développement ABAP basés sur éclipse dans un éditeur basé sur du texte. 

Principaux objectifs et caractéristiques: 

  • Définition de modèles de données sémantiquement riches 
  • Instructions SQL réutilisables 
  • Ensemble riche de fonctions et d’expressions intégrées 
  • Pas de liaison directe dans le langage ABAP (les objets CDS sont consommés dans les    instructions Open SQL) 
  • Aucune programmation dynamique autorisée 
  • Vue du bâtiment sur les vues prises en charge 
  • Associations CDS pour modéliser les relations entre les différentes entités métiers dans le cadre du modèle de données (type de JOIN on-demand au niveau conceptuel) 
  • Définition de métadonnées spécifiques au domaine pour enrichir les modèles de données 
  • Définition du contrôle d’accès déclaratif dans le cadre des modèles de données via les rôles CDS (déclarés une fois et utilisés partout) 
  • Demande de paramétrage 
  • Fonctions de table CDS pour accéder aux fonctionnalités avancées de SAP HANA 
  • Aucun DML autorisé 
  • Liste des lieux d’utilisation disponible 
  • Extensible sans modification 

Procédures de base de données gérées ABAP (ABAP Managed Database Procedures AMDP)  

AMDP fournit un framework basé sur les classes pour créer et appeler des procédures et des fonctions de base de données SAP HANA à partir de l’environnement ABAP, c’est-à-dire des procédures AMDP et des fonctions AMDP. La plateforme ABAP est le seul maître en ce qui concerne la gestion du cycle de vie (création, mise à jour, suppression et transport) de ces entités SAP HANA. 

Les principales caractéristiques des procédures et fonctions AMDP: 

  • Expression de logiques complexes (Si/Sinon) 
  • Implémenté dans SAP HANA SQLScript 
  • Définition des variables locales 
  • Requêtes paramétrées via les paramètres d’entrée 
  • Plusieurs ensembles de résultats en un aller-retour [procédures AMDP uniquement] 
  • Opérations CUD (Create/Update/Delete) prises en charge [procédures AMDP uniquement] 
  • Accès à de puissantes bibliothèques de fonctions et d’applications SAP HANA telles que des algorithmes prédictifs, l’exploration de texte, la géospatiale et la finance. 

Les procédures et fonctions AMDP sont implémentées et déboguées dans les méthodes de classes globales correctement balisées (dites classes AMDP et méthodes AMDP) à l’aide des outils de développement ABAP basés sur éclipse. Ils sont consommés dans le rapport ABAP comme toutes les méthodes ABAP classiques. 

Fonctions de table ABAP CDS : 

Pour faire court: les fonctions de table CDS permettent d’intégrer les fonctions AMDP dans les modèles de données CDS. Ainsi, fournir l’accès aux puissantes capacités SAP HANA directement à partir de CDS. 

Article rédigé par : Yasmine Slim – Consultante Technique SAP