Workaround for Advanced Currency Management on Custom Objects? - Answers - Salesforce Trailblazer Community
Trailblazer Community
Ask Search:
Margaret FleischakerMargaret Fleischaker 

Workaround for Advanced Currency Management on Custom Objects?

We are soon going to enable multi-currency and ACM for my org, but our most important information is stored on custom objects and it's crippling that ACM cannot be activated on them. Do people have examples of workarounds they have used to solve this problem? 

Thanks!
Steve MolisSteve Molis
Can you give and example of what you mean by "our most important information is stored on custom objects and it's crippling that ACM cannot be activated on them."?  

I have ACM enabled on my Dev SFDC Org and it works with currency fields on my custom objects.
Margaret FleischakerMargaret Fleischaker
The currency fields that we use to calculate client invoices and sales team commissions are on a custom object. From everything that I've read and tested, ACM does not work on custom objects. Therefore, if I change the currency rate, some of the values on that custom object will change and we won't have accurate historical reporting and we may even end up paying/invoicing the incorrect amounts. Have you been able to tie the conversion amounts on custom objects to specific dated exchange rates?

Thanks for the help!
Jayant JoshiJayant Joshi
Advanced currency management works on custom object's currency fields. I have tested this on Dev org.
Margaret FleischakerMargaret Fleischaker
Multi-currency is supported on custom objects, but not Advanced Multi-Currency. Meaning, the exchange rate used for currency fields on custom objects is not fixed at the exchange rate for the close date of the Opportunity. Salesforce will use the most current exchange rate to calculate these values. This means that the converted value will change depending on when you look at the object.

Maybe both of you have some sort of special trigger or code that is allowing you do have ACM enabled for your custom objects? I just tested in my sandbox, and it definitely does not come out of the box. This is also what all of the online documents say.

I really appreciate your help. I just don't want anyone who reads this to be confused about ACM capabilities.

Advanced Currency Management Considerations

  • Dated exchange rates are used for opportunities, opportunity products, opportunity product schedules, campaign opportunity fields, and reports related to these objects and fields. Dated exchange rates are not used in forecasting, currency fields in other objects, or currency fields in other types of reports.
Christel VelhagenChristel Velhagen
Hi,

Did you find a way of doing it because I am having the same issue and it really gets confusing.

Thanks
Margaret FleischakerMargaret Fleischaker
no I'm sorry, we were not able to find a workaround.
Benedikt VogelBenedikt Vogel
We've had the same problem. Our solution: every object which can be recorded in EUR or CHF has a field called ExchangeRate__c. Amounts in EUR and CHF are also stored in custom fields. The exchange rate is still centrally managed with the SFDC multi currency functionality. If the exchange rate changes, we run a trigger which updates all ExchangeRate__c and Amount fields. Except the ones on object on which we want to keep the historical exchange rate (such as invoices). 

Russell MaunderRussell Maunder
Hi Benedikt, I have been having the same issue with ACM and wondered if you would be willing to share the trigger code with us?

Many Thanks

Russell
Neil CopelandNeil Copeland
Yes please, the code would be much appreciated.
Mandeep JohalMandeep Johal
Hi,
I am having the same issue, and was wondering if you could send the code across ?
Thanks
Jean-Sébastien WiartJean-Sébastien Wiart
Hi all, 

I hope you solved your problems so far. :)
Otherwise, I got the same issue in my company and my boss told me to work about this case and I found a solution that I assume is a convenient solution. 

It looks like an after insert trigger which update a child custom object with other custom objects informations. In fact, It records currency's values and autopopulate in my invoice custom object. It works well in my sandbox.

if someone want to see that solution, I will post it here soon.

