0

いくつかの入力を取得したい要件があります。すべてのアカウントを含むわけではない「アカウント ランク」フィールドが必要で、プールへの追加、プールからの削除、およびランクの変更ができる必要があります。私の問題は、プールからレコードを削除するか、新しい位置に移動するたびに、それ以降のすべてのレコード (10,000 にもなる可能性があります) を上下にシフトする必要があることです。Salesforce では、一度に 200 の個々の更新に制限があります。または、最大 100 万のバッチに分割できます。バッチに関する私の懸念は、人々が短時間で 5 つを超えるレコードを更新しないことを保証できないため、許可されているバッチの総数に関する Salesforce の制限を超えてしまうことです。

誰かがこれらの問題に対処しましたか?最善のアプローチについて何か提案はありますか?

4

3 に答える 3

0

これは難しい問題です...SFDC のようなものを考え直すことはできますか? 動的な方法でランクを生成するとどうなるでしょうか? たとえば、投票システムや評価システムを作成して、SFDC にランキングを計算させることができます。

成績を与える項目が 1 つ以上あり、次のような SOQL クエリがあるとします。

[アカウントから ID を選択 WHERE _ ORDER BY Vote1, Vote2, ]

于 2010-12-30T14:29:38.810 に答える
0

(これをコメントとして投稿したいのですが、私は新しくてまだできません。申し訳ありません)。

@futureまたはバッチを使用してかなりカスタムのapexに頼ったり、セールスフォースAPIを介してこの再計算を行う独自の統合を持たずに、あなたが説明した方法でこれをモデル化する良い方法は考えられません.

アカウントのランクは何によって決まりますか? 数式フィールド内で計算できますか?

于 2010-12-29T00:59:08.657 に答える
0

データモデルを変更すると、これは非常に簡単になります。

  1. ランキング オブジェクト Ranking__c を作成し、これを Account オブジェクトに関連付けます。
  2. ランクの種類または数値ごとに、詳細を含むレコードを作成します。
  3. 適切な取引先レコードを対応する Ranking__c レコードに関連付けます

取引先ランクを更新するときは、取引先レコードの代わりに Ranking__c レコードを変更するだけです。これにより、実行する必要があるレコードの数が大幅に削減されます。

于 2011-01-05T12:41:31.017 に答える