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

Apex コードの文字数制限を増やす

公開日: Oct 21, 2025
説明
Apex をマルチテナント環境で実行した場合、暴走した Apex コードやプロセスが共有リソースを専有することを防止するため、Apex ランタイムエンジンは制限を厳格に適用します。お客様から寄せられるよくある要求の 1 つは、組織での Apex コードの文字制限を増やすことです。

Summer '18 リリースでは、デフォルトの Apex コード文字制限が 6 MB に増やされました。

組織での最新の制限と使用状況は [設定] | [開発] | [Apex クラス] で確認できます。
解決策
Salesforce サポートは、デフォルトの Apex コード制限を増やすための支援を行うことができます。ただし、制限を増やす前に、すべてのベストプラクティスを実施してあることを確認してください。注意すべき点は次のとおりです。

管理パッケージ: この制限は管理パッケージには適用されません。パッケージのコードは、組織のコードとは独立した名前空間に属しています。
 
テストクラス: この制限は、@isTest アノテーション付きで定義されたクラスに含まれているコードにも適用されません。すべてのテストクラスに正しくアノテーションが付けられていることを確認してください。開発者コンソールの匿名ブロックで使用および実行できるサンプルコードにより、正しくアノテーションが付けられていないテストクラスを分析できます。
 
注意: 次のコードスニペットは例であり、100% 正確であることは保証されておらず、便宜上提供されています。また、組織内のすべての Apex が (テストクラスで @isTest が必須となった) APIv24 以降であることを想定しています。

Integer totalchar=0;  
for(ApexClass a: [Select Id, Name, Body from ApexClass]) 

if(a.body.containsIgnoreCase('testmethod') && !a.body.containsIgnoreCase('@isTest')){ 
system.debug(a.Id + '' + a.name + '' + a.body.length()); 
totalchar = totalchar + a.body.length(); 
} System.debug(totalchar);  
 
無効なテストプラクティス: 名前に「Test」が入っているクラスが、有効な機能テストではない状態でコードカバー率を高めるためのアンチパターンや冗長コードをテストしないことを確認してください。アンチパターンの例としては、大量の文字が含まれるクラスや、ダミー変数を宣言してダミー値を割り当てるだけのクラスなどがあります。

Integer i1;
i1 = 1;
...
Integer i1000;
i1000 = 1;
 
無効なクラス: コンパイルに失敗する Apex を使用することは賢い方法とは言えず、Apex コード空間の増加申請が却下される原因にもなり得ます。クラスを最後にコンパイルした後で連動するメタデータが変更されていない限り、クラスは isValid フラグが true に設定された状態で保存されます。クラスで使用されているオブジェクト名や項目が変更された場合 (オブジェクトや項目の説明が編集された場合も含む)、またはこのクラスを呼び出すクラスが変更された場合には、isValid フラグは false に設定されます。

[設定] | [Apex クラス] | [すべてのクラスをコンパイル] を使用してすべてのクラスを再コンパイルし、正しいコード使用状況を取得してください。以下は、無効な Apex クラスを特定するためのクエリです。

Select count() from ApexClass where isValid = false 
Select Id, Name from ApexClass where isValid = false 

上記のベストプラクティスを正しく実施しても制限の増加が必要である場合には、次の情報と共に Salesforce サポートにケースを登録してください。
  •  上記の分析の概要
  •  申請の理由
  •  現在の制限
  •  申請する制限 
注意:
  • Professional Edition 組織では、この制限を増やすことはできません。 
  • アンチパターンが存在する場合は、それらを削除するまでは制限を増やすことはできません。ベストプラクティスの原則に準拠していない場合も同様です。
  • 10M を超えて制限を増やす場合は、サポートからの追加の精査が必要になることがあります。Apex が存在しない組織で制限を増やす場合は、既存のコードが存在するソース組織へのアクセスがサポートから要求されることがあります。

ベストプラクティスの詳細は、次のドキュメントを参照してください。
An Introduction to Apex Code Test Methods (Apex コードテストメソッドの概要)
ベストプラクティスのテスト
ナレッジ記事番号

000382172

 
読み込み中
Salesforce Help | Article