nerdexam
Salesforce

PDII · Question #112

A developer writes the following code: public with sharing class OrderController() public PaqeReference sendOrder() Order_c order = new Order_c insert order; ExternalOrder externalOrder = new…

The correct answer is B. Ensure all callouts are completed prior to executing DML statements C. Move the web service callout into an @future method. See the full explanation below for the reasoning.

Question

A developer writes the following code:

public with sharing class OrderController() public PaqeReference sendOrder() Order_c order = new Order_c insert order; ExternalOrder externalOrder = new ExternalOrder(order); Http h = new Http(); HttpRequest req = req.setMethod('POST'); req.setBody(JSON.serialize(externalOrder)); HttpResponse res = h.send(req); order = (ExternalOrder)JSON.deserialize(res.getBody(),ExternalOrder.class); While testing the code, the developer receives the following error message:

System.CalloutException : You have uncommitted work pending What should the developer do? (Choose two.)

Options

  • AUse the asyncSend() method of the HTTP class to send the request in async context
  • BEnsure all callouts are completed prior to executing DML statements
  • CMove the web service callout into an @future method
  • DUse Database.insert (order, true) to immediately commit any database changes

How the community answered

(45 responses)
  • A
    9% (4)
  • B
    71% (32)
  • D
    20% (9)

Community Discussion

No community discussion yet for this question.

Full PDII Practice