0

すべてのプロジェクトのコストの概要を 1 つの表に表示するというビジネス要件があります。

これらのコストを集計するには、すべてのクライアント タスク、地域、職務、給与、コスト テーブル、成果物、労力、および時間レコードをクエリする必要があります (クライアント タスクは同じテーブルにあり、タスクと地域は同じテーブルにあります)。テーブルと成果物、工数、および時間は、月ごとの合計として保存されます)。

すべてを for ループする前に、これらすべてを照会する必要があるため、非常に多くのスクリプト行にすばやくヒットします。計算上は O(m * n * o * p) のようなもので、私たちのプロジェクトの中には、4 つの変数すべてが非常に急速に上昇するものがあります。これを行う方法についての私の見積もりでは、9,000 万行のコードから 6,000 億行のコードまで幅がありました。

Batch Apex を使用すると、これをタスク領域ごとに 200 のバッチに分割できますが、計算プロファイルは (600 B / 200 ) = 30 億行のコード (Salesforce の制限をはるかに超える) に減少します。

これらの大規模な計算を実行するためにインフォマティカを使用して遊んでいますが、次のようないくつかの問題があります。(1) エンドユーザーは 5 分以上待つことができず、データを転送するだけです (すべてのレコードの 90%プロジェクトが一度に更新される) は、インフォマティカまたは Web API で 15 分かかります (2) これらの大規模な計算がいくつかの場所で発生する必要があることに気付きました (成果物予測値の変更、初期予測の作成など)。

ここでの要件 (5 分ほどで応答する大量のデータ) を満たすガバナー制限回避策はありますか? force.com は、ここで使用するのに適したプラットフォームですか?

これは、同様の計算のために私が行ってきた方法です。

ループの概要

4

1 に答える 1