Hitachi

uCosminexus Batch Job Execution Server 使用の手引(Windows(R)用)


3.4.7 プログラムへのファイル割り当て機能

〈この項の構成〉

(1) DD要素の書き方

ジョブステップで実行するプログラムが利用するファイルを,あとから自由に変更できるように,ファイル名をジョブ定義XMLファイルで指定できる。

ジョブ定義XMLファイルでは通常のファイルの場合は,次に示すように指定する。

<DD NAME="DD名" TYPE="FILE" DSN="ファイルのパス名"/>

DD要素には,TYPE属性値に通常ファイルであることを示す"FILE"を指定し,DSN属性値にファイルのパス名を指定する。

同じSTEP要素内で実行するCOBOL2002で作成したプログラムからは,NAME属性に対応した名称を指定することで,このファイルのパス名をアクセスできる。これによって,プログラムを修正することなく,ジョブ定義XMLファイルを変更するだけで,プログラムからアクセスするファイルを変更して割り当てることができる。

(a) DSN属性の指定方法

DSN属性の指定値および設定ファイルのパラメータの指定によってアクセスするパス名の扱いを次の表に示す。

表3‒12 DSN属性の指定値および設定ファイルのパラメータの指定によってアクセスするパス名の扱い

DSN属性の値

パス名

ドライブレター:\[パス名\]ファイル名,または先頭が\\

絶対パスとして指定した絶対パスのファイルをアクセスする。

.\ または ..\

プログラムが実行しているカレントディレクトリ(ワーキングディレクトリ)からの相対パスのファイルをアクセスする。

${BJEX_DIR_任意名}\[パス名\]ファイル名

設定ファイルのBJEX_DIR_任意名で指定されたパス名置換識別子を相対パスとしたファイルをアクセスする。

上記以外

設定ファイルのPERMANENT_FILE_DIRで指定された特定のディレクトリからの相対パスのファイルをアクセスする。

(b) PERMANENT_FILE_DIRの指定方法

DSN属性に指定された相対パスは,設定ファイルのPERMANENT_FILE_DIRに指定されたパスからの相対パスとなる。

  • 設定ファイルの指定

    PERMANENT_FILE_DIR C:\home\test\
  • DD要素の指定

    <DD NAME="DD1" TYPE="FILE" DSN="dir1\file1" />
  • 設定される環境変数

    DDN_DD1=C:\home\test\dir1\file1

(c) BJEX_DIR_任意名の指定方法

設定ファイルに識別子とディレクトリを定義しておき,DSN属性に${と}で囲まれた識別子BJEX_DIR_xxxxを指定した場合,識別子BJEX_DIR_xxxxに指定されたパスからの相対パスとなる。

  • 設定ファイルの指定

    BJEX_DIR_xxxx C:\tmp\
  • DD要素の指定

    <DD NAME="DD1" TYPE="FILE" DSN="${BJEX_DIR_xxxx}dir1\file1" />
  • 設定される環境変数

    DDN_DD1=C:\tmp\dir1\file1

(2) DD要素をプログラムから使用する方法

ジョブ実行時にプログラムが入出力を行うファイルは,ジョブ定義XMLファイルのDD要素と対応づけができる。定義されたファイルのパス名は環境変数に設定されるため,プログラムから環境変数を参照してファイルを使用できる。

ジョブコントローラが設定する環境変数名は,DD要素のNAME属性に指定されたNAME値に文字列を付けた名称とする。付ける文字列は,EXEC要素に指定するプログラム言語によって異なる。環境変数の値を次の表に示す。

表3‒13 EXEC要素に指定するプログラム言語による環境変数

項目

プログラム言語

COBOL

指定なし

EXEC要素の指定

<EXEC PGM="UAP1" LANG="COBOL" />

<EXEC PGM="UAP1" />

環境変数名

先頭に"CBL_"を付けたDD要素名("CBL_" + DD要素名)

<DD NAME="ABC" />

環境変数名:CBL_ABC

先頭に"DDN_"を付けたDD要素名("DDN_" + DD要素名)

<DD NAME="ABC" />

環境変数名:DDN_ABC

環境変数の値

DSN属性値

DSN属性値

DD要素の記述例を次に示す(恒久ファイル用ディレクトリなしの場合)。

<EXEC PGM="UAP1" />
<DD NAME="DD1" DSN="C:\home\file1" />

上記例の場合に設定される環境変数を次に示す。この場合,環境変数DDN_DD1を参照して,C:\home\file1のファイルを使用できる。

DDN_DD1=C:\home\file1

(3) 環境変数に設定される内容

環境変数に設定される内容を次の表に示す。

表3‒14 環境変数に設定される内容

