これは InterSystems FAQ サイトの記事です。
こちらでは、タスクスケジュールを登録・参照するサンプルコードをご紹介します。
①タスクスケジュール登録のサンプル
※毎日 am1:00に do ^TEST を実行するタスクを作成します。
set task=##class(%SYS.Task).%New()
set task.Name="MyTask1"
set taskDescription="毎日夜中1:00に^xxx実行" // 任意
set task.NameSpace="USER"
set task.TimePeriod=0
set task.DailyFrequency=0
set task.DailyFrequencyTime=""
set task.DailyIncrement=""
set task.DailyStartTime=$ZTimeh("01:00:00")
set task.DailyEndTime=""
set task.TaskClass="%SYS.Task.RunLegacyTask"
set task.Settings=$LB("ExecuteCode","do ^TEST") // RunLegacyTask の場合は ExecuteCode を設定
write task.%Save()
②タスクスケジュール参照のサンプル
※タスクスケジュールに登録された内容をプログラムで取得します。
USER>set task=##class(%SYS.Task).%OpenId(1) USER>zwrite tasktask=<object reference="">[14@%SYS.Task]
:
+----------------- attribute values ------------------
| %Concurrency = 1
| DailyEndTime = 0
| DailyFrequency = 0
| DailyFrequencyTime = ""
| DailyIncrement = ""
| DailyStartTime = 0
| DayNextScheduled = 63877
| DeleteAfterRun = 0
| Description = "毎日零時にジャーナルファイルの切り替えを行います"
:
// 個別に項目を参照したい場合は以下のように行います
USER>write $ZDT(task.DayNextScheduled)
11/21/2015
USER>write task.Name
ジャーナル切り替え
USER>