最終的にバッチ APEX を使用してスケジュールに従ってレコードを更新するクラスを作成しています。内部クラスの記述に問題があり、考えられる構文のあらゆる組み合わせを試しました。
コード:
public with sharing class AddendumsExpired {
public List<Id> opportunityIds{get;set;}
public List<Id> addendumIds{get;set;}
public List<Id> OppIds(){
for(Opportunity thisOpp :[SELECT Id,StageName,Name,Addendum_Amount__c,Addendum_Amount_No_Discounts__c,Agreement_Balance__c FROM Opportunity WHERE (NOT StageName LIKE '%Proposed%') AND (NOT StageName LIKE '%Accepted%')]){
opportunityIds.add(thisOpp.Id);
}
return opportunityIds;
}
public List<Id> AddIds(){
for(Addendum__c thisAdd :[SELECT Id FROM Addendum__c WHERE Opportunity__c IN :opportunityIds AND Expiration__c < TODAY]){
addendumIds.add(thisAdd.Id);
}
return addendumIds;
}
public class debugging {
system.debug('opportunityIds :: '+opportunityIds);
system.debug('addendumIds :: '+addendumIds);
system.debug('OppIds() :: '+OppIds());
system.debug('AddIds() :: '+AddIds());
}
}
私はまだテスト段階にあり、debugging
クラスがエラーをスローしています。最終的な本番展開には、複数の内部クラスが必要になります。
上記の構文 ( public class classname {
) を問題なく使用したことがあります。ただし、このコード ブロックを匿名で実行すると、次のエラーが表示されます。
Compile error at line 24 column 8
unexpected token: 'class'
誰かがこの状況に光を当てることができれば、本当に感謝しています! 私は困惑し、なぜその構文が他の多くのクラスでは機能するのに、このクラスでは機能しないのか疑問に思っています。