Introduction
Le développement SAP en 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 le langage ABAP.
Dans ce contexte, la plateforme SAP HANA est la base de données principale sous-jacente à la plateforme SAP 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 SAP 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 au paradigme de programmation en base de données en mémoire 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.
Dans une logique de développement ABAP moderne, cette approche constitue aujourd’hui une bonne pratique incontournable pour optimiser les performances des applications critiques.
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.
Code ‘pushdown’ géré par ABAP
Qu’est-ce qu’un code pushdown ?
L’une des principales différences pour le développement d’applications en ABAP 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 optimisées pour HANA.
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.
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 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 SAP ABAP commence par Open SQL, car il s’agit de la technique la plus connue et majoritairement utilisée 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 ont été supprimées, offrant ainsi une couverture plus large de la norme SQL-92.
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 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 : transactions, recherche et analyse.
ABAP CDS représente une technologie de base au sein de SAP S/4HANA, notamment dans les projets ABAP S4 HANA, 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 Eclipse dans un éditeur texte.
Procédures de base de données gérées ABAP (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.
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émentation dans SAP HANA SQLScript
- Définition des variables locales
- Requêtes paramétrées via les paramètres d’entrée
- Opérations CUD (Create/Update/Delete) prises en charge
- Accès à des bibliothèques avancées SAP HANA (algorithmes prédictifs, text mining, géospatial, finance)
Les procédures et fonctions AMDP sont implémentées et déboguées dans des méthodes de classes globales à l’aide des outils de développement basés sur Eclipse. Elles sont ensuite consommées dans les rapports 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, elles offrent un accès direct aux puissantes capacités SAP HANA depuis la couche de modélisation.
Dans un contexte moderne de développement SAP, ces mécanismes constituent un levier stratégique pour optimiser les performances, améliorer la scalabilité et tirer pleinement parti des architectures SAP S/4HANA.