[Sorry for my bad english !!!]
Hanel OberholsterHanel Oberholster
My intention to solve this issue, is to create a custom object that will hold exchange rates. This object will be auto-populated from and external system (using Informatica Dataloader (https://appexchange.salesforce.com/listingDetail?listingId=a0N300000016cUTEAY)) that is connected to a currency service.

Like Benedikt, I will have an ExchangeRate__c field on each custom object.

The custom rate object will have triggers to cause all my custom objects' exchange rate fields to be updated (as appropriate, per some date field on the object or per simply the latest value).

Representations of the default currency will then be calculated fields on each custom object as necessary.

This solution appears to remove the need for multi-currency activation (unless you need it for standard objects). If you want both worlds...
As per this (http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#StartTopic=Content/apex_dml_non_dml_objects.htm?SearchType=Stem), the dated exchangeRate table does not support DML, so we can't directly update that table from a trigger, however it does support modification through the ReST/SOAP API (http://salesforce.stackexchange.com/questions/13282/updating-multi-currency-rates-from-apex), so I will write the trigger to call out to the API - and keep the ACM tables in-sync.

I imagine this can be done in a totaly generic, portable way (other than the dataloader part). Unless a better solution comes along, I'll respond with my experiences once done.
Abhishek Pandey (Sops)Abhishek Pandey (Sops)
@Hanel Oberholster , so were you able to implement ACM , I am struggling to update DatedConversionRate through API , Does currencytype has to do anything with it?
Jean JAENICKEJean JAENICKE
Hi,
You might also want to vote for these ideas:
https://success.salesforce.com/ideaView?id=08730000000BpUrAAK
https://success.salesforce.com/ideaView?id=08730000000BqMqAAK
https://success.salesforce.com/ideaView?id=087300000007kScAAI
The first one is product team review...
Kogila AntoneyKogila Antoney
Hi All,

I am having the same problem, one of our custom object take the curent currency rate for historical data. Did anyone find a solution for this issue.

Any help is much appriciated 

Thanks and Regards
Kogila Antoney
Heshan WeerasekeraHeshan Weerasekera
Hi - any suggestions on this? I have the same problem 
Abhishek Pandey (Sops)Abhishek Pandey (Sops)
Hey ,

So finally I implementd ACM ,and on dated conversion rate updated the conversion rate on daily basis by integrating with a third party website for everyday exchange rates by custom code and integration. Thankfully on DCR(Dated Conversion Rate) i figured out a way to insert data on daily basis by custom code. Secondly as far as the issue of custom objects is , I also scheduled a batch right after the insertion of exchange rates to be updated on custom objects every single record(This has a long story behind it according to our internal custom structure we have) . For almost every field on custom object that has currency value in it, we created a formula field to get the converted value in USD or according to the requirment depending on what its standard parent object was created in whichever currency. 
SUSHEELA KUCHIMANCHISUSHEELA KUCHIMANCHI
Hi Abhishek,
My requirement is same as you.I have to update datedconversionrate object on daily basis.Can you help me in writing the insert code using rest api call
Service WiseService Wise
Hi Abhishek, Can you explain how you used formula fields to get the converted value in USD? Thanks
Karen PrendergastKaren Prendergast
Has anyone been able to get anywhere on this?  I was able to get the original currency rate to populate on the custom object through a workflow and having it set at the time of the opp close.  We set the custom object currency to the same as the dated currency so I have that captured, but I would like to display the dated rate amount on a report. 
David RedshawDavid Redshaw
Hi Karen

We have an app that provides advanced currency conversion for custom objects and fields. The app provides:

• Dated conversion
• Uses any date field for reference
• Allows rollup of dated conversions on Opportunities
• Allow multiple currency conversions per field
• Works with currency or numeric fields
• Converts between any two currencies
• Allows rates for any date range (even daily rates if you wish)

More information is available here: https://currencytoolkit.com

Please let me know if you would like more information.

Regards

David
Sara DiazSara Diaz

Hey Margaret, I suggest you check out these articles, they explain about Custom objects in Salesforce distinctly.
https://www.forcetalks.com/blog/salesforce-custom-objects-and-behavior-all-you-need-to-know/
https://help.salesforce.com/articleView?id=dev_objectcreate_task_parent.htm&type=5 (https://help.salesforce.com/articleView?id=dev_objectcreate_task_parent.htm&type=5