バッチジョブ定義では、定義中の特定箇所を置換えパラメタで記述しておき、ジョブ実行時に指定した値に置き換える機能を提供します。
この機能を利用することで、バッチジョブ定義を汎用的に使用できます。
また、置換えパラメタの予約語を使用することで、バッチジョブ定義内の特定箇所を時刻やジョブ名などで置き換えることができます。
置換えパラメタを指定できる項目について説明します。
置換えパラメタを指定できる入力項目
ジョブ定義
環境変数の[値]
ジョブステップ定義
バッチアプリケーション定義の環境変数の[変数値]
バッチアプリケーション定義のCOBOL用パラメタの[値]
バッチアプリケーション定義のC言語用パラメタの[値]
バッチアプリケーション定義のコマンド/スクリプト(ユーティリティ)用の[パラメタ]
資源定義の[ディレクトリ名]
資源定義の[ファイル名]
資源定義の[相対世代番号]
資源定義の[絶対世代番号]
資源定義の[使用容量]
プロシジャ呼出しステップ定義
基本情報の置換えパラメタの[値]
プロシジャ定義
基本情報の置換えパラメタの初期値の[値]
置換えパラメタの指定数
複数指定
以下の入力域は、1つの入力域に置換えパラメタを複数個指定できます。
資源定義の[ディレクトリ名]
資源定義の[ファイル名]
単一指定
上記の複数指定できる入力域以外は、置換えパラメタを1つだけ指定できます。
置換えパラメタ入力域の最大長
入力域の最大長
置換えパラメタを入力する入力域の最大長は、置換えパラメタを指定した場合と指定しない場合で異なります。それぞれの場合での入力域の最大長は以下のようになります。
置換えパラメタを指定しない場合の最大長は、入力域の最大長と同じです。
置換えパラメタ(単一)を指定する場合の最大長は以下のとおりです。
最大長 = 入力域の最大長 + 67(*) |
(*):67 = 64(置換えパラメタ1個の最大長) + 3(${}の文字数)
資源定義の[使用容量]、[相対世代番号]、[絶対世代番号]入力域では、置換えパラメタを指定した場合は、置換えパラメタ以外の文字は指定できないため、最大長は67となります。
置換えパラメタ(複数)を指定する場合の最大長は以下のとおりです。
最大長 = 入力域の最大長 + (67(*) × 置換えパラメタの指定できる最大数) |
(*):67 = 64(置換えパラメタ1個の最大長) + 3(${}の文字数)
置換えができるパラメタの入力域と指定できるパラメタの最大数/最大長
定義名 | 入力域 | 指定できる置換えパラメタの最大数 | 指定できる入力域の最大長 | ||
---|---|---|---|---|---|
大項目 | 中項目 | 置換えパラメタなし | 置換えパラメタあり | ||
ジョブ定義 | 環境変数定義 | 環境変数の値 | 1 | 1,024 | 1,091 |
ジョブステップ定義 | バッチアプリケーション定義 | 環境変数の値 | 1 | 1,024 | 1,091 |
COBOLアプリケーションのパラメタの値(符号なしの外部10進項目の場合) | 1 | 18 | 85 | ||
COBOLアプリケーションのパラメタの値(符号ありの外部10進項目の場合) | 1 | 19(*1) | 86(*1) | ||
COBOLアプリケーションのパラメタの値(英数字の場合) | 1 | 1,024 | 1,091 | ||
C言語アプリケーションのパラメタの値(short) | 1 | 2 | 69 | ||
C言語アプリケーションのパラメタの値(int) | 1 | 4 | 71 | ||
C言語アプリケーションのパラメタの値(longlong) | 1 | 8 | 75 | ||
C言語アプリケーションのパラメタの値(char) | 1 | 1024 | 1,091 | ||
ユーティリティのパラメタの値 | 1 | 1,024 | 1091 | ||
資源定義 | ディレクトリ名 | 10 | 255 | 925 | |
ディレクトリ名 | 10 | 64 | 734 | ||
ファイル名 | 10 | 255 | 925 | ||
相対世代番号 | 1 | 3 | 67 | ||
絶対世代番号 | 1 | 4 | 67 | ||
使用容量 | 1 | 4 | 67 | ||
プロシジャ呼出しステップ定義 | 基本情報 | 置換えパラメタの値 | 1 | 256 | 323 |
プロシジャ定義 | 基本情報 | 置換えパラメタの初期値 | 1 | 256 | 323 |
*1:データ型が符号ありの場合は、符号(“-”)を入力できるため、符号(“-”)を含めた長さです。
*2:入力域の最大長については“置換えパラメタ入力域の最大長”を参照してください。
置換えパラメタの値に指定できる最大数
置換えパラメタの値として指定できる数は以下のとおりです。
ジョブ定義
ジョブの投入時に指定する置換えパラメタの最大数:256
プロシジャ定義
プロシジャ呼出しステップ定義([プロシジャ定義の置換えパラメタ])から指定できる最大数:256
プロシジャ定義([置換えパラメタの初期値])から指定できる最大数: 256
置換えパラメタの値は、上記の数を超えて指定できないため、置換えパラメタの使用時は最大数を意識してください。
ジョブスケジューラ製品のSystemwalker Operation Managerより、事前にジョブネットに登録して実行するスケジュールジョブの場合、置換えパラメタを指定できる最大数は32個です。
置換えパラメタの指定形式は以下のとおりです。
${置換えパラメタ} |
入力域中に複数の置換えパラメタを指定します。
入力域中に1つだけ置換えパラメタを指定します。複数の置換えパラメタを指定した場合はエラーとなります。
置換えパラメタに指定できる文字
置換えパラメタ
入力文字数:1~64バイト(${}を除く)
文字種:半角英文字(大文字/小文字の区別あり)、半角数字、半角記号(“_”,“-”)
先頭は英文字
置換えパラメタの値
入力文字数:1~256バイト
文字種:入力した値がそのままパラメタ値として渡ります。
置換えパラメタに指定できない文字を設定した場合は、指定された文字どおりに取り扱い、置換えパラメタとして取り扱いません。
置換えパラメタに予約語を指定した場合は、置換えパラメタの値を指定する必要はありません。
置換えパラメタの値の入力文字数は、置換えパラメタを設定する入力域の最大長(置換えパラメタなし)に依存します。入力域の最大長については、“置換えができるパラメタの入力域と指定できるパラメタの最大数/最大長”を参照してください。
置換えパラメタの指定方法
ジョブ定義、ジョブステップ定義、およびプロシジャ呼出しステップ定義の置換えパラメタは、ジョブの投入時にパラメタとして指定します。ジョブの投入時に指定したパラメタと置換えパラメタの関係を以下に示します。
ジョブの投入時の指定では、プロシジャ定義中の置換えパラメタの指定を直接行うことはできません。プロシジャ内のジョブステップ定義の置換えパラメタは、プロシジャ定義またはプロシジャ呼出しステップ定義から指定します。
プロシジャ呼出しステップ定義の置換えパラメタの値に置換えパラメタを指定することで、プロシジャ内のジョブステップ定義中の置換えパラメタをジョブの投入時のパラメタ指定で置き換えられます。
置換えパラメタの置換順番
置換えパラメタの置換は以下の順に行います。
契機 | 順番 | 置換処理 |
---|---|---|
ジョブ投入時 | (1) | ジョブの投入時に指定した置換えパラメタを置換する。 |
(2) | ジョブ定義とジョブステップ定義の中で値が指定されていない置換えパラメタは空文字列(“”)に置換する。 | |
プロシジャ呼出し時 | (3) | プロシジャ呼出しステップ定義で指定した置換えパラメタを置換する。 |
(4) | プロシジャ定義で指定した置換えパラメタを置換する。 | |
(5) | プロシジャ内のジョブステップ定義の中で値を指定していない置換えパラメタは空文字列(“”)に置換する。 |
以下に置換えパラメタの指定から置き換えるまでの流れを示します。図中の数字は上記の表の順番に対応しています。
置換えパラメタには以下の予約語があります。置換えパラメタに予約語を指定することで、バッチジョブ定義中の特定箇所を時刻やジョブ名などに置き換えることができます。
SYSYEAR:ジョブ実行依頼時の年(西暦)に置き換えます。
置き換え後のフォーマットはYYYYです。(YYYY:西暦)
置き換え例を以下に示します。(指定したジョブを実行依頼した西暦が、“2006年”の場合)
${SYSYEAR} ⇒ 2006 |
SYSMONTH:ジョブ実行依頼時の年月に置き換えます。
置き換え後のフォーマットはYYYYMMです。(YYYY:西暦、MM:月)
置き換え例を以下に示します。(指定したジョブを実行依頼した月が、“2006年4月”の場合)
${SYSMONTH} ⇒ 200604 |
SYSWEEK:ジョブ実行依頼時の年週(*)に置き換えます。
置き換え後のフォーマットはYYYYWWです。(YYYY:西暦、WW:週の番号)
(*):年週とは、ISO8601で規定している年と週の番号を表します。
置き換え例を以下に示します。(指定したジョブを実行依頼した日時が、“2006年4月30日”の場合)
${SYSWEEK} ⇒ 200618 |
SYSDATE:ジョブ実行依頼時の年月日に置き換えます。
置き換え後のフォーマットはYYYYMMDDです。(YYYY:西暦、MM:月、DD:日)
置き換え例を以下に示します。(指定したジョブを実行依頼した日時が、“2006年4月30日”の場合)
${SYSDATE} ⇒ 20060430 |
SYSTIME:ジョブ実行依頼時の時分秒に置き換えます。
置き換え後のフォーマットはhhmmssです。(hh:時間、mm:分、ss:秒)
置き換え例を以下に示します。(指定したジョブを実行依頼した時刻が、“21時13分56秒”の場合)
${SYSTIME} ⇒ 211356 |
SYSJOBNAME:ジョブ名に置き換えます。
置き換え例を以下に示します。(指定したジョブ名が“JOB001”で実行した場合)
${SYSJOBNAME} ⇒ JOB001 |
SYSJOBDEF:ジョブ定義名に置き換えます。
置き換え例を以下に示します。(指定したジョブ定義名が、“JOBDEF01”の場合)
${SYSJOBDEF} ⇒ JOBDEF01 |
SYSSTEPNAME:ステップ名に置き換えます。ジョブステップの場合はジョブステップ名に置き換えます。プロシジャ呼出しステップの場合は、“プロシジャ呼出しステップ名.プロシジャ内のジョブステップ名”に置き換えます(間をピリオドで区切ります)。
ステップの情報であるためジョブ定義の環境変数の[値]としては使用できません。(値は設定されません。)
置き換え例を以下に示します。(指定したジョブステップ名が“STEP001”で実行した場合)
${SYSSTEPNAME} ⇒ STEP001 |
SYSJOBNO:ジョブ番号に置き換えます。
置き換え例を以下に示します。(指定したジョブがジョブ番号“00018”だった場合)
${SYSJOBNO} ⇒ 00018 |
予約語はシステムが置き換えるので、“置換えパラメタの設定ダイアログ”からは指定できません。指定すると[OK]ボタンを押したときにエラーダイアログが表示されます。
予約語は、大文字と小文字を区別します。
“SYS”で始まる文字列は、“置換えパラメタの設定ダイアログ”から指定できません。
資源定義の [相対世代番号]入力域および[絶対世代番号]入力域には、予約語は指定できません。
資源定義の [使用容量]入力域には、予約語は指定できません。
Systemwalker Operation Managerと連携する場合、Systemwalker Operation Managerが設定する置換えパラメタが使用できます。
Systemwalker Operation Managerが設定する置換えパラメタについては、“Interstage Job Workload Server セットアップガイド”の“Systemwalker Operation Managerと連携する場合”を参照してください。
置換えパラメタの値の指定例を以下に示します。(“${”から“}”までの部分が置換え対象となります。)
単一指定できる入力域に通常の置換えパラメタを指定した場合
置換えパラメタの値の指定:JOBNUMBER=job01
置き換え前の文字列:“${JOBNUMBER}”
置き換え後の文字列:“job01”
単一指定できる入力域に置換えパラメタの予約語を指定した場合
置換えパラメタの指定:なし
置き換え前の文字列:“${SYSTIME}”
置き換え後の文字列:“123456”
複数指定できる入力域に通常の置換えパラメタと予約語を指定した場合
置換えパラメタの指定:DATA=data1
置き換え前の文字列:“/home/mcbatch/data/${DATA}.${SYSDATE}”
置き換え後の文字列:“/home/mcbatch/data/data1.20050527”
置換えパラメタの指定:DATA=data1
置き換え前の文字列:“d:\mcbatch\data\${DATA}.${SYSDATE}”
置き換え後の文字列:“d:\home\mcbatch\data\data1.20050527”