Salesforce Certified Application Architect

Monday 6 November 2017

When using Future calls in Apex in Salesforce

1) A future call cannot make another future call and a future call cannot be made from a batch job.
With this limitation you have to be very careful in your code that a future call is not made from within a future call. This can be very easy if the code is short or you are doing a simple web service call as described above. But if you have a complex set of triggers or workflow rules in an organization it may not be that simple.
2) Future calls cannot be guaranteed to run in a certain order.
Just because one future call was made before another future call does not mean that the first one will complete first. There are multiple queues that are running these future calls so the order cannot be guaranteed. So if you need to guarantee that actions complete in a certain order then a batch or scheduled job may be the better solution.
3) Future calls can run concurrently.

It is possible that two future methods that were executed one after the other could basically run concurrently. This means you may have to deal with record locking if these two methods could be updating the same record. This may force you to use the ‘For Update’ method on your SOQL queries, which can be difficult to troubleshoot.
4) Future calls have limits

Salesforce has limits on how many future calls can be made so they cannot be used just anywhere. There is a limit of 10 future calls per Apex invocation. There is also the limit of future calls in a 24 hour period, which is 250,000 or the number of user licenses in your organization multiplied by 200, whichever is greater. Here is a link to those limits.
Future calls have their place to solve very specific use cases. But as Salesforce developers we have to be very careful in how we use them or we will end up with code that is difficult to debug and hard to manage.

No comments:

Post a Comment

Salesforce Certified Application Architect & Certified Data Architecture and Management Designer Exam

How to pass Salesforce Certified Data Architecture and Management Designer Exam This exam was 1st architect exam for me. Its not that muc...