この問題を解決するには、ERP_Number__c フィールドを外部 ID としてマークする必要があります。外部 ID とは、外部 ID 属性を持つカスタム フィールドです。つまり、Salesforce 外部のシステムからの一意のレコード識別子が含まれます。フィールドが外部 ID としてマークされると、Salesforce は自動的にインデックスを作成し、SOQL クエリの WHERE 句などのフィルターで使用できるようになります。これにより、クエリのパフォーマンスが向上し、非選択クエリ例外を回避できます。SOQL クエリを for ループの一部として実行しても、クエリ制限に達して効率が悪くなるため、問題は解決されません。ERP_Number__c フィールドを必須としてマークしても、クエリのパフォーマンスやフィールドのインデックス作成可能性には影響しないため、問題は解決されません。SOQL クエリを非同期プロセス内に移動しても、同じクエリ制限と例外が発生するため、問題は解決されません。参考資料: [カスタム フィールド属性]、[非常に大きな SOQL クエリの操作]