Comment gérer le nom des champs longs dans vos OData : solutions et alternatives

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.

Laisser un commentaire