cancel
Showing results for 
Search instead for 
Did you mean: 

BPC LOOKUP is not calculating correctly. the value is halfed.

0 Kudos

Hi,

I a trying to do a currency conversion using lookup, the value is halved and translation is applied. below is the simple code.

*LOOKUP Rates
*DIM END:R_ACCOUNT = END
*DIM CATEGORY = Actual
*DIM R_ENTITY = Global
*DIM INPUTCURRENCY = ENTITY.CURRENCY
*ENDLOOKUP

*XDIM_MEMBERSET RPTCURRENCY = LC
*XDIM_MEMBERSET CATEGORY = Actual
*WHEN RPTCURRENCY
*IS LC
*REC(EXPRESSION = %VALUE%/LOOKUP(END),RPTCURRENCY = USD)
*ENDWHEN
*COMMIT

2015.11LC - LCUSD - USD105.3084192

0 Kudos

we want to pick the corresponding currency of the entity and convert to USD.

in this example the entity AGB01 is EUR company. it has to pick the corresponding END rate from Rates model and apply %VALUE%/LOOKUP(END).

Accepted Solutions (0)

Answers (8)

Answers (8)

former_member186338
Active Contributor
0 Kudos

Please test exactly this script (please check that you have nothing else in default.lgf):

*LOOKUP Rates
*DIM R_ACCOUNT = END
*DIM R_ENTITY = Global
*DIM LC_RATE:INPUTCURRENCY = ENTITY.CURRENCY
*DIM USD_RATE:INPUTCURRENCY=USD
*ENDLOOKUP

*WHEN CATEGORY
*IS Actual
*WHEN RPTCURRENCY
*IS LC
*REC(EXPRESSION = %VALUE%*LOOKUP(USD_RATE)/LOOKUP(LC_RATE),RPTCURRENCY = USD)
*ENDWHEN
*ENDWHEN

Also please list dimensions you have in the rate model!

Corrected - *DIM R_ENTITY = Global

0 Kudos

Below is the screen shot of the currency property of AGB01

0 Kudos

Below is the screen shot of the currency property of AGB01

0 Kudos

Below are the values from Rates model

And in my finance model, I am inputting a value of 10 in LC (for the entity AGB01 the rptcurrency is EUR) as the currency conversion is written in default I am expecting 10 EUR = 10.616 USD which is derived as (10*1/.9419). Kindly let me know if any more information is need to get clarity.

former_member186338
Active Contributor
0 Kudos

"AGB01 the rptcurrency is EUR" please confirm with screenshot of ENTITY dimension administration - to see CURRENCY property!

0 Kudos

when I used the recommended code the value is doubled.

*LOOKUP Rates
*DIM R_ACCOUNT = END
*DIM CATEGORY = Actual
*DIM R_ENTITY = Global
*DIM LC_RATE:INPUTCURRENCY = ENTITY.CURRENCY
*FOR %CUR%=USD //list of target currencies
*DIM %CUR%_RATE:INPUTCURRENCY=%CUR%
*NEXT
*ENDLOOKUP

*XDIM_MEMBERSET RPTCURRENCY = LC
*XDIM_MEMBERSET CATEGORY = Actual
*WHEN RPTCURRENCY
*IS *
*REC(EXPRESSION = %VALUE%*LOOKUP(USD_RATE)/LOOKUP(LC_RATE),RPTCURRENCY = USD)
//*REC(EXPRESSION = %VALUE%/LOOKUP(LC_RATE),RPTCURRENCY = USD)
*ENDWHEN

the expected value is 10.61 USD.

When I used :

*REC(EXPRESSION = %VALUE%/LOOKUP(LC_RATE),RPTCURRENCY = USD) the value is halved

former_member186338
Active Contributor
0 Kudos

Sorry, but please provide the clear test case, I am unable to understand what are you doing!

Please read again: https://blogs.sap.com/2014/01/31/how-to-ask-questions-about-script-logic-issues

Provide report for rate model! With all members clearly shown! (EUR,USD)

Also, if you want to use script in default.lgf then remove XDIM_MEMBERSET!

// delete *XDIM_MEMBERSET RPTCURRENCY = LC
// delete *XDIM_MEMBERSET CATEGORY = Actual

*WHEN CATEGORY
*IS Actual
*WHEN RPTCURRENCY
*IS LC

...

former_member186338
Active Contributor
0 Kudos

P.S. Remove this line from LOOKUP:

*DIM CATEGORY = Actual

CATEGORY member will be from the current record of WHEN/ENDWHEN!

former_member186338
Active Contributor
0 Kudos

The script to convert to any currency will be like:

*LOOKUP Rates
*DIM R_ACCOUNT = END
*DIM CATEGORY = Actual
*DIM R_ENTITY = Global
*DIM LC_RATE:INPUTCURRENCY = ENTITY.CURRENCY
*FOR %CUR%=EUR,USD //list of target currencies
*DIM %CUR%_RATE:INPUTCURRENCY=%CUR%
*NEXT
*ENDLOOKUP

*XDIM_MEMBERSET RPTCURRENCY = LC
*XDIM_MEMBERSET CATEGORY = Actual
*WHEN RPTCURRENCY
*IS *
*REC(EXPRESSION = %VALUE%*LOOKUP(USD_RATE)/LOOKUP(LC_RATE),RPTCURRENCY = USD)
*ENDWHEN

former_member186338
Active Contributor
0 Kudos

Please provide complete info inline with https://blogs.sap.com/2014/01/31/how-to-ask-questions-about-script-logic-issues/

From your code:

*DIM INPUTCURRENCY = ENTITY.CURRENCY

will get rate for the currency defined in ENTITY property CURRENCY

Why do you think it will be USD or ...?

0 Kudos

above is the result and I am using the code in default logic