Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

新しい数式の作成時の「オブジェクト参照の最大数 (15) に達しました」エラー

公開日: Oct 13, 2022
説明


(数式項目、項目自動更新、入力規則で) 新しい数式を作成するときに、次のようなエラーが生じることがあります。

(オブジェクト名) のオブジェクト参照の最大数 (15) に達しました
この数式項目を保存するためには、リレーションを少なくとも 1 つ削除する必要があります。
この数式項目で参照される関連オブジェクト:

  • LookupField1__r
  • LookupField2__r
  • LookupField3__r
解決策


このエラーは、オブジェクトあたりのリレーションの拡大 (「クロスオブジェクト参照」ともいう) の制限に達した場合に発生します。
 

リレーションの拡大とは?

オブジェクトは、リレーション項目を使用して相互に関連付けることができます。オブジェクトが相互に関連しているときは、数式項目が関連している他のオブジェクトの項目を参照できます。

以下に例を示します。

  • Object1 というカスタムオブジェクトがある。
  • Object2 という別のカスタムオブジェクトがある。
  • Object1 に Object2 との参照関係がある。
  • Object1 に数式項目を作成するときに、ルックアップを介して Object2 の項目を参照できる。
別のオブジェクトの項目を参照する数式をリレーションの拡大といいます。

リレーションの拡大はオブジェクトあたり 15 を上限とします。
つまり、1 つのオブジェクトに最大 15 種のオブジェクト参照を設定できます。

このカウントは、オブジェクトの次のコンポーネントの数式で参照される一意のリレーション数に基づきます。
  • 数式項目
  • ワークフロールール、項目自動更新
  • 承認プロセス
  • 入力規則
  • 割り当てルール
  • エスカレーションルール
  • 自動レスポンスルール

注意: リレーションの拡大のカウントにおいて、自己参照の参照関係は「別」のオブジェクトとみなされます。たとえば、取引先オブジェクトにそれ自体を参照する参照があり、数式で使用されている場合は、別のリレーションの拡大としてカウントされます。
 

リレーションの拡大の例

以下の例では、次の点を前提とします。

  • 16 のカスタムオブジェクト (Object1 ~ Object16) がある。
  • カスタムの Object1 に、残りの 16 のすべてのオブジェクトと参照関係がある。

リレーションの拡大が 1 つ
Object1 に数式を作成すると、次のように別のオブジェクトを参照します。
LookupObject1__r.Amount + LookupObject1__r.Discount / LookupObject1__r.Tax

この例では、1 つのルックアップを介してオブジェクトの 3 つの項目が参照されます。各項目が 1 つのルックアップを介して参照されるため、このリレーションの拡大は 1 つとみなされます。同じオブジェクトが異なるルックアップを介して参照される場合は、個別のリレーションの拡大とみなされます。


3 つのリレーションの拡大
Object1 に数式を作成すると、次のように別のオブジェクトを参照します。
LookupObject1__r.Amount + LookupObject2__r.Discount / LookupObject3__r.Tax + LookupObject3__r.Tip - LookupObject3__r.Total

ここには 5 つの項目がありますが、参照されているオブジェクトは 3 つのみです (Object1、Object2、Object3)。この場合は 3 つのリレーションの拡大とみなされます。


4 つのリレーションの拡大
まず、次のような数式項目を作成します。
LookupObject1__r.Amount + LookupObject2__r.Discount

続いて、次のような入力規則を作成します。
ISBLANK(LookupObject3__r.Amount) && LookupObject4__r.Discount < 145

この場合は、それぞれのオブジェクト参照が独自のリレーションの拡大になります。数式項目が 2 つのオブジェクト (Object1、Object2) を参照するため、2 つのリレーションの拡大になります。入力規則が 2 つの異なるオブジェクト (Object3、Object4) を参照するため、さらに 2 つのリレーションの拡大が存在します。この両方の数式を合算するとリレーションの拡大が 4 つになります。


他の簡単な例:
上記の例を考えれば、次のようなさまざまな状況でリレーションの拡大が制限に達するものと思われます。

  • 数式項目が 16 個あり、それぞれ固有のオブジェクトを参照している。
  • 数式項目が 8 個あり、それぞれ固有のオブジェクトを参照している。さらに、8 個の異なるオブジェクトを参照するワークフロー項目自動更新がある。
  • 5 個の固有のオブジェクトを参照する入力規則と、他の 6 個のオブジェクトを参照する項目自動更新と、他の 5 個のオブジェクトを参照する数式項目がある。 
  • 参照の任意の組み合わせにより、数式項目、ワークフロールールと項目自動更新、承認プロセス、入力規則、割り当てルール、エスカレーションルール、自動レスポンスルールの数式の合計が 15 を超える。
 

リレーションの拡大のエラー

リレーションの拡大の制限を超えると、エラーメッセージに問題のあるオブジェクト、参照、数式に関する詳細情報が表示されます。

具体的には、エラーの黄色いセクションに、使用されている参照の合計数 (と参照元の項目) が示されます。また、こうした各参照が使用されている数式の種別 (「数式項目」「入力規則」など) も示されます。

このエラーを修正するには、現在の項目または他の参照項目で作成されている参照数を上限の 15 個以下に減らします。

 

リレーションの拡大の現在の使用状況の表示

オブジェクトのリレーションの拡大の現在の数は、次の 2 通りの方法で確認できます。
  1. 制限を超えるかどうか判断するために、複数のクロスオブジェクト参照を使用する数式項目を作成する。数式を保存するときに生成されるエラーメッセージで、実際の使用状況を確認します。
  2. オブジェクトの数式項目、ワークフロールール、入力規則にあるクロスオブジェクト参照の数を手動でカウントする。
 

関連情報

エラー:「[オブジェクト名] の 15 オブジェクトの参照の最大数に達しました。少なくとも 1 個のリレーションを削除する必要があります。」
ナレッジ記事番号

000383053

 
読み込み中
Salesforce Help | Article