ジョブネット内のジョブ間で、共通で利用したい情報をジョブネット変数として受け渡し、後続ジョブで利用することができます。例えば、ジョブが待ち合わせたメッセージ事象やファイル名の情報をジョブネット変数として受け渡すことによって、以降のジョブの実行処理内容を変えて、それぞれに対応した個別の処理をさせるなど柔軟な業務運用が行えます。
ジョブネット変数の利用の流れ
ジョブの定義でジョブネット変数の設定を行うと、ジョブの出力情報から“文字列(NAME)=文字列(VALUE)”形式の行が、ジョブネット変数として利用できます。
加えて、同一ジョブネット内の後続ジョブにおいて、ジョブネット変数を利用する定義を行います。後続ジョブでは、ジョブネット変数を業務に合わせて自由に利用することができます。
ジョブネット変数を利用するジョブでは、実行時にジョブネット変数値に置き換えたい箇所を“@ジョブネット変数名@”の形式で記述することで、ジョブ実行時に自動的に、設定済のジョブネット変数値に置き換わり動作します。
以下に、ジョブネット内のジョブでジョブネット変数を定義する場合のジョブネット変数を設定するジョブ/利用するジョブの定義、動作および結果についてのイメージを示します。
ジョブネット変数は、同一ジョブネット内のジョブ間で利用することができます。ジョブネット変数は、ジョブネット内のジョブ間で共有され、ジョブネットごとに独立して扱うことができる変数です。階層化されたジョブネットの場合も、親ジョブネットと子ジョブネットとの間でジョブネット変数が利用できます。
ジョブネット変数には以下の種類があります。
ジョブの出力情報から得られるジョブネット変数
ジョブネット実行中に動的に書き換えられる情報です。
システムが自動で設定するジョブネット変数
あらかじめ変数名および変数値が決められた情報です。可変パラメタも含まれます。ジョブネットの実行中に書き換えることはできません。
ジョブの出力情報から得られるジョブネット変数について
ジョブの実行結果として“文字列(NAME)=文字列(VALUE)”形式の行を出力させると、後続ジョブで“@ジョブネット変数名@”形式の記述箇所を“文字列(VALUE)”に置き換えて利用させることが可能です。このようにジョブの実行結果から得られる可変情報を扱うジョブネット変数について説明します。
ジョブネット変数名
ジョブネット変数名は、以下の形式です。
ジョブネット変数のプレフィックス+“.”+文字列(NAME) |
ジョブネット変数名と変数値の例
定義可能な文字列
ジョブネット変数名とジョブネット変数値に定義可能な文字列は、以下のとおりです。
種類 | 定義可能な文字列 |
---|---|
ジョブネット変数のプレフィックス | 13バイト以内の半角英数字の文字列 |
変数名 | 半角英数字および“_”(半角アンダーバー)で構成される、1~50バイトの文字列 |
ジョブネット変数値 | 0~512バイトの文字列(注) |
注:ジョブネット変数の値には、起動するジョブの定義内にある“@変数名@”が置き換えられた
ときに、その定義項目の使用不可文字が使われたり、文字列長の上限値を超えることが
ないようにしてください。置き換えの結果、ジョブの定義が不正になった場合には、
ジョブは実行されず異常終了となります。
ジョブネット変数の制限値
ジョブネット内でジョブの出力情報から取り込むことができるジョブネット変数は、640個までです。
階層化されたジョブネットの場合、使用できるジョブネット変数の上限は、親ジョブネットと子ジョブネットで合わせて640個までです。
システムが自動で設定するジョブネット変数について
システムが自動で設定するジョブネット変数は、変数名が固定です。変数値はジョブネット/ジョブごとに固有に設定され、ジョブネット実行中に値が変わることはありません。システムが自動で設定するジョブネット変数には、以下の種類があります。
システムが自動で設定するジョブネット変数
変数名 | 変数値 |
---|---|
@.VPARAM@ | “可変パラメタ”です。ジョブネットを起動するごとに指定できる可変の情報です。可変パラメタの値が設定されていない場合は、空文字列に置き換えられます。 |
@.PROJECT@ | 実行するジョブが登録されているプロジェクト名です。 |
@.JOBNET@ | 実行するジョブが登録されているジョブネット名です。 |
@.JOBNAME@ | ジョブの登録情報の[ジョブ名]が登録されている場合、そのジョブ名です。 |
@.SUB_SYSTEM@ | [SE版] |
@.MASTER_PROJECT@ | [SE版] |
ジョブでジョブネット変数を設定する方法について説明します。
ジョブネット変数を設定するジョブの定義
ジョブネット変数を設定するためのジョブの作成および定義において必要な作業は、以下のとおりです。
ジョブ(実行ファイル)を作成
実行時に変数および値を“文字列(NAME)=文字列(VALUE)”形式で出力させるようなジョブを作成します。
[登録-ジョブ]ウィンドウでの設定
[基本情報]シート
[標準出力/エラー出力を保存しない]のチェックをはずす
チェックがされていた場合、ジョブ出力情報が出力されないため、ジョブネット変数が設定されません。
[詳細情報]シート
[ジョブの出力情報の"NAME=VALUE"形式の行をジョブネット変数に設定する]にチェック
[ジョブネット変数のプレフィックス]にジョブ固有の値を設定
図4.48 [登録-ジョブ]ウィンドウ-[基本情報]シート
図4.49 [登録-ジョブ]ウィンドウ-[詳細情報]シート
ジョブネット変数に設定可能なジョブについて
ジョブネット変数は、前述の定義可能な文字列に従って自由に設定することができます。
また、Systemwalker Operation Managerが提供している、待ち合わせジョブと一部の判定ジョブは、ジョブネット変数に利用可能な形式“文字列(NAME)=文字列(VALUE)”で情報を出力します。これらのジョブの種類、変数名および出力される値について説明します。
各情報は、標準出力に“変数名=出力される値”の形式で出力されます。
ファイル待ち合わせジョブ/ファイル存在判定ジョブ(chkfile/jobschchkfileコマンド)
変数名 | 出力される値 | 出力される場合 |
---|---|---|
CF_FILENAME | 変更があったファイルのファイル名(フルパス表示) | 作成(-fwait)/削除(-fdelete)/更新(-fupdate)/サイズ変更(-fsize)のいずれかが指定された場合 |
CF_CHKTYPE | 変更の種類 | 作成(-fwait)/削除(-fdelete)/更新(-fupdate)/サイズ変更(-fsize)のいずれかが指定された場合 |
CF_FILESIZE | ファイルサイズ(バイト) | 作成(-fwait)/更新(-fupdate)/サイズ変更(-fsize)のいずれかが指定された場合 |
CF_FILEYEAR | ファイルの更新年“yyyy” | 作成(-fwait)/更新(-fupdate)/サイズ変更(-fsize)のいずれかが指定された場合 |
CF_FILEDATE | ファイルの更新日付“mmdd” | 作成(-fwait)/更新(-fupdate)/サイズ変更(-fsize)のいずれかが指定された場合 |
CF_FILETIME | ファイルの更新時分“hhmm” | 作成(-fwait)/更新(-fupdate)/サイズ変更(-fsize)のいずれかが指定された場合 |
メッセージ事象待ち合わせジョブ(jobschchkmsgevtコマンド)
変数名 | 出力される値 | 出力される場合 |
---|---|---|
CM_MSGEVENT | 発生したメッセージ事象名 | 必ず出力されます |
CM_PRJNAME | メッセージ事象が発生したプロジェクト名 | プロジェクト名が指定されて、メッセージ事象が発生した場合 |
CM_NETNAME | メッセージ事象が発生したジョブネット名 | ジョブネット名が指定されてメッセージ事象が発生した場合 |
CM_VPARAM | メッセージ事象発生時に指定された可変パラメタ | 可変パラメタが指定されて、メッセージ事象が発生した場合 |
CM_EVLOGSRC | メッセージテーブルで定義した、イベントログのソース名 | メッセージテーブルの定義により、メッセージ事象が発生した場合 |
CM_EVLOGEID | メッセージテーブルで定義した、イベントログのイベントID | メッセージテーブルの定義により、メッセージ事象が発生した場合 |
CM_MAILFILE | メール受信によるメッセージ事象のメールファイル名 | メール受信により、メッセージ事象が発生した場合 |
ログファイル解析ジョブ(jobschchecklogコマンド)
変数名 | 出力される値 | 出力される場合 |
---|---|---|
CL_FILENAME | -fオプションに指定した解析対象のログファイル名 | -hまたは-vオプションが指定された場合は、出力されません |
CL_LOGCOUNT | 解析した結果、条件に合致した行の数 | -hまたは-vオプションが指定された場合は、出力されません |
CL_LOGTEXT | 解析した結果、条件に合致した中で最後に合致した行の内容 | 以下の条件の場合、出力されません。 |
時刻待ち合わせジョブ(jobschchecktimeコマンド)
変数名 | 出力される値 | 出力される場合 |
---|---|---|
CT_WTIME | 指定された待ち合わせ時刻“hhmm” | 必ず出力されます |
CT_LTIME | 指定された最大待ち合わせ時刻“hhmm” | -ltオプションが指定された場合 |
指定時間待ち合わせジョブ(jobschsleepコマンド)
変数名 | 出力される値 | 出力される場合 |
---|---|---|
SL_SLEEPSEC | 指定された待ち合わせ時間(秒) | 必ず出力されます |
ジョブネット変数の設定について
ジョブの終了状態が“正常終了”、“疑似正常”以外の場合は、ジョブ出力情報が出力されていても、ジョブネット変数は設定されません。
ジョブネット実行中に、先行ジョブによって設定済のジョブネット変数名と同名のジョブネット変数の変数値が後続ジョブによって設定された場合、ジョブネット変数値は上書きされます。
ジョブが異常終了して再起動される場合、ジョブネット変数は最新の変数値で置き換えられます。
ジョブネット変数名を記述して後続ジョブを定義することで、ジョブネット変数に設定された値を後続ジョブで利用することができます。
ジョブネット変数を利用する側のジョブの定義について説明します。
ジョブネット変数を利用するジョブの定義
[登録-ジョブ]ウィンドウで、ジョブの実行時にジョブネット変数値に置き換えて実行させたい項目にジョブネット変数を定義しておきます。
図4.50 [登録-ジョブ]ウィンドウ-[基本情報]シート
ジョブネット変数(@変数名@)の利用について
ジョブネット変数を利用する場合は“@変数名@”の形式で記述します。
ジョブネット変数“@変数名@”は、以下の項目で利用できます。なお、変数を指定する項目の上限値はありません。複数の項目に指定することも、1項目内に変数を複数指定することも可能です。
[基本情報]シート
コマンド
パラメタ
ディレクトリ
依頼ホスト名
キュー名
[詳細情報]シート
実行ユーザ名
標準出力ファイル名
標準エラー出力ファイル名
環境変数の変数値([環境変数の設定]ウィンドウの[変数値])
ジョブ定義変数と併用することができます。
以下のジョブでは、変数を使用できません。
Interstage属性のジョブ
PowerAIM属性のジョブ
旧バージョン互換(旧・標準)属性のジョブ
バッチフレームワークジョブ
以下のジョブについては、[基本情報]シートの項目に対して変数を使用できません。
グローバルサーバMSPジョブ
グローバルサーバXSPジョブ
ジョブネット変数値について
ジョブネット変数名が設定されていない“@変数名@”形式の文字列については、置き換わらずに“@変数名@”形式の文字列がそのまま扱われます。
ジョブネット変数値に“@変数名@”形式の文字列が存在していた場合、これらはジョブネット変数、ジョブ定義変数、および可変パラメタの変数として扱われません。通常の文字列として扱われます。例えば、ジョブネット変数「JOB.a」の値が「aa @JOB.b@ cc」、ジョブネット変数「JOB.b」の値が「dd」だった場合、「@JOB.a@」の置き換え結果は「aa @JOB.b@ cc」になります。
ジョブネット変数の値には、起動するジョブの定義内にある“@変数名@”が置き換えられたときに、その定義項目の使用不可文字が使われたり、文字列長の上限値を超えることがないようにしてください。置き換えの結果、ジョブの定義が不正になった場合には、ジョブは実行されず異常終了となります。
利用したジョブネット変数値の確認
ジョブネット変数を利用するジョブでは、実行時にジョブネット変数が変数値に置き換わって動作します。実際に置き換わったジョブネット変数の値は、[監視-ジョブ]ウィンドウ-[前回履歴]シートで確認することができます。
図4.51 [監視-ジョブ]ウィンドウ-[前回履歴]シート
ジョブ実行時にジョブネット変数として利用された情報です。ジョブの定義内にジョブネット変数“@変数名@”を使用していない場合は表示されません。
システムが自動で設定するジョブネット変数については、常に表示されません。
可変パラメタ起動で指定したパラメタ情報は、ジョブの定義で使用されているかどうかに関わらず、表示されます。
参考
ジョブネット変数判定ジョブを利用する
先行ジョブの実行時に設定されたジョブネット変数の変数値が、想定した文字列や数値であるかどうかを、ジョブネット変数判定ジョブによって判定することができます。
ジョブネット変数判定ジョブによる判定を実施した結果によって、後続ジョブの処理を切り分けるなどに利用できます。
ジョブネット変数判定ジョブでは、以下の比較が可能です。
文字列の比較判定
変数値が比較文字列と一致/不一致、または比較文字列を含む
数値の比較判定
変数値が指定値と一致/不一致、または、大きさの比較
数値の範囲判定
変数値が指定値1と指定値2の範囲に含まれるかどうか
なお、ジョブネット変数判定ジョブで、システムが自動で設定するジョブネット変数を判定することはできません。
参考
ジョブネット変数情報ファイルについて
ジョブネット変数の取り込み結果やジョブ実行時の変数情報は、“ジョブネット変数情報ファイル”に格納されます。ジョブの異常終了時などにジョブネット変数に関する調査が必要な場合、ジョブネット変数情報ファイルを直接参照してください。ジョブネット変数情報ファイルで確認できる情報は以下のとおりです。
各ジョブがジョブの出力情報から取り込んだ変数
各ジョブがジョブ実行時に利用した変数
ジョブネット終了時点における変数の一覧
ジョブネット変数情報ファイルは、ジョブネット実行中に随時更新されるファイルです。ジョブネットが実行中の間は、対象のジョブネット変数情報ファイルを参照しないでください。
ジョブネット変数情報ファイルについて詳細は、“Systemwalker Operation Manager リファレンスマニュアル”を参照してください。