Qui n’a jamais eu a adapter un champs de d’une CDS car ce dernier dépassait les 30 caractères ? Et, par effet de bord il est donc impossible d’avoir le champs souhaité dans le service OData.
Je vous partage ici une solution rapide et efficace pour eviter ce problème.
Un exemple est disponible sur notre Gitlab.
I. CDS en erreur
Prenons un cas simple d’une CDS que nous avons créée dont un champs dépasse 30 caractères.

Nous pouvons voir qu’il y a une erreur et que nous ne pouvons pas activer la CDS.
Nous pourrions réduire le nom du champs et ensuite activer la CDS pour l’exposer au sein d’un service et la consommer en OData, mais nous souhaitons vraiment ce nom de champs.
II. Solution
Il existe une annotation OData pour contourner le problème : OData.property.name
Cette annotation est une annotation Framework-Specifique et est évaluée a l’exéctution par le Framework SADL.
Notre CDS corrigée est donc :

Ici, il n’y a plus d’erreur et nous pouvons activer la CDS et créer le service OData associé :


Dans ce cas d’exemple, nous sommes sur un systeme S/4 Hana, Private Cloud, Mais cette annotation est également disponible sur BTP, ABAP Environment, S/4 Hana, Public Cloud et On Premise.
III. Test

Nous voyons que le champs souhaité est bien exposé et consommable via OData.
