動的 PDS

MSS では、PDS の各メンバーは独立した物理 PC ファイルとして実装されます。デフォルトでは、そのようなメンバーごとに別々のカタログ エントリを作成し、物理ファイルのファイル名を付ける必要がありますが、これは、PDS に非常に多くのメンバーが含まれている場合は実用的でありません。動的 PDS を使用すると、これを回避できます。

動的 PDS を定義するには、カタログ エントリを 1 つだけ作成します。ESMAC の [Catalog Entry] ページで、[DS Org] フィールドを [PO] に設定してから、[Dynamic PDS] の脇にチェック マークを付けます。これにより、[Physical Filename] フィールドおよび [PDS Exts] フィールドが有効になります。[Physical File] フィールドに入力する値は、既存のディレクトリの名前であるとみなされます。PDS のメンバーは、このディレクトリ内の個別物理ファイルとして実装されます。

[Physical Filename] フィールドは、Windows ではバックスラッシュ ("\")、UNIX ではスラッシュ ("/") で終わる必要があります。カタログ エントリの場合と同様に、このフィールドではフル パスを指定しなければなりません。「<CATALOGFOLDER>」という文字列を使用すると、カタログが格納されているディレクトリを表すことができます。
制約事項: [Physical Filename] では、その他の形式 (環境変数を含むパスなど) はサポートされていません。

[PDS Exts] フィールドでは、スペースで区切られた 1 つ以上のファイル名拡張子を指定します。PDS メンバーを作成すると、そのメンバーの名前をベース名、このフィールドの最初のエントリをファイル名拡張子として使用した名前が物理ファイルに付けられます。

UNIX では、動的 PDS で使用されるメンバー名はすべて大文字でなければなりません。そのため、小文字のメンバー名を使用したファイルは検出されません。

次の値を使用してカタログ エントリを定義するとします。

フィールド
[DS Name] SOURCE.PDS
[Physical File] <CATALOGFOLDER>\PAYROLL\
[DS Org] PO
[Dynamic PDS] オン
[PDS Exts] CBL CPY

ここでは、カタログ フォルダーは C:\CATALOG です。さらに次の JCL を実行します。

/FILE1	   DD DSN=SOURCE.PDS(PAYUPD),DISP=OLD
/FILE2	   DD DSN=SOURCE.PDS(PAYREP),DISP=OLD

ここでは、SOURCE.PDS がすでに存在するため、DISP=OLD になっていることに注目してください。この JCL は、ES_OLD_DYN_PDS=Y が設定されていれば、PAYUPD.CBL および PAYREP.CBL という物理ファイルを C:\CATALOG\PAYROLL ディレクトリに作成します。また、この JCL は、これらの個別 PDS メンバー (DSOrg=PDSM) に対するカタログ エントリを自動的に作成します。ES_OLD_DYN_PDS=N (デフォルト) が設定されている場合は、「JCL での動的 PDS の作成」で説明しているものと同様の JCL を実行したときに限り、PDS メンバーの物理ファイルが作成されてカタログ化されます。

PDS メンバーを探す際には、そのメンバーの名前と指定された各拡張子の付いたファイルがディレクトリで順番に検索され、最初に一致したファイルが使用されます。たとえば、ディレクトリに PAYUPD.CBLPAYUPD.CPY、および PAYREP.CPY が含まれている場合は、SOURCE.PDS(PAYUDP) にアクセスを試みると PAYUPD.CBL が見つかります。一致するファイルが見つかると検索は終了するため、PAYUPD.CPY が見つかることは決してありません。SOURCE.PDS(PAYREP) にアクセスを試みると、PAYREP.CPY が見つかります。