CDS Views : définition et présentation

Introduction

Avec l’arrivée de S/4HANA, SAP a introduit un changement, en ce qui concerne le développement des couches de gestion à partir des tables de l’ERP. Il s’agit d’être le plus près possible de la base de données afin d’avoir la meilleure performance.

L’introduction des CDS (Core Data Services) Views est une amélioration par rapport à la couche ABAP (Data Dictionary). Elles permettent de fournir un modèle de données plus poussé et sémantiquement plus riche.

Grâce aux CDS Views on peut exposer, modéliser, lier, agréger, … les données présentes dans la base de données, et ainsi les rendre accessible plus facilement.

Prise en main des CDS Views

Techniquement, le CDS est une collection de langages spécifiques à SAP. Il s’agit d’une extension du SQL et en même temps un langage de définition de données (DDL), de manipulation de données (DML) et de contrôle d’autorisation (DCL). Avec ceci, on va pouvoir créer un modèle virtuel de données appelé VDM (Virtual Data Model).

Il existe trois types de vue :

  • Basic: elles servent à ramener les données directement des tables physiques de la base de données.
  • Composite: ce genre de vue sert à lier des vues basic entre elles grâce à des associations (comme des jointures SQL entre vues). Elles sont ensuite utilisées par les vues consumption.
  • Consumption: ces vues permettent de créer une requête spécifique à partir d’une vue « composite ». C’est le seul type de vue qui peut être exposée au service OData ou transient afin d’être consommée pour le reporting.

Les fonctionnalités ajoutées dans le SQL étendu des CDS sont :

  • Fonctionnalités SQL : calculs, agrégations, UNION, jointures et GROUP BY
  • Associations : permettent de mettre en relation plusieurs tables et/ou vues
  • Annotations : permettent de définir les méta-modèles comme le nommage, les autorisations ABAP, l’extensibilité de la vue
  • Extensibilité : une vue peut être étendue par une application cliente sans la modifier, ce qui la rend réutilisable et flexible
  • Sécurité ABAP : les CDS utilisent les objets d’autorisation et les couches de transport ABAP. De plus, la sécurité peut être définie de manière explicite avec des annotations.

Dans tous les cas, leur développement passe par Eclipse, à travers un plugin. Cet outil s’appelle ADT (ABAP Development Tools)

ABAP Development Tool (ADT)

Il s’agit d’un outil de développement s’appuyant sur Eclipse, ce qui permet d’utiliser la puissance et la flexibilité de cet outil. Il présente les caractéristiques suivantes :

  • On peut se connecter simultanément à plusieurs systèmes ABAP
  • On peut récupérer la session lors d’une déconnexion. Ceci réduit leur impact.
  • On peut développer sur des plateformes ABAP et non-ABAP

L’ADT se présente de cette manière :

Interface ABAP Development Tool
  • Vue exploration Projet : cette vue permet à l’utilisateur d’explorer les différents packages et objets ABAP à partir d’une connexion ABAP
  • Vue arborescence : cette vue affiche la structure de l’objet ouvert dans l’espace d’édition. Il affiche les paramètres, projections, jointures, etc de manière hiérarchique
  • Espace d’édition : fenêtre où on développe la vue
  • Perspectives : il s’agit d’une configuration de vues et d’espaces d’édition. Changer de perspective change la disposition de ces vues et espaces d’édition.
  • Objets : objets ouverts dans l’espace d’édition
  • Barres d’outils
  • Vues : écrans affichant les fonctionnalités de l’outil

Ci-dessous les étapes pour créer un projet ABAP dans Eclipse :

  • Menu Window -> Perspective -> Open Perspective -> Other, changer la perspective pour ABAP Perspective.
  • Créer un nouveau ABAP Project dans File -> New -> ABAP Project
  • Choisir le système sur lequel vous voulez développer et saisir le login et password
Création d'un projet ABAP
Détails de la création d'un projet ABAP

Une fois connectée nous allons pouvoir créer notre première « Vue »

  • Pour créer une vue, faire clic-droit dans l’arborescence, puis New -> New Data Definition
Création d'une vue ABAP
  • Choisir le transport. Le transport dans SAP est l’outil qui permet de transférer les objets d’un environnement à un autre.
Choix du transport SAP
  • Choisir le template de vue que vous souhaitez créer.
Template d'une vue
  • Votre vue est créée

Analyse du DDL d’une vue

Analyse DLL d'une vue

Les CDS Views sont définies dans un DDL source et au moment de l’activation elle génère deux objets :

  • SQL View : il s’agit d’un objet invisible dans le dictionnaire ABAP qui ne peut pas être modifié.
SQL View
  • CDS View
CDS View

La forme de la plus simple de CDS View est la projection, c’est-à-dire une sélection de champs d’une seule table. Le nom d’une vue spécifiée dans @ABAPCatalog.sqlViewName doit être différent du nom de l’entité CDS et leur nom ne peuvent pas dépasser les seize caractères.

Fonctionnalités DDL

Comme présenté antérieurement, les vues CDS ont des fonctionnalités étendues en SQL (calculs, GROUP BY…) mais aussi la possibilité d’ajouter des associations, des annotations ainsi que de l’extensibilité.

Vues avec une jointure

Vue avec jointure

Vues avec agrégations

Les vues avec agrégations incluent les traditionnelles fonctions telles que MIN, MAX, SUM, AVG, COUNT et COUNT (DISTINCT). Elles peuvent être utilisées dans la liste de sélection ou le HAVING

Vue avec Agregations

Vues avec unions

Les deux ensembles de résultats d’un DDL sont fusionnés. Toutes les lignes dupliquées entre les deux tables sont supprimées du résultat final.

Vue avec unions

Vues avec associations

Les associations permettent de mettre en relation les différentes vues. Elles donnent des informations sémantiques sur les relations entre les tables comme des cardinalités. Elles ont une syntaxe particulière mais le SQL généré est sous forme de jointures classiques.

Vue avec associations

Vues avec paramètres

Parfois, les utilisateurs ont besoin d’entrer des paramètres permettant d’influencer les résultats en fonction des besoins métier. C’est le cas par exemple, si l’utilisateur veut filtrer les résultats sur une langue, ou s’il veut modifier les résultats d’un calcul en introduisant le pourcentage d’un coupon de réduction. Ils se définissent à travers la clause WITH PARAMETERS. Lors de l’exécution de la vue, ces paramètres seront demandés à l’utilisateur.

Vue avec paramètres

CONCLUSION DE L’EXPERT

Les CDS Views ajoutent une couche sémantique aux données SAP ce qui les rend plus parlantes pour les utilisateurs métiers. A partir de ceci, les utilisateurs pourront construire des jeux de données opérationnels et réaliser avec des outils tierces des tableaux de bord avec des données en temps réel venant directement de l’ERP.

De plus, les fonctionnalités prévues dans les CDS Views permettent de construire des vues complexes impliquant plusieurs tables ou d’autres vues. On peut donc créer des vues sémantiquement très riches permettant d’être le plus fidèle possible aux exigences métier, et d’encapsuler toutes les règles de gestion.

Grâce à leur intégration dans la couche ABAP, des fonctionnalités très utiles telles que la reprise de la sécurité permettent de construire un modèle fiable et sécurisé.

Cependant, la construction de ces vues demande des compétences en développement CDS. SAP a opté pour la flexibilité et la facilité d’utilisation d’Eclipse afin de rendre le développement de ces vues le plus fluide possible.

Merci à Steven VERBRAEKEN pour l’aide à la rédaction de cet article



Laisser un commentaire