スケジュール化したApexクラスを編集したい場合、
スケジュールを削除する必要があります。
それを回避する為に次の方法がありますよ。と紹介されていたサイトのやり方を
試してみました。
参考サイト:Advanced Apex Programming
http://advancedapex.com/2012/11/14/scheduledapex/
スケジュール用クラスと処理用クラスを別にするやり方になります。
■スケジュール用クラス
global class ScheduleTest Implements Schedulable { public Interface IScheduleTest { void execute(SchedulableContext sc); } global void execute(SchedulableContext sc) { Type targettype = Type.forName('CalledByScheduleTest'); if(targettype!=null) { IScheduleTest obj = (IScheduleTest)targettype.NewInstance(); obj.execute(sc); } } }
■処理用クラス
public class CalledByScheduleTest implements ScheduleTest.IScheduleTest { public void execute(SchedulableContext sc) { /* ここで処理を記載 */ } }
上記のように実装します。
処理用のクラスを別にすることでスケジュール化後も処理の変更が可能になる
やり方だそうです。
こんなやり方があるんですね。ヽ(=´▽`=)ノ