cancel
Showing results for 
Search instead for 
Did you mean: 

CDS VIEW ENTITY - CURR / QUAN calculated field gives activation error

bharatbajaj
Active Participant
0 Kudos
601

Dear community members,

I need to create a CDS view entity with a calculated filed as CURR / QUAN to get the per unit amount.

For Example: CDS VIEW ENTITY on BSEG which should have ( DMBTR(type CURR) / MENGE(type QUAN) ) AS UNIT_PRICE

Sounds like a very simple requirement but I am facing multiple issue with this.

To start with, I get below error message:

"Data type CURR is not supported at this position, see long text"

bharatbajaj_1-1725970019610.png

then I tried with casting CURR field as DEC(23.2), but then I got below error :

"Element <XXXXX> : missing CALC-reference annotation Semantics.quantity.unitOfMeasure"

bharatbajaj_6-1725972406979.png

it was surprising to see that it prompted to user UOM reference, instead of Currency reference, but nevertheless, I tried with the UoM reference, but then again a different error :

"<XXXXX>: Reference Field MEINS has a wrong data type"

bharatbajaj_7-1725972546520.png

then I tried to CAST the MEINS as abap.char(3) to use it as reference for calculated field, but then a different error this time, and this is really annoying this it didn't allow casting a text value into CHAR.

bharatbajaj_8-1725972773634.png

I also tried to google this error message and found some conversion function but then I get different errors:

1. Using function : GET_NUMERIC_VALUE

"Element DMBTR has an invalid reference field"

bharatbajaj_2-1725970332483.png

2. using function : CURR_TO_DECFLOAT_AMOUNT 

"Element DMBTR has an invalid reference field"

bharatbajaj_3-1725970793825.png

I tried few more ways but none of them is working for me and I really wonder how can this be so challanging to achieve AMOUNT / QUANTITY in CDS VIEW ENTITY, which is a very basic arithmetic operation.

 

Same arithmetic calculation works perfectly well in ABAP code (as we have done that for decades), so now I am thinking to use Virtual elememt in CDS, but I want to achieve with the CDS approach first, without making use of ABAP layer.

 

Any tips to solve this ?

 

regards,

Bharat Bajaj

 

View Entire Topic
Pradeep_Reddy
Participant
0 Kudos

HI,

Could you please try with the below.

@Semantics.quantity.unitOfMeasure: 'rfccr'

CURR_TO_DECFLOAT_AMOUNT( bseg.dmbtr  ) * GET_NUMERIC_VALUE( menge ) as dmbtr_per_menge.

Regards,

Pradeep.

 

bharatbajaj
Active Participant
0 Kudos

Hi Pradeep,

I tried that too.. but I get the below error :

bharatbajaj_1-1726571545568.png

However, I have found a simpler solution, which I will post as a seprate comment to my original post.

Regards,

Bharat

Pradeep_Reddy
Participant
0 Kudos
Could you please change the annotation from @Semantics.quantity.unitOfMeasure: 'rfccr' to @Semantics.quantity.unitOfMeasure: 'rfccur'