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)- A9% (4)
- B71% (32)
- D20% (9)
Community Discussion
No community discussion yet for this question.