ジョブ

最終更新日: 2022年6月13日

ジョブを用意する

「スクリプト」タブ内の「ジョブ」を開きます。

ジョブの作成(1)

ギアアイコンから「新規」作成を行います。

ジョブの作成(2)

スクリプト名と概要を入力します。

スクリプト名と概要を入力する

「編集」ボタンをクリックすると、ジョブを作成するダイアログが開きます。

ブロックでジョブを作成する

作成できるジョブの上限

作成できるジョブの上限はありません。ジョブはいくつでも用意することができます。

ジョブアカウントの準備

jobadminアカウントとは

Wagbyは標準でジョブ実行専用アカウント "jobadmin" が用意されています。はじめに、このjobadminアカウントを有効にします。

このアカウントは次の特徴があります。

  • 「パスワード有効日数」の制約から除外される。
  • ログオン画面からのログオンは行えない。(ジョブ実行専用であるため)

詳細

システム管理者を含む一般のアカウントは「パスワード有効日数」の制約を受けます。(標準では 90 日が設定されています。これは 90 日毎にパスワードを変更するという運用になります。)

ジョブ専用アカウント "jobadmin" は、パスワード有効日数が無効化されます。これによって、パスワードの定期的な変更を忘れたためにジョブが動作しなくなるというトラブルを回避できます。

さらに、このアカウントは同一ログオンアカウントでシステムにログオンできる最大数が無制限になります。

「ジョブ専用アカウント」プリンシパルを持つユーザーが多重ログオン無制限となるわけではありません。ジョブ実行時のみに限定されます。

設定方法

ビルドしたアプリケーションに、システム管理者でログオンします。管理処理メニューから「アカウント一覧表示」を選びます。

アカウント一覧表示

jobadminアカウントを選びます。

jobadminアカウントを選ぶ

標準ではjobadminアカウントの「アカウントロック情報」に "無効" という文字列がセットされています。この項目に何らかの値がセットされているとき、このアカウントは無効となります。ここを空欄にすることで jobadmin アカウントが利用できるようになります。

jobadminアカウント

更新画面を開きます。

jobadminアカウントの設定(1)
jobadminアカウントの設定(2)

保存します。

jobadminアカウントの設定(3)

ジョブスケジュールの設定

Designerで作成したジョブを、指定した日付時刻に起動するような設定を行います。

システム管理者でログオンし、管理処理メニューから「ジョブ管理...」を選びます。

ジョブ管理メニュー

「ジョブスケジュール検索」を選びます。

ジョブスケジュール検索

最初は1件もデータがありません。「登録画面へ」ボタンをクリックします。

ジョブスケジュールの新規登録へ

ジョブスケジュールの新規登録を行います。

  • 「スクリプト名」の欄で、Designerで作成したスクリプトを選択します。
  • 「有効」の欄をチェックします。この値がチェックされているジョブはスケジュール実行の対象になります。一時的にこのジョブを実行させたくない場合は、このチェックを外してください。
  • 「ジョブを実行するアカウント」に jobadmin と指定します。パスワードも同時に入力します。
ジョブスケジュールの新規登録

実行タイミングの指定

指定した日付時刻にジョブを実行するように設定します。標準では「毎日、深夜0時0分0秒」に実行されるようになっています。

ジョブ起動時間

秒だけを指定すると、毎秒実行するジョブになります。「秒」の入力欄をマウスでダブルクリックすると次の設定ダイアログが開きます。

秒の指定
設定欄説明
任意 0秒から59秒まで、となります。入力欄には "*" が設定されます。
特定のタイミング 指定した秒になったとき、実行されます。標準では "0" となっています。
インターバル 何秒おき、という指定です。10秒おきとすると入力欄には "0/10" が設定されます。
期間(範囲)指定 何秒目から何秒目まで、という指定です。0秒〜10秒とすると入力欄には "0-10" が設定されます。

分と秒を指定すると、毎時何分何秒に実行するという指定を行うことができます。

「分」の入力欄をマウスでダブルクリックすると次の設定ダイアログが開きます。

分の指定
設定欄説明
任意 0分から59分まで、となります。入力欄には "*" が設定されます。
特定のタイミング 指定した分になったとき、実行されます。標準では "0" となっています。
インターバル 何分おき、という指定です。10分おきとすると入力欄には "0/10" が設定されます。
期間(範囲)指定 何分目から何分目まで、1分おき、という指定です。0分〜10分とすると入力欄には "0-10" が設定されます。

