3.9.1 世代ファイルの概要
給与ファイルや在庫ファイルなどの月ごとに更新されるファイルの旧ファイルと新ファイルや,旧バージョンと新バージョンでのプログラムの関係のように,互いに時間的または歴史的な関連を持った一連のファイルグループがある。これらのファイルグループは,1つのグループ名とその中の番号で参照ができ,このグループを世代データ群といい,その中の各ファイルを世代ファイルという。
世代データ群は,そのグループを識別する世代データ群名の基に登録され管理される。各世代ファイルは世代データ群名と世代番号によって識別される。
世代ファイル機能は,次の2種類がある。
-
相対世代番号指定機能
-
日付世代番号指定機能
(1) 相対世代番号指定機能
相対世代番号指定機能の世代番号は,絶対世代番号と相対世代番号で表す。
世代番号の指定は,相対世代番号で指定する。
(a) 絶対世代番号
各世代ファイルに対して,そのグループ内で一意的な絶対世代番号が与えられる。
絶対世代番号の形式は"Gnnnn"である。nnnnは世代番号を表し0000〜9999の数値の範囲となる。
各世代ファイルは,世代データ群名のあとに絶対世代番号を"."(ピリオド)で付加したファイル名で識別される。絶対世代番号でDD要素に記述はできない。
- <例>
-
世代データ群名が"ACCOUNT.X",世代番号0003のファイル名は,次に示すようになる。
ACCOUNT.X.G0003
(b) 相対世代番号
相対世代番号とは最新の世代ファイルの世代番号を0とし,これよりも古い世代ファイルの世代番号を負の整数,新しく登録する世代ファイルの世代番号を正の整数で表した相対的な世代番号である。
各世代ファイルは,世代データ群名のあとに相対世代番号を括弧でくくって付加したファイル名で識別される。
- <例>
-
ACCOUNT.Xを世代データ群名として次に示す順番で3つの世代ファイルを登録する。
-
ACCOUNT.X.G0001
-
ACCOUNT.X.G0002
-
ACCOUNT.X.G0003
次のジョブで各世代ファイルを相対世代番号を用いて参照する場合,ファイル名は次に示すようになる。
ACCOUNT.X(-2) ACCOUNT.X(-1) ACCOUNT.X(0)
-
また,正の相対世代番号は,現在登録している最新の世代ファイルの世代番号にこの数値を加えた世代番号を持つ新しい世代ファイルを登録したい場合,または該当するジョブ内の以前のステップで世代データ群に登録した世代ファイルを参照する場合に用いる。
例えば,上記の例でACCOUNT.X(+2)を指定して新しい世代ファイルを登録する場合,システムが自動的にACCOUNT.X.G0005の絶対世代番号を作成して登録する。
(2) 日付世代番号指定機能
世代番号の指定は,日付世代番号で指定する。
(a) 日付世代番号
日付世代番号指定機能を使用して世代ファイルを日付で管理するための世代番号である。日付世代番号の形式は,”EXD”※1または”Dyyyymmdd”※2である。各世代ファイルは世代データ群.Dyyyymmddの形式で登録される。
- <例>
-
ACCOUNT.Xを世代データ群名とする世代ファイル
-
ACCOUNT.X.D20130611
-
ACCOUNT.X.D20130613
-
ACCOUNT.X.D20130615
-
各世代ファイルを,日付世代番号を用いて参照する場合,ファイル名は次に示すようになる。
-
EXDを指定する場合
次のようにルートジョブネットの実行開始予定日(EXD)を基準とし,これより古い世代ファイルをEXDに負の整数を付けて指定する。
ACCOUNT.X(EXD-2)
ACCOUNT.X(EXD-1)
ACCOUNT.X(EXD)
ただし,EXDに付けた-1や-2は,EXDに格納された日付の1日前,2日前という意味ではなく,1世代前,2世代前という意味である。例えば,上記の例で実行開始予定日が2013年6月15日の場合,ACCOUNT.X(EXD-1)を指定すると,ACCOUNT.X.D20130613を指定することとなる。
注※1 世代ファイルを日付で指定するために使用する環境変数「AJSEXDATE」に設定される日付に対応した世代ファイルを指定する際に使用する。AJSEXDATEは,JP1/AJSから実行されるルートジョブネット実行時に設定される環境変数であり,JP1/AJSからバッチジョブを起動するとジョブネットの実行開始日が設定される。ジョブネットの実行が遅延したり,翌日に再実行したりした場合でも,当初の実行予定日が設定される。この環境変数が設定されていない場合,EXDによって世代ファイルを指定することはできない。詳細については,JP1のマニュアルを参照のこと。
注※2 yyyy:西暦,mm:月,dd:日
本機能は,通常はEXDを指定することによって使用する機能だが,障害時など例外的に特定の日付を指定したい場合,Dyyyymmddを指定することで直接日付を指定することができる。
-
Dyyyymmddを指定する場合
ACCOUNT.X(D20130611)
ACCOUNT.X(D20130613)
ACCOUNT.X(D20130615)
(3) 世代データ群を構成するファイル
世代データ群を使用する場合,世代ファイルの割り当てに先立ち,世代管理ファイルを用意する必要がある。
-
世代管理ファイルの作成
世代管理ファイルはbjexgdgコマンドによって生成し,次に示すファイルによって構成される。
-
"世代データ群名.gdg"
-
".世代データ群名.gdg"
世代で管理する世代ファイルは,相対世代番号指定機能と日付世代番号指定機能で次のようになる。
-
相対世代番号指定機能
世代データ群名に".Gnnnn"を付けたファイル名(nnnnは0000〜9999の数値)
-
日付世代番号指定機能
世代データ群名に".Dyyyymmdd"を付けたファイル名(yyyy:西暦,mm:月,dd:日)
また,各世代ファイルは世代管理ファイルと同一ディレクトリに作成される。世代管理ファイルと世代ファイルが別々のディレクトリに点在している場合,これらのファイルでは世代管理ができなくなるため,必ず同一ディレクトリに配置する。
-
-
世代管理ファイルの削除
不要となった世代管理ファイルは,bjexgdgコマンドで削除できる。