在序列化顶点中的记录集合时获取堆大小错误

时间:2014-09-22 10:50:50

标签: salesforce apex

我遇到了Salesforce apex LimitException问题。我从几个对象中获取数千条记录并将其放入像Map这样的集合中。现在我需要为相同的记录生成JSON,这些记录将用于移动设备从Salesforce下载数据。 当我尝试使用System.JSON.Serialize()方法序列化这些记录时;它正在生成一个巨大的JSON字符串,我收到System.LimitException错误,因为需要的内存比可用空间多。 我尝试使用try / catch块来捕获该问题,但这里有一个可用的引用,它表示Catch块无法捕获System.LimitException。 推荐网址:

http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_exception_methods.htm

我知道我们可以通过Limits.getHeapSize()方法检查堆大小限制。但有没有任何解决方法,以便我可以从顶点处理这个问题。 在这方面的代码样本或一些参考将受到高度赞赏。 谢谢你提前。

1 个答案:

答案 0 :(得分:0)

另一种方法是在Apex代码中使用批次。 APEX BATCHES

您可以在start()方法中发送记录,并在execute()方法中处理JSON序列化。