時分秒を指定すると、毎日何時何分何秒に実行するという指定を行うことができます。(日次ジョブとなります。)

「時」の入力欄をマウスでダブルクリックすると次の設定ダイアログが開きます。

時の指定
設定欄説明
任意 0時から23時まで、となります。入力欄には "*" が設定されます。
特定のタイミング 指定した時刻になったとき、実行されます。標準では "0" となっています。
インターバル 何時間おき、という指定です。1時間おきとすると入力欄には "0/1" が設定されます。
期間(範囲)指定 何時から何時まで、という指定です。9時〜18時とすると入力欄には "9-18" が設定されます。

日と時分秒を指定すると、毎月何日(の指定時刻)に実行されます。(月次ジョブとなります。)「日」と「曜日」を同時に指定することはできません。どちらか一方を「?」にしてください。

「日」の入力欄をマウスでダブルクリックすると次の設定ダイアログが開きます。

日の指定
設定欄説明
任意 1日から31日まで、となります。入力欄には "*" が設定されます。標準はこの設定となっています。
特定のタイミング 指定した日になったとき、実行されます。さらに「平日のみ」をチェックすることで土・日の実行を行わないようにすることもできます。
インターバル 何日おき、という指定です。3日おきとすると入力欄には "1/3" が設定されます。
期間(範囲)指定 何日から何日まで、という指定です。1日〜10日とすると入力欄には "1-10" が設定されます。

月、日と時分秒を指定すると、毎年、毎月何日(の指定時刻)に実行されます。年に一度動作するジョブ(年次ジョブ)を指定できます。

「月」の入力欄をマウスでダブルクリックすると次の設定ダイアログが開きます。

月の指定
設定欄説明
任意 1月から12月まで、となります。入力欄には "*" が設定されます。標準はこの設定となっています。
特定のタイミング 指定した月になったとき、実行されます。
インターバル 何月おき、という指定です。3ヶ月おきとすると入力欄には "1/3" が設定されます。
期間(範囲)指定 何月から何月まで、という指定です。1月〜6月とすると入力欄には "1-6" が設定されます。

曜日

曜日を指定します。「日」と「曜日」を同時に指定することはできません。どちらか一方を「?」にしてください。標準では曜日が「?」となっています。

「曜日」の入力欄をマウスでダブルクリックすると次の設定ダイアログが開きます。

曜日の指定
設定欄説明
任意 任意の曜日となります。入力欄には "?" が設定されます。標準はこの設定となっています。
曜日 実行したい曜日をチェックします。複数の曜日をチェックすることができます。入力欄には日曜日を "1" とし、土曜日を "7" としたコンマ区切りで表示されます。

「年」の入力欄をマウスでダブルクリックすると次の設定ダイアログが開きます。

年の指定
設定欄説明
任意 任意の年となります。入力欄には "*" が設定されます。標準はこの設定となっています。
特定のタイミング 指定した年になったとき、実行されます。このシステムの運用中、一度だけ実行されるジョブになります。
インターバル 起点となる年と、何年おき、という指定を行います。
期間(範囲)指定 何年から何年まで、という指定です。

各単位で使用できる数字一覧

単位 値の範囲 使用できる文字
0-59 , - * /
0-59 , - * /
0-23 , - * /
1-31 , - * ? /
1-12 , - * /
曜日 1-7 , - * ? /
指定しない。あるいは2099までの年号(西暦) , - * /

各単位で使用できる文字の一覧

使用できる文字の使い方は次のとおりです。

