PDSEデータセットではメンバーを世代で管理することができます。業務のアプリケーション・プログラムのソース・コードやジョブのJCLなどを更新する際に、世代メンバーとして保存すれば更新前後の内容を比較したり旧メンバーの内容に戻したりが容易です。
メンバーを世代管理するPDSEデータセットの作成
1 2 3 4 5 6 |
//ALLOCATE EXEC PGM=IEFBR14 //PDSELIB DD DISP=(,CATLG),DSN=dsname, // UNIT=SYSDA,VOL=SER=volume,SPACE=(CYL,(10,10,0)), // DSORG=PO,DSNTYPE=(LIBRARY,2),MAXGENS=32, // RECFM=FB,LRECL=80 // |
DSNTYPEにLIBRARYではなく、(LIBRARY,2)とPDSEバージョン2を明示します(IGDSMSxxでVersion2をデフォルトにしている場合もあるが、作成時に明示する方が間違いなくまた記録にもなる)。ISPF3.2で作成することもできます。
メンバーの世代管理
世代メンバーの保管
世代数が指定されたPDSEデータセットでは、内容が更新されたメンバーを保管する毎に世代が増えて行きます。データセット作成時に指定した最大世代数に達すると、最も古い世代の保管内容が削除されます。
古い世代メンバーの参照
メンバー・リスト・パネルで参照するメンバーを、行コマンドS(E、V、B)でメンバーを開く際にPromptフィールドに /(スラッシュ記号)を指定します。
エントリー・パネルが表示されたら「PDSE Generation」に世代番号を指定します。世代番号は、最新世代が0、1つ前の世代が-1、2つ前の世代が-2と続きます。
最新ではないメンバーが開かれると、編集画面上部に世代管理されたメンバーの編集セッションである旨のメッセージが表示されます。画面の例は、世代番号に -1 を指定した例です。13というのは13世代が保管されている意味ではなく最初からの通し番号です。最大世代数が10の時、相対世代-1の世代番号が13だとすれば、最も古い相対世代-10の世代番号は4です。最新のメンバーは相対世代0でそれを保管すると世代番号14から5が世代管理メンバーとして保管され世代番号4は削除されます。
最新ではない世代は「現行世代」と呼ばれます。エディターの省略時動作では、世代番号0の現行世代を更新した場合は次の新しい世代メンバーとして保管されますが、古い世代を明示して非現行世代メンバーを開きその内容を更新した場合は指定した世代番号のメンバーが更新されます。
省略時動作と異なる世代として保管するには ENDコマンド(PF3キー)で終了するのではなく、SAVEコマンドにNEWGEN|NOGENオプションを追加して保管します。「SAVE△NOGEN」は現行世代メンバーを新しい世代にせずに更新保管し、「SAVE△NEWGEN」は非現行世代メンバーの更新結果を最新世代として保管します。
現行世代メンバーを同じ世代のまま更新内容を保管します。
世代メンバーの複写、改名、削除
メンバー・リスト・パネルからメンバーの複写、改名や削除ができますが、いずれの操作も現行世代メンバーが対象です。改名や削除によって現行よりも古い世代メンバーは全て削除されます。複写も最新の現行世代メンバー内容だけがコピーされます。古い世代をコピーするには、一旦VIEWで古い世代内容を表示してCREATEコマンド等で出力先メンバーに書き出すなどの方法で行います。