TYPE属性値

ファイル種別

環境変数に設定される内容

FILE

通常のファイル

DSN属性で指定されたファイルのファイル名

DIR

ディレクトリ

DSN属性で指定されたディレクトリのディレクトリ名

GDG

世代ファイル

相対世代番号に対応するファイルのファイル名

TEMP

一時ファイル

ジョブコントローラプロセスが作成した一時ファイルのファイル名

TEMPISAM

一時ISAMファイル

ジョブコントローラプロセスが作成した一時ファイルのファイル名

DATA

SYSINデータ

ジョブコントローラプロセスが作成した一時ファイルのファイル名

DUMMY

ダミーファイル

ジョブコントローラプロセスが作成した一時ファイルのファイル名

SYSOUT

SYSOUTデータファイル

作成したスプールファイルのファイル名

LIB

プログラム検索ディレクトリ

  • NAME属性で指定された環境変数

    DSN属性で指定されたディレクトリのディレクトリ名を,DD要素の出現順に";"(セミコロン)で区切った文字列である。

  • PATH環境変数

    NAME属性で指定された環境変数の文字列を,PATH環境変数でのプログラム検索パスの並びの先頭に付ける。

(4) 環境変数名を任意の名称に設定する方法

ジョブコントローラが設定する環境変数名を,先頭に"DDN_"または"CBL_"を付けない任意の名称とする場合,DD要素にRENAME属性を指定する。

COBOL2002の特殊な環境変数など,"DDN_"または"CBL_"で始まらない環境変数名を使用する場合は,RENAME属性を指定する。

RENAME属性を用いて,任意の環境変数名を指定する場合の記述例を次に示す。

<EXEC PGM="UAP1" />
<DD NAME="DD1" DSN="C:\home\file1" RENAME="ANYNAME" />

上記例の場合に設定される環境変数を次に示す。この場合,C:\home\file1のファイルを使用するための環境変数名は,"DDN_DD1"ではなく"ANYNAME"になる。

ANYNAME=C:\home\file1

RENAME属性を使用する場合の注意事項を次に示す。

(5) DSN属性への環境変数指定機能

DSN属性への環境変数指定機能は,設定ファイルのDSN_USE_ENVパラメータのオペランドに"YES"を指定して使用可能となる。DSN属性への環境変数指定機能を使用した場合,DD要素のDSN属性値に指定した環境変数を,その環境変数の値に置換する。

(a) 環境変数の指定方法

DSN属性値に"${"と"}"で囲んだ環境変数名を指定した場合,"${"から"}"までの文字列を環境変数の値に置換する。環境変数は,DSN属性値の任意の位置に指定できる。

DSN="…${環境変数名}…"
(凡例)

…:0文字以上の任意文字列を示す。

(b) 指定可能な環境変数名

DSN属性値に指定可能な環境変数名の一覧を次の表に示す。DSN属性値には,次の表に示す環境変数名以外を指定しないこと。

表3‒15 DSN属性に指定可能な環境変数

環境変数名

内容

BJEX_DIR_で始まる名称

バッチジョブ実行システムのパス名置換識別子。設定パラメータ内に指定されているパス名置換用識別子を必ず使用すること。設定パラメータ内に指定しないで,ジョブ実行時に指定しないこと。

JP1が設定する環境変数

内容については,JP1のマニュアルを参照のこと。

(c) 注意事項

  • DSN属性値に指定した環境変数がbjexecコマンド起動時に設定されていないとき,ジョブ定義XMLファイルの解析時にエラーとなる。

  • 環境変数は,bjexecコマンド起動時に設定されている値に置換される。ジョブ実行開始後にジョブステップで環境変数を設定したり,SETENV要素を用いて環境変数を設定したりしても,そこで設定した値には置換されない。

  • "${"と"}"の間には"${"を含めないこと。"${"と"}"の間に含まれる"${"は,環境変数指定の開始とは解釈されないで,通常の文字列として処理する。

  • "${"が存在するが,それに対応する"}"が存在しない場合,その"${"は環境変数指定の開始とは解釈しないで,通常の文字列として処理する。

  • DSN属性値の長さは,環境変数指定を含めて規定の長さの範囲内とすること。範囲外の指定をした場合,ジョブ定義XMLファイルの解析時にエラーとなる。DSN属性値の長さの範囲については,「9.ジョブ定義XMLファイル」を参照のこと。

  • 環境変数の指定を置換した結果のDSN属性値が規定の長さの範囲を超えた場合,ジョブ定義XMLファイルの解析時にエラーとなる。DSN属性値の長さの範囲については,「9.ジョブ定義XMLファイル」を参照のこと。