CDS Simple et Enumerated Types : Les Successeurs des DDIC Data Elements et Domains

Traitement en cours…
Terminé ! Vous figurez dans la liste.

Dans notre dernier article, nous avions vu qu’il était possible d’utiliser, au sein des CDS Table Entities, des CDS Simple Types et des CDS Enumerated Types. Ces types peuvent également avoir d’autres usage que nous allons étudier.

Tout le code est disponible sur notre Gitlab.

1. CDS Simple Types

  • Les CDS SImple Types sont utilisés pour typer les éléments ou les paramètres d’une CDS.

Pour démontrer ce cas la, nous allons repartir de l’exemple de la boulangerie créé dans notre dernier article. Et principalement de cette CDS :

Ici, nous voyons que nous utilisons le type abap.char( 100 ) pour définir l’adresse, mais ce n’est pas très parlant. Également, la description du champs ce basant sur le data Element, il faudra ajouter une annotations manuelle dans la CDS du type @EndUserText.label, pour définir l’affichage sur l’UI (en Fiori par exemple) car aucun label n’est défini sur le type abap.char.

Nous allons donc remplacer abap.char par un CDS Simple Type que nous allons créer.

Pour cela, rechercher dans Core Data Services : « Types »

Puis lui donner un nom et une description. Ensuite, nous pouvons attribuer un elementary data type (ici toujours abap.char) a notre type ZCUSTOMER_ADDRESS.

Nous définissons également les labels pour une meilleure compréhension pour l’utilisateur lors de l’affichage.

Puis nous pouvons utiliser ce Type dans dans notre CDS :

  • Ensuite, il est important de noter qu’un CDS Simple Type peut heriter d’un autre CDS Simple Type.

Dans ce cas la, le nouveau CDS Simple Type conserve toutes les caractéristiques techniques, ainsi que les annotations, a la différence que les annotations peuvent être remplacées si nous le souhaitons.
Cela permet par exemple de définir un CDS SImple Type « de base », qui définirai techniquement le Type, et qui serait ensuite utiliser par d’autres CDS Simple Type partageant ces caractéristiques techniques. Ainsi, si un changement est nécessaire ( Par exemple, passer de abap.char( 100 ), a abap.char( 150 ) ), il suffit de le faire a un seul endroit.

Par exemple ici, nous pouvons hériter du CDS Simple Type ZCUSTOMER_ADDRESS et l’utiliser pour définir d’autres CDS Simple Types qui partagerai la même base technique.

ZPASTRY_CUSTOMER_ADDRESS pour l’adresse des consommateurs de la boulangerie

ZSTORE_CUSTOMER pour l’adresse des consommateurs d’un magasin

Et comme ça, nous pouvons remplacer les annotations pour que le label soit plus précis, mais nous conservons les caractéristiques technique liées au type de ZCUSTOMER_ADDRESS.

Ce qui donne finalement :

  • Également, en ABAP, les CDS Simple Types peuvent être utilisés après l’expression « TYPE’ pour définir le type d’une variable.

2. CDS Enumerated Types

Les CDS Enumerated Types permettent de limiter et contrôler les valeurs transmises aux CDS Elements ou CDS Paramters.

  • Les CDS Enumerated Types sont utilisés pour typer les éléments ou les paramètres d’une CDS.

Créons ici un CDS Enumerated Types, permettant de lister les différents type de préparation autorisées par la boulangerie :

Puis nous l’ajoutons a la CDS ZI_PASTRY, qui définit les produits disponibles dans la boulangerie.

  • En ABAP, un CDS Enumerated Type peut être directement utilisé pour le typage des variables.

Conclusion

Dans cet article, nous avons pu voir quelles sont les nouvelles techniques pour typer des CDS Elements ou Parameters. Et que cela peut également etre utilisé directement en ABAP.

Laisser un commentaire