on 09-09-2009 9:52 PM
Hello,
We have a customer application where we store not only amount in LC but also the amount in Invoice Currency ("IC"). For example, we invoice customers in a currency other than our company code's local currencies. We have a requirement to convert actuals into USD and EUR by taking IC not LC. I have created a new category for this ACTBUD and have gotten it working for LC. I want to get it to work starting IC as the base currency. All the documentation I have read says that BPC uses LC as the default for currency translation.
Does anyone know if this can be changed?
Thanks,
Mark
We were able to modify the FX logic to take IC as the starting point and then translate into LC, USD and EUR. This was surprisingly very easy. Thanks to everyone for your input and help!
Take care,
Mark Monroe
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Here you go...we have four different reporting currencies:
IC = invoice currency or document currency.
LC = Local Currrency
USD = USD or Group Currency
EUR = Our EU users have requested that we also track Euros translated at budgetd rates.
The below code translates LC, USD and EUR from IC for all categories but Actual. Our actuals we get directly from our SAP system. We created a new category called ActBud and then translate the other reporting currencies from IC. It works pretty well.
// FX Translation for any data in the Customer application
// Added following line for performance
*PROCESS_EACH_MEMBER=TIME
*SELECT (%FX_RATES%, "[ID]", "RATE", "[GROUP] = 'FX RATE'")
// Block 1 - Clear out any previously calculated USD and EUR values, for all categories but Actual.
*XDIM_MEMBERSET DATASRC=COMPANY
*XDIM_MEMBERSET RPTCURRENCY=USD,EUR,LC
*XDIM_MEMBERSET INTCO=<ALL>
*WHEN CATEGORY
*IS <> "ACTUAL"
*WHEN CUSTACCOUNT.RATETYPE
*IS <> "NOTRANS"
*REC(FACTOR=0)
*ENDWHEN
*ENDWHEN
*COMMIT
//Block 2 - Perform standard foreign currency translation, for all categories but Actual.
*XDIM_MEMBERSET DATASRC=COMPANY
*XDIM_MEMBERSET INTCO=<ALL>
*XDIM_MEMBERSET RPTCURRENCY=IC
*LOOKUP RATE
*DIM RATESRC="RATECALC"
*DIM RATE=CUSTACCOUNT.RATETYPE
*DIM SOURCECURRENCY:INPUTCURRENCY=INVOICECURRENCY
*DIM TARGETCURRENCY_LC:INPUTCURRENCY=ENTITY.CURRENCY
*DIM TARGETCURRENCY_USD:INPUTCURRENCY="USD"
*DIM TARGETCURRENCY_EUR:INPUTCURRENCY="EUR"
*ENDLOOKUP
//*XDIM_MAXMEMBERS TIME=1
*WHEN CATEGORY
*IS <> "ACTUAL"
*WHEN CUSTACCOUNT.RATETYPE
*IS "NOTRANS"
*IS %FX_RATES%
*REC(FACTOR=LOOKUP(SOURCECURRENCY)/LOOKUP(TARGETCURRENCY_USD),RPTCURRENCY="USD")
*REC(FACTOR=LOOKUP(SOURCECURRENCY)/LOOKUP(TARGETCURRENCY_LC),RPTCURRENCY="LC")
*WHEN ENTITY.EURO
*IS "Y"
*REC(FACTOR=LOOKUP(SOURCECURRENCY)/LOOKUP(TARGETCURRENCY_EUR),RPTCURRENCY="EUR")
*ENDWHEN
*ELSE
*REC(RPTCURRENCY="USD")
*REC(RPTCURRENCY="LC")
*WHEN ENTITY.EURO
*IS "Y"
*REC(RPTCURRENCY="EUR")
*ENDWHEN
*ENDWHEN
*ENDWHEN
*COMMIT
Dear Mark and everybody who can help too,
I know your post is quiet old but I'm experience the same issue and have the following question: does this mean, that we can not use the standard business rules and the standard program "CURR_CONVERSION"? This would be too bad cause we are already far away from the standard BPC solution in the project and I was hoping we can go with the standard doing the currency conversion.
Thanx a lot in advance
Hi Cora,
If the amounts are stored in any currency other than LC say transaction currency, you can't proceed with the standard currency conversion process. As suggested above, you'll have to tweak the script logic to fetch the currency exchange rates from RATE application and apply the currency conversion process. You can check the below document -
http://scn.sap.com/docs/DOC-26482
Hope it helps!!
Hi Ashish,
thank you very much for this nice post and the link to this document. This helps a lot and gives me savety to explain the problem to our client. However it is too bad that BPC as such a flexible tool is not able to deal with transaction currency. This task is not so special from my point of view.
Thanx a lot
Jeff and Petar,
Thank you very much for your responses. They are very helpful.
Petar, if you could find that sample code that would be great. I do have one more question...what is an HTG?
Thanks!
Mark
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You may want to consider setting up a TRANSACTION currency, or Invoice Currency, using I_USD,I_EUR etc, and set a property to the currency that it relates to. Then you would need to modify or build script logic to calculate the Transaction or Invoice currency to the LC and Reprting currency. It is not an easy task, but oine that we have used at customers who perform sales in a transaction currency other than the Entity currency setting. I will look for an example of the code, however there may be a HTG on this process available.
Hope this helps.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Mark - you can go a couple of different routes. In the same application, custom logic or a custom stored procedure can be set up to start with the IC currency value and then convert to your reporting currencies. If you open the Multi Currency LGL file, you can see the out-of-the-box logic. From there a few small changes (and possibly a custom property to identify the IC currency values) to the logic will get you there.
It may be possible to use the conversion business rules. I have less experience with this method.
Hope that helps,
Jeff
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
15 | |
3 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.