0

我们的业务要求是在一个表格中显示我们所有项目的成本汇总。

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

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

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

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

是否有一个能满足我们要求的调速器限制工作(海量数据在 5 分钟左右做出响应?force.com 是我们在这里使用的好平台吗?

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

循环概述

4

1 回答 1

0

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

然后你可以简单地运行一个报告,告诉我我所有的项目及其总成本或总时间,因为这些总成本/时间已经存储/计算。

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

希望那有所帮助?

于 2012-05-16T15:09:42.977 回答