文字 使い方 備考・例
* 値の範囲すべて 例えば「分」を「*」にすると、0分から59分まで、になります。
? 特定の値を示さない 「日」「曜日」にのみ指定できます。「日」を設定した場合、「曜日」は "?" としてください。「曜日」を設定した場合、「日」は "?" としてください。両方に "?" と記載することはできません。
- 範囲 例えば「時」を「9-17」にすると、9時から17時(午後5時)まで、になります
, 値の列挙 例えば「月」を「3,9」にすると、3月と9月、になります。
/ 値の増分 例えば「分」を「0/20」にすると、0分、20分、40分、になります。 また「分」を「5/20」にすると、5分、25分、45分、になります。 「*/20」の場合、「*」は0と見なされます。
L 最終日(Last) 「日」「曜日」にのみ指定できます。例えば「日」を「L」にするとその月の最終日(1月なら1月31日、うるう年でない年2月なら2月28日)となります。また「曜日」を「L」にすると土曜日になります。さらに曜日との組み合わせで、その月の最後の、指定した曜日になります。例えば「6L」はその月の最終金曜日になります。
W 平日(月曜から金曜まで) 「日」にのみ指定できます。 例えば「15W」とした場合、15日に最も近い平日になります。したがって15日が土曜日であれば14日、また日曜日であれば16日になります。しかし「1W」とした場合で、かつ1日が土曜日の場合、前月の金曜日ではなく、その月の3日になります。「W」は、範囲や列挙との組み合わせでは使用できません。特定の日との組み合わせでのみ使用できます。
# 第 n 曜日 「曜日」にのみ指定できます。「4#2」とすると第2水曜日になります

設定例

1分おきに実行する

毎分 0 秒になると実行されます。

単位 曜日
0 * * * * ? *

5分おきに実行する

単位 曜日
0 0/5 * * * ? *

30分おきに実行する

単位 曜日
0 0,30 * * * ? *

毎日9時と17時に実行する

単位 曜日
0 0 9,17 * * ? *

毎週土曜日の午前0時30分に実行する

単位 曜日
0 30 0 ? * 7 *

月の日が3の倍数の日(3,6,9,12,15,18,21,24,27,30)の午前8時30分に実行する

単位 曜日
0 30 8 3/3 * ? *
※ この設定は、ひと月の日数が28,29,31日の月(1,2,3,5,7,8,10,12月)は月末の実行と翌月の月初めの実行の間隔が三日おきではなくなります。

今すぐ実行する

「今すぐ実行」ボタンを押すと、すぐにジョブがスケジュールされ、実行されます。ジョブの動作確認で利用できます。

今すぐ実行

ジョブの動作の確認

管理処理メニューから「システムログ閲覧」を開きます。タイプ "INFO" とし、キーワードに "ジョブ" と指定することで、実行されたジョブを確認することができます。

システムログ閲覧

ジョブにパラメータを渡す

実行するジョブにパラメータを渡すことができます。「ジョブパラメータ」の欄で「追加」ボタンをクリックし、キーと値を設定します。

キーの部分にはparam:という文字列を先頭に加えてください。この接頭語がない場合、スクリプトでパラメータを受け取ることができません。

パラメータの設定

「今すぐ実行」をクリックすることで、パラメータ付きのジョブの動作を確認することができます。

今すぐ実行

ここではジョブパラメータの値をシステムログに出力させた例を示します。(スクリプトの書き方は次の節で説明します。)

管理処理メニューから「システムログ閲覧」を開きます。

システムログ閲覧

ログの検索条件を次のように指定します。ジョブ内での「ログ出力」に絞り込まれた結果が表示されます。

検索条件
タイプ INFO
キーワード SCRIPT
タイプINFO、キーワードSCRIPTで検索する

ログへの出力

上で説明したログ出力を行うブロックの使い方を説明します。

ジョブスクリプトを設定する際、文ブロック群から「ログに〜を出力」ブロックを選択し、ワークスペースに配置します。

ログに〜を出力ブロック

ジョブパラメータとして渡される変数は、ジョブブロック群の変数ブロックを使います。

ジョブパラメータ

ジョブパラメータの設定でparam:の文字列を、ジョブパラメータ変数名として使うことができます。

ジョブパラメータの設定

仕様・制約

  • ジョブの多重実行を行うことはできません。あるジョブを 1 分毎に起動させるようにした場合、1 分後にこのジョブの実行が終了していなければ、新しいジョブは実行されません。
  • 過去の日付をスケジューリングすることはできません。(指定しても無視されます。)
  • 「曜日」の範囲は1-7 です。(0-6 ではありません。)
  • 「日」と「曜日」を同時に指定することはできません。どちらか一方を「?」にしてください。(両方を「?」とすることはできません。)
  • 現在時刻からN分後、というような指定はできません。24時間のうち指定を行った時間(HH時mm分ss秒)にジョブが実行されるという動作となります。