州长限制与SFDC的报告

时间:2012-05-05 14:49:04

标签: apex-code force.com soql

我们有业务要求在单个表格中显示所有项目的成本摘要。

为了将这些成本制成表格,我们必须查询所有客户端任务,区域,工作角色,工资率,成本表,可交付成果,工作量和小时记录(客户端任务在同一个表中,任务和区域是在同一个表格中,可交付成果,工作量和小时数按月计算。

由于我必须在循环查看所有内容之前查询所有内容,因此它很快就会遇到大量脚本行。在计算上它就像O(m * n * o * p),我们的一些项目的所有四个变量都很快上升。我对如何做到这一点的估计范围从9000万行代码到6000亿行。

使用批量顶点,我们可以将任务区域分解为200个批次,但这会将计算配置文件减少到(600 B / 200)= 30亿行代码(远高于销售人员限制。

我们一直在使用informatica进行这些大规模计算,但我们遇到了一些问题,包括:(1)我们的最终用户不能等待超过五分钟左右,而只是传输数据(占所有记录的90%)如果所有项目立即更新)将花费15分钟而不是信息或web api(2)我们注意到这些大规模的计算需要在几个地方进行(更改可交付的预测值,创建初始预测等)。 / p>

是否存在符合我们要求的州长限制(大量数据及响应时间在5分钟左右?force.com是我们在这里使用的良好平台吗?

这是我一直在进行类似计算的方式:

Loop Overview

1 个答案:

答案 0 :(得分:0)

ERD会有所帮助,但是您是否考虑过使用较小的部分并使用salesforce中的报告而不是自定义代码? 我的意思是使用较小的部分,使用汇总汇总字段在对象树中获得更高的总数。 或者使用顶点触发器,以便输入小时数,计算成本*小时数并将其放入时间记录,然后汇总到可交付成果。 基本上可以在输入数据时计算您的值,而不必每次都运行计算。

然后,您只需运行一份报告,其中显示我的所有项目及其总费用或总时间,因为已经存储/计算了总费用/时间。

汇总摘要仅适用于master-detail 触发器可以随时工作,但您需要考虑插入,更新以及删除和取消删除!聚合函数将是您的朋友,假设触发上下文的聚合记录少于50,000个记录 - 如果单个可交付成果超过50,000个时间条目,那么我希望它可以b / c进行聚合:)

希望有所帮助?