• PM Modi Yojana
  • NEWBIE
  • 0 Points
  • Member since 2021

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 7
    Replies

 
Hi all,

We need to implement the following pattern at my org:
callout to external data source
if that callout takes too long (according to some configurable threshold), log an error (ie do some DML)
if that callout timed out on the remote server, try it again
Recognizing the potential for the dreaded "You have uncommitted work pending. Please commit or rollback before calling out." error, I put the error logging code in a future method, thus isolating the DML from the callouts. However, the error is still being thrown. I reduced the issue down to this pattern:
public static void foo() { Http http = new Http(); HttpRequest req = new Httprequest(); req.setEndpoint('https://test.salesforce.com'); //whatever endpoint req.setMethod('GET'); http.send(req); //works fine bar(); http.send(req); //throws calloutexception } @future public static void bar() { }
Am I correct to assume that calling a future method counts as a DML operation? Is there any documentation I'm missing somewhere?

For more information you can visit here https://bit.ly/2O1RwLF
 

 
Hi all,

We need to implement the following pattern at my org:
callout to external data source
if that callout takes too long (according to some configurable threshold), log an error (ie do some DML)
if that callout timed out on the remote server, try it again
Recognizing the potential for the dreaded "You have uncommitted work pending. Please commit or rollback before calling out." error, I put the error logging code in a future method, thus isolating the DML from the callouts. However, the error is still being thrown. I reduced the issue down to this pattern:
public static void foo() { Http http = new Http(); HttpRequest req = new Httprequest(); req.setEndpoint('https://test.salesforce.com'); //whatever endpoint req.setMethod('GET'); http.send(req); //works fine bar(); http.send(req); //throws calloutexception } @future public static void bar() { }
Am I correct to assume that calling a future method counts as a DML operation? Is there any documentation I'm missing somewhere?

For more information you can visit here https://bit.ly/2O1RwLF
 

Okay folks, I know this is a n00b question but I can't remember if or how to initialize a string with a set of arguments.

 

What I want to do is something like this

 

 

List<String> alphabet = { 'a' , 'b' , 'c' ...  };

 

How can I do this?