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

数式項目が最大文字数を超える

公開日: May 6, 2026
説明

数式項目のコードは、許可されている最大文字数を超える可能性があります。下記にこれが発生する 2 つの状況を説明します。 
  1. 数式項目のコードは、次のいずれか 2 つの場合に許可されている最大文字数を超える可能性があります。
    • 数式項目に直接含まれる文字数制限 (3900)
    • 含まれる他の数式項目を組み入れた後の数式の合計サイズ (5000 バイト)
  2. 後者の問題は、他の数式項目が含まれている状態で、他の数式の数式 (コード) を挿入すると発生する可能性があります。次に例を示します。
    • Field A: "Total_Amount * .9"
    • Field B: "IF (Field_A__c = 0)..."
    • Formula_B に挿入されたのは Formula_A の結果ではなく Formula_A の数式であるため、B は自動的に "IF ((Total_Amount * .9) = 0)..." と展開されます。
解決策

 

この制限に達した場合の対処方法

  1. 数式を 2 つの項目に分割することで、小さいほうの文字数制限 (3900) を解決できます。別の数式項目を作成し、コードの一部を分割してその項目に挿入します。次に、Formula_B 内で Formula_A を呼び出します。それぞれの数式に 3900 文字まで含めることができます。
  2. 数式項目で他の数式項目を参照する (その結果、さらに他の数式項目を参照する可能性がある) ような複雑な数式の場合、結果として 5000 バイトの制限を超える複合コードになります。どのエディションでも、数式の組み合わせ全体を調べて、コードから削減または除去できるものがあるかどうかを確認できます。小さい部分でも効果があり、合計サイズが大幅に削減される可能性があります。
  3. Enterprise Edition (EE) または Unlimited Edition (UE) のワークフローは、問題の解決に役立ちます。
    • 以下の方法に従ってください。 
    1. ページレイアウトに表示されない非表示項目を新規作成します。
    2. オブジェクトに対して、レコードが作成または編集されたらトリガされるワークフロールールを新規作成し、条件が常に true になるようにします (所有者 氏名 <次の文字列と一致しない> Null など)。
    3. 新規作成された非表示項目に対して項目自動更新を行うルール適用時のワークフローアクションを作成します。 
    4. [数式を使用して新しい値を設定する] をクリックします。
    5. 最初の数式項目の名前 (Formula_A) のみを数式に入力します。このオブジェクトでレコードが作成または編集されるたびに、Formula_A の結果が計算され、この新しい通常の項目にコピーされます。次に、Formula_B 内で、Formula_A の代わりにこの項目を参照します。
    • メモ: 既存のレコードに更新された値を適用するには、手動で更新する必要があります。
  4. Apex コードを使用して (EE、UE の場合)、レコードの項目に対して更新をトリガすることもできます。このオプションはさらに強力で柔軟性に富み、カスタム数式項目ではなく入力規則で使用できる VLOOKUP() 関数のように、手続き型アルゴリズム (倍額定率法など) に基づいて値を割り当てる機能や、数式またはワークフローで評価中のレコード/オブジェクトを超えて値を参照する機能が含まれています。
  5. 可能な場合は常に CONTAINS 関数を使用してください。たとえば、複数の選択リスト値を比較する場合、要件に応じて CONTAINS(AB:AC:AD:AE) などを使用できます。

ベストプラクティス

複数レベルでネストされた数式項目の参照で最適な結果を得るには、数式項目チェーンの中間近くの場所で、コード全体を半分に分割します。このようにすると、サイズを簡単に小さくでき、文字数制限内に収まります。また、積み上げ集計項目を含めないでください。

数式のサイズを縮小するためのヒントを参照してください。

その他の詳細は、「数式項目の制限および制約」「プロセス数式の制限」を参照してください。

ナレッジ記事番号

000385147

 
読み込み中
Salesforce Help | Article