JCL を含むファイルまたはメンバーの処理
JCL を含むファイルとともに DSC または FCH ユーティリティーを使用する際、JCL ソース形式オプションが選択された場合は、保全性を維持するために使用される方法が 2 つあります。
その方法の選択は、JCL インストール・オプションまたは SET JCL 機能を使用して指定できます。
重要:
- 次の規則は、変更されたカードのみに適用されます。カードが変更されていない場合、構文は検査されません。
- 参照された JCL ファイルはすべて有効な構文を持つものとして想定されます。File Manager により実行される整合性検査は、無効な JCL を修復する方法ではありません。
JCL=COMPAT
JCL ステートメントが複数行にまたがる場合、File Manager は、物理 JCL レコードを処理できるようにその形式を単一の論理 JCL ステートメントに再設定し、それから新しい物理 JCL レコード・セットを構築します。
- 次の規則は正規の JCL カード (// カード、//* ではない) のみに適用されます。
- 変更により、文字の挿入のために切り捨てが行われると、カードは適切な位置で分割されます。可能な場合、File Manager は、切り取られた部分を次のカードに挿入します。そうでない場合、追加のカードが作成されます。
- 変更によりデータが除去される場合、カードはコメント・カードに変更されます。
- 上記のいずれの場合も File Manager は、一致する引用符、一致する大括弧、およびパラメーター間のコンマの保全性を維持しようとします。
- 以下の場合は、規則が適用されません。
- コメント (//*) カード
- 正規の JCL カードの終わりに組み込まれたコメント
- JCL 以外のカード。例えば、データ・カードです。
- DD DATA 構成内に含まれる JCL カード。これらはデータ・カードとしてみなされるためです。
JCL カードを再形式設定する場合、File Manager は以下を考慮に入れます。
- 論理 JCL ステートメントの先頭カードには、以下のいずれか 1 つのステートメント・タイプが含まれます。
CNTL
COMMAND
DD
ENDCNTL
EXEC
IF
THEN
ELSE
ENDIF
INCLUDE
JCLLIB
JOB
OUTPUT
PEND
PROC
SET
XMIT - それぞれの論理 JCL カードは、1 つ以上の物理 JCL カードで構成されます。
- コメント (//*) カードは、再形式設定の候補になりません。
- データ・カード (1 桁目から 2 桁目に
//
が含まれない) は、再形式設定の候補になりません。 - それぞれの論理 JCL カードには、再形式設定の候補ではないコメント (//*) カードが組み込まれている場合があります。
- 論理 JCL ステートメント行は、論理 JCL ステートメント自体 (名前、操作、およびパラメーター・フィールド) に継続構文が除去された形で構成されます。論理 JCL ステートメントは x'FF' の区切り文字で区切られます。コメントはすべて、それぞれが x'FF' 区切り文字で区切られた状態で付加されます。
- それぞれの物理 JCL カードは以下の 4 つの部分で構成されます。
- 名前の部分
- カード・タイプを含めて 1 桁目からパラメーター部分の直前にある最後の文字までの内容が含まれます。例えば、DD、JOB などです。この部分には、継続行の場合のように
//
のみが含まれる場合もあります。 - パラメーター部分
- 名前部分の後にある先頭文字から、パラメーター部分の最後の文字の後にあるブランクを含めた内容が含まれます。
- 組み込みコメント部分
- この部分はオプションです。パラメーター部分の後にある最初の非ブランク文字から 71 桁目までの内容が含まれます。72 桁目は特殊な桁で、再形式設定の候補としてみなされません。
- シーケンス番号部分 (継続文字を含む)
- 72 桁目から 80 桁目の内容が含まれます。
論理 JCL ステートメントから新しい物理 JCL カード・セットを作成する場合、以下の処理が行われます。
- 論理 JCL ステートメント行が未変更のままである場合、File Manager は関連付けられた物理レコード部分を変更しません。
- 論理 JCL ステートメント行の内容がなんらかの方法で変更された場合、File Manager はその論理 JCL の内容を関連付けられた物理レコードに反映させます。注: 旧ストリングと新規ストリングの長さが同一であっても、論理 JCL ステートメントの変更を反映させることが必要となる可能性があります。変更された論理 JCL ステートメントが複数の物理レコードに分けられることがあるためです。
- File Manager は、既存の物理行 (列 73~80) と既存の JCL ステートメントのコメント・フィールドの内容を維持しようとします。ただし、以下のような場合があります。
- File Manager は、関連した物理行の列 (列 73~80) または JCL ステートメントのコメント・フィールドと、任意の論理 JCL ステートメント部分との関連付けは行いません。物理行の桁 (桁 73–80)、JCL ステートメントのコメント・フィールド、および論理行は個別に扱われます。
- JCL ステートメントのコメント・フィールドは切り捨てられる場合があります。
- File Manager は、余分なブランクを物理 JCL 行から除去するか、あるいは物理 JCL 行を再度形式設定する場合があります。
- 論理 JCL ステートメントが変更され、物理レコードがほとんど必要でない場合、File Manager は終わり部分にある「余分の」物理レコードを JCL コメント・ステートメント (JCL ステートメント域内で、先頭が //* で始まり、いくつかのブランクが含まれているステートメント部分) 内に配置変更します。コメント・レコードの桁 73–80 にあるデータは、オリジナルの非コメント・レコード・データから変更されずに現状のまま表示されます。
- 変更の結果としてサブパラメーター全体が除去され、それがカードで唯一の情報であった場合、カードはコメント・カードに変更されます。
- File Manager は、既存の物理行 (列 73~80) と既存の JCL ステートメントのコメント・フィールドの内容を維持しようとします。ただし、以下のような場合があります。
REXX プロシージャーに渡される // JCL ステートメント
次の追加の規則は、REXX プロシージャーに渡される JCL ステートメント (先頭に // が示されるもの) に適用されます。
- REXX 入出力バッファー (INREC および OUTREC) には、先頭に // を示した論理 JCL ステートメントが含まれます。
- REXX プロシージャー処理は、論理 JCL ステートメントのみにアクセス、および影響します。
- File Manager は、出力バッファー (OUTREC) の論理 JCL ステートメントの // 文字 (1 および 2 バイト) に行われた変更を無視します。
JCL=RECORD
物理 JCL レコードは、アポストロフィで囲まれたパラメーター・フィールドが含まれている場合を除き、File Manager によってそのまま処理されます。このパラメーターが複数のレコードをまたいで続く場合は、処理の前にそれらのレコードがまとめてフローされてパラメーターが結合されます。
レコードが変更され、合計長が 71 桁を超えた場合、フィールドは 1 つ以上の新しいレコードに続きます。ステートメントを中断できない場合、変更は失敗します。
変更がすべてのパラメーター・データをレコードから除去する際、
- 組み込みコメント・データが含まれている場合、レコードは JCL コメント・ステートメントへ変更されます。
- 他の JCL フィールド・データが含まれていない場合、レコードは削除されます。
以下の場合は、規則が適用されません。
- JCL 以外のカード。例えば、データ・カードです。
- DD DATA 構成内に含まれる JCL カード。これらはデータ・カードとしてみなされるためです。
- 73-80 桁のデータ。