Comment créer une vue à partir d’une Cluster Table sur SAP

Comment créer une vue à partir d’une Cluster Table sur SAP

Une table au niveau de la base de données peut parfois contenir de multiple colonnes qui ne font pas l’objet d’un « select .. from .. » souventefois et pour éviter de faire la sélection des colonnes à chaque requête, on préfère opter pour la création de ce qu’on appelle, une vue.

 loading=

Les vues renvoient un résultat de données conforme à ce qui est stocké dans nos tables physiques. Cependant, l’ERP SAP , indépendamment du SGBD utilisé (HANA , IBM, Oracle, …) catégorise ses tables comme suit :

  • Transparent Table
  • Cluster/Pool Table

Les cluster tables, ne stockent pas les données physiquement au niveau de la base de données, elles sont généralement remplies au moment de l’exécution de la transaction. Ce qui est physiquement stocké dans notre base de données c’est la table cluster dans laquelle sont référencées les clés qui pointent vers une cluster Table. Comme le montre la capture d’écran ci-dessous :

 loading=

L’inconvénient avec ce type de tables c’est qu’on ne peut les lire et exploiter les données s’y trouvant et cela s’explique du fait que les données provenant d’une cluster table sont regroupées dans un seul champ au niveau de la Table cluster. 

 loading=

Exemple de Cluster Table

Vous l’aurez alors sans doute deviné, on ne peut pas créer de vues en se basant sur ces tables en passant par les méthodes standards comme SE11, SQVI ou encore les ABAP CDS Views

Passons vite aux choses intéressantes pour voir par quel moyen peut-on créer une vue sur des Cluster Tables.

Dans notre exemple, on prendra la table KONV qui est une cluster Table qui contient les diverses conditions crées sur SAP ECC.

 loading=

Lancer la transaction SQ03

 loading=

Créer le groupe utilisateur qui va consommer la vue à créer. Qu’on appellera ZU_GRPC_SD

 loading=

Assigner le groupe créé à un package existant ou que vous créerez pour ce besoin avec la T-Code SE80.

 loading=

Créer un InfoSet avec la T-Code SQ02 qu’on appellera ZF_SD_KONV

 loading=
 loading=

Cliquer sur créer et l’écran ci-dessous, s’affichera :

 loading=

Sélectionner l’option Logical Database.

C’est quoi une LDB (Logical Database) : Le chemin classique pour lire les données d’un système se fait généralement en interrogeant les bases de données (SGBDR) mais avec la logical database on interroge des tables temporaire

 loading=

L’écran suivant va s’afficher vous permettant de choisir les tables et les champs qui vont constituer votre vue et en l’occurrence ça sera la table KONV.

 loading=

A partir de là, on peut choisir les champs qui nous intéressent.

 loading=

Avec la même transaction SQ02, on affecte l’infoset au groupe créé avec la transaction SQ03

 loading=
 loading=

Création de la query avec SQ01 qu’on appellera ZQ_SD_KONV

 loading=
 loading=

On sélectionne notre Infoset

 loading=

Introduire un titre à notre requête

 loading=

Votre Vue est prête à être consommer directement ou bien d’être utilisé pour créer une nouvelle transaction avec la T-Code SE93 ou de .

 loading=

Liens utiles: https://help.sap.com/doc/saphelp_nw73ehp1/7.31.19/enUS/9f/db9b5e35c111d1829f0000e829fbfe/frameset.htm

Happy Learning !


Assia Meddahi

SAP Analytics Consultant