DLRS よくある質問

[DLRS(Declarative Lookup Rollup Summaries Tool)のまとめに戻る](https://qiita.com/Keiji_otsubo/items/0ff46ce12ec5ab1be257)


+ [Frequent Asked Questions](https://sfdo-community-sprints.github.io/DLRS-Documentation/Issues/)

# リモート サイト設定でメタデータ API を許可する必要があるのはなぜですか?

このツールを使用してロールアップを設定するには、ユーザーはSalesforce メタデータ APIへの接続と権限が必要です。ツールの「ようこそ」タブには、これに関するチェックと、必要な構成のガイドが表示されます。組織で[私のドメイン]を使用している場合は、リモート サイトの設定は必要なく、非常に簡単です。ただし、ユーザーには次の権限が必要です。

+ APIアクセス
+ メタデータ API すべてのデータにアクセスまたは変更する
+ Apex の作成 ([子トリガーの管理] ボタンを使用するために必要)
+ アプリケーションのカスタマイズ (ロールアップ概要の管理タブを使用してカスタム メタデータを更新するために必要)
+ 
注:上記は強力な権限です。有効にする前に十分に確認してください。通常、これらは管理者ユーザーに対して有効になります。

**既知の問題点**

+ リリース v2.12 の「ようこそ」タブに、リモート サイトが作成されていないときに作成されたと誤って記載される場合がある
+ v2.13 以降、「ようこそ」タブが修正され、セットアップ エクスペリエンスを向上させるために強化されました。
+ セッションベースの IP 制限はツールに干渉する可能性があります。[こちら](https://github.com/afawcett/declarative-lookup-rollup-summaries#usage-information-and-known-issues)を参照してください。

# 「ルックアップ ロールアップ サマリー ログが存在します。」という警告が表示されたのはなぜですか?

**これは何ですか？**

計算モードがスケジュールに設定されているロールアップでは、障害が発生したときにログが生成されます。

**私は何をしますか？**

この警告は、失敗した親レコードの更新について表示する必要があるログ エントリがあることを示します。問題に対処したら、次回スケジュールされたジョブを実行するときにログを削除する必要があります。または、必要に応じて自分で削除することもできます。[ルックアップ ロールアップ概要ログ]タブに移動して表示します。

# DLRS を最適化するにはどうすればよいですか? Apex CPU 制限またはその他のパフォーマンスの問題が発生しています。

DLRS には、その実行方法を制御するための多くのオプションが用意されています。DLRS トリガー、独自のトリガー、またはプロセス ビルダーからリアルタイムで同期して実行できます。スケジュールされた増分モードまたはスケジュールされた完全計算モードを使用して非同期的に実行することもできます。0 Hours from nowさらに、プロセス ビルダーと、通常は数分以内に発生するような遅延を伴うスケジュールされたアクションを使用することもできます。

DLRS をリアルタイムで実行する必要があるかどうかをよく検討してください。また、DLRS トリガーをデプロイするか、独自のトリガー フレームワークから DLRS トリガー ハンドラーを呼び出すかを検討してください。直接電話することを検討してくださいdlrs.RollupService.triggerHandler()。

# 関係基準で OR を機能させるにはどうすればよいですか?

必ずクエリを括弧で囲んでください。

```
(CRITERIA1 OR Criteria2)
```

+ [ OR条件の時は()で囲まないといけないみたい DLRS Relationship Criteria Error](https://trailhead.salesforce.com/en/trailblazer-community/feed/0D54S00000E9JFCSA3)

# スケジュールされた計算モードが機能しているかどうかを確認するにはどうすればよいですか?

+ トリガーがデプロイされていることを確認し、「計算」ボタンを使用して要約を手動で実行できることを確認してください。
+ サマリの下部にある関連リスト: ルックアップ ロールアップ サマリー スケジュール アイテムが表示されていることを確認してください。
+ 子レコードの関係フィールドまたは任意の関係基準フィールドを手動で編集し、レコードを保存します。
+ これで、ルックアップ ロールアップ サマリー スケジュール アイテム リストにレコードが表示されるはずです。
+ スケジュールを実行しましょう
+ 最近のルックアップ ロールアップ概要ログを確認する
+ [設定] > [ジョブ] > [スケジュールされたジョブと Apex ジョブ] を確認します。


# 「System.LimitException: dlrs:Too many query rows: 50001」というエラーが表示されるのはなぜですか

DLRS は通常、親の観点からクエリを実行し、指定された基準に一致するすべての子レコードを取得します。特定のバッチ内の親に平均 250 (50,000 / 200) の子があり、多くの DLRS ジョブが構成されている場合、または多数のカスケード ロールアップ (孫から親、祖父母へのロールアップ) がある場合、DLRS は合計で 50,000 を超える数を簡単に要求できます。指定されたトランザクションのレコード。

これがスケジュールされた計算または完全な計算バッチ ジョブ中に発生する場合は、宣言ルックアップ ロールアップ集計階層のカスタム設定でバッチ サイズを調整できます。デフォルトは 200 です。

# 注意: dlrs__LookupRollupsummaryScheduleItems__c の未使用のフィールドを削除する必要があります。」

**これは何ですか？**

dlrs__LookupRollupSummary__cカスタム オブジェクトのフィールドdlrs__LookupRollupSummaryScheduleItems__cは不要になり、今後このツール パッケージから削除されます。ただし、組織内にはまだ存在しているため、最適な設定とパフォーマンスを得るには手動で削除する必要があります。

また、このバージョンのツールをインストールしてから新しいロールアップを構成した場合、スケジュールされたロールアップに関連付けられた子レコードを操作するときにもこのエラーが表示される可能性があることに注意してください。このエラーは、以下の手順に従っても解決されます。

:::note alert
dlrs.RollupService.RollupValidationException: Scheduled rollups are running in legacy mode and are unable to resolve corresponding shadow rollups. Please visit the Lookup Rollup Summary Tools tab for more information and steps to resolve.
:::

**私は何をしますか？**

+ レポートを実行するか、フィールドに値が含まれていないレコードをフィルター処理するルックアップ ロールアップ サマリー スケジュール アイテムLookup Rollup Summary 2オブジェクトのリスト ビューを作成します。このようなレコードがある場合、このフィールドは v1.15 以降から入力されているため、非常に古いレコードである可能性があります。必要に応じて、これらのレコードを削除し、関連するロールアップの完全な計算を再実行できます。
+ 次に、 [設定]の[オブジェクト マネージャー]に移動し、[ルックアップ ロールアップ サマリー スケジュール アイテム]オブジェクトを見つける必要があります。API 名が付いているフィールドLookup Rollup Summary (Master-Detail)を見つけます。dlrs__LookupRollupSummary__c
+ このフィールドを削除すると、他のフィールドを誤って削除するとプラットフォームによってブロックされることを心配する必要はありません。このデータは、以前のリリースではツールの操作にのみ使用されており、現在は不要になっているため、組織内の他のデータには影響しません。

注:上記のフィールドに [削除] オプションが表示されない場合は、Salesforce クラシック UI モードに切り替えてみてください。