JCL を含むファイルまたはメンバーの処理

JCL を含むファイルとともに DSC または FCH ユーティリティーを使用する際、JCL ソース形式オプションが選択された場合は、保全性を維持するために使用される方法が 2 つあります。

その方法の選択は、JCL インストール・オプションまたは SET JCL 機能を使用して指定できます。

重要:
  1. 次の規則は、変更されたカードのみに適用されます。カードが変更されていない場合、構文は検査されません
  2. 参照された 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 にあるデータは、オリジナルの非コメント・レコード・データから変更されずに現状のまま表示されます。
    • 変更の結果としてサブパラメーター全体が除去され、それがカードで唯一の情報であった場合、カードはコメント・カードに変更されます。

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 桁のデータ。