BTB (バッチによるテンプレートの作成)

目的
PDS のコピーブックから複数のテンプレートをバッチで作成します。
使用上の注意
メンバー名の選択基準でテンプレートを作成するコピーブックを選択できます。
関連機能
BTU
バッチによるテンプレートの更新
1. Syntax

1 BTB
1! INPUT=DDIN
1 INPUT=ddname
1 DSNIN=dsname
1 ? MEMSTART=startstring? MEMEND=endstring
1 MEMBER=member_in
3? XMEMBERS=(+ ,xmem_filter)
3? MEMLIST=(+ ,member_n?(template_n))
1! OUTPUT=DDOUT
1 OUTPUT=ddname
1 DSNOUT=dsname?(member_out)
4? MEMOUT=memmask
1! REPLACE=NO
1 REPLACE=YES
5?  %Copybook processing
Copybook processing

1! LANG=AUTO
1 LANG=
2.1 COBOL
2.1 PLI
2.1 HLASM
1  %COBOL options
1  %PL/I options
1  %HLASM options
COBOL options

1! DBCS=NO
1 DBCS=YES
1! CDPC=NO
1 CDPC=YES
1! CAE=NO
1 CAE=YES
1! MIXED=NO
1 MIXED=YES
1 +  RFROMn=operand1 RTOn=operand2
1! CBLMAXRC=4
1 CBLMAXRC=num
1 CBLLIBS=(+  dsname)
8? CBLADDOP=options
PL/I options

1! BIN63=NO
1 BIN63=YES
1! DEC31=NO
1 DEC31=YES
1! GRAPHIC=NO
1 GRAPHIC=YES
1! UNALIGNED=NO
1 UNALIGNED=YES
1! PLIMAXRC=4
1 PLIMAXRC=num
1 PLILIBS=(+  dsname)
7? PLIADDOP=options
HLASM options

1! DBCS=NO
1 DBCS=YES
1! NOALIGN=NO
1 NOALIGN=YES
1! ASMMAXRC=4
1 ASMMAXRC=num
1 ASMLIBS=(+  dsname)
5? ASMADDOP=options
INPUT=ddname
これは、有効なコピーブック・データ・セットとなる関連データ・セットを 1 つ以上保持した入力 DD 名を示します。Panvalet または Carma データ・セットが参照される場合は、それらすべてが Panvalet または CARMA データ・セットでなければなりません。混合することはできません。INPUT または DSN パラメーターを指定しない場合は、DD DDIN が入力データ・セットのデフォルト DD 名として使用されます。
DSNIN=dsname
コピーブックがあるデータ・セット名。
MEMBER=member_in
PDS 内の単一メンバーの名前、または PDS 内で処理される 1 つ以上のメンバーを示すメンバー名のパターン。

メンバー名パターンは、メンバー名に有効な任意の文字と 2 つの特殊パターン文字 (アスタリスク (*) およびパーセント記号 (%)) から構成することができます。

*
任意の数の文字を表します。必要な数のアスタリスクを、メンバー名パターンの任意の場所に使用することができます。例えば、*d* というメンバー名パターンを入力すると、PDS の中で、名前に「d」が含まれているすべてのメンバーが処理されます。
%
単一文字を表すプレースホルダー文字。パーセント記号は、メンバー名パターンの任意の場所に必要な数だけ指定できます。例えば、メンバー名パターンとして %%%% を入力すれば、名前の長さが 4 文字である、PDS 内のすべてのメンバーが処理されます。

データ・セットが PDS でない場合、member_in は無視されます。

MEMSTART=startstring
組み込まれるメンバー名の範囲の開始を指定するために使用されます。MEMSTART が指定されたが MEMEND は省略された場合、PDS(E) 内の startstring 値以降の全メンバーが組み込まれます。startstring では、MEMBER キーワードの member-in パラメーターに関して、ワイルドカードを含め、同じ値を持つことができます。
MEMEND=endstring
組み込まれるメンバー名の範囲の終了を指定するために使用されます。MEMEND が指定されたが MEMSTART は省略された場合、PDS(E) 内の endstring 値までの全メンバーが組み込まれます。endstring では、MEMBER キーワードの member_in パラメーターに関して、ワイルドカードを含め、同じ値を持つことができます。
XMEMBERS
MEMSTART、MEMEND、および MEMBER オプションを使用して、処理するライブラリー・メンバーから除外し、それ以外が選択される方法を提供します。
xmem_filter
処理から除外する 1 つ以上のメンバーを識別するメンバー名フィルター。フィルターには、複数のメンバーを表すメンバー名パターンを指定できます。

小文字を含むメンバー名フィルターを指定するには、c'string' 形式で文字ストリングを使用します。フィルター値は、x'hex-digits' 形式で 16 進ストリングとして指定することもできます。

MEMLIST
メンバー名のリストと、オプションで、関連付けられる出力テンプレート名を指定できます。関連テンプレート名を指定しない場合、File Manager はコピーブック名を使用するか、または MEMOUT マスク (memmask) で識別された名前を使用します。
member_n
処理されるメンバーの名前。総称名マスクは使用できます。
template_n
出力データ・セットにコピーされた後のテンプレート名。指定されない場合、出力テンプレートは名前変更されません。
OUTPUT=ddname
テンプレートが保管または置換されるテンプレート・データ・セットを示した DD カードを指定します。このカードには、PDS、PDSE、または順次データ・セットを指定する必要があります。連結データ・セットはサポートされていません。
DSNOUT=dsname
テンプレートが作成されるデータ・セット名を定義します。このデータ・セットは、PDS、PDSE、または順次データ・セットでなければなりません。このデータ・セットは、以下のようにさらに詳細に記述できます。
(member-out)
DSNOUT=dsname に PDS を指定したときに、このデータ・セット内の特定のメンバーへ出力を送りたい場合は、 出力メンバー名を定義します。
MEMOUT=memmask
入力メンバーの数を指定している場合、出力テンプレートにメンバー名パターンを指定することができます。これによって、テンプレートが作成されたときに、その名前を変更できます。メンバー名パターンは、メンバー名に有効な任意の文字と、アスタリスク (*) およびパーセント記号 (%) の 2 つの特殊パターン文字で構成することができます。
アスタリスク (*)
アスタリスクは、変更がない複数の文字を表すプレースホルダー文字です。マスクに指定するアスタリスクは、1 つのみにしてください。2 つ目以降のアスタリスク文字は、パーセント記号として扱われます。例えば、次のように入力するとします。
ABC*

名前変更後のメンバーはすべて ABC で始まり、その後に、古いメンバー名の残りが続きます。

パーセント記号 (%)
パーセント記号は、変更がない単一文字を表すプレースホルダー文字です。パーセント記号は、メンバー名の任意の場所に必要な数だけ指定できます。例えば、次のように入力するとします。
%%%A*
名前変更後のメンバーの最初の 3 文字は変わらず、4 文字目が文字「A」に置き換えられ、古いメンバー名の残りは変更されません。
REPLACE
出力区分データ・セット内の同名テンプレートを File Manager が置き換えるかどうかを指定します。
NO
出力区分データ・セット内の同名テンプレートを置き換えません。
YES
出力区分データ・セット内の同名テンプレートを置き換えます。
Copybook 処理
コピーブックを (既存のテンプレートの代わりに) 指定すると、File Manager はこれらの処理オプションを使用してコピーブックをテンプレートにコンパイルします。
LANG
File Manager が、コピーブックの言語を自動的に検出するか、言語を COBOL、PL/I、または HLASM として解釈するかを決定します。
注: FMN0POPT の COMPLANG 設定は、バッチ関数の LANG パラメーターと同等です。
  • COMPLANG が設定されている場合、オンライン・コンパイルおよびバッチ・コンパイルのインストール・デフォルト言語が決まります。
  • COMPLANG が指定されていない場合、COBOL がオンライン・コンパイルのインストール・デフォルトとなり、AUTO がバッチ・コンパイルのデフォルトとなります。
  • COBOL、HLASM、PL/1、AUTO の値が指定されている場合 (Compiler Language Selection パネルまたはバッチ・ジョブの LANG パラメーターで)、デフォルトの言語よりも優先されます。
AUTO
コピーブックの言語が COBOL であるか、PL/I であるかを自動検出し、該当のコンパイラーを起動します。コンパイルの戻りコードが 4 を超えた場合は、もう一方の言語のコンパイラーを起動します。2 番目のコンパイルでも戻りコードが 4 を超えた場合は、最初のコンパイラーを再試行し、コンパイル・エラーを報告します。File Manager が (コンパイル・エラーがあっても) 正常にテンプレートを作成する場合は、そのテンプレートで処理を続行します。
COBOL
COBOL コンパイラーを起動して、コピーブックからテンプレートを作成します。(COBOL のコンパイルでエラーが発生しても、PL/I コンパイラーは起動しません)。
PLI
PL/I コンパイラーを起動して、コピーブックからテンプレートを作成します。(PL/I のコンパイルでエラーが発生しても、COBOL コンパイラーは起動しません)。
HLASM
HLASM コンパイラーを起動して、コピーブックからテンプレートを作成します。
DSINFO

DSP、DSM、DSC、FCH の各コマンドのバッチ・レポートに入力ソースおよび出力ソースの追加のデータ・セット情報を生成するかどうかを指定します。

NO
追加のデータ・セット情報は生成されません。
YES
DSORG、RECFM、LRECL、BLKSIZE、VSAM の各属性のデータ・セット情報を生成します。具体的には、入力および出力データ・セットの平均レコード長、最大レコード長、キー・オフセット、キー長、再使用などです (該当する場合)。
COBOL オプション
次のオプションは、COBOL コピーブックをテンプレートにコンパイルするために使用します。
DBCS=YES
DBCS コンパイラー・オプションを使用します。
DBCS=NO
NODBCS コンパイラー・オプションを使用します。

DBCS および NODBCS コンパイラー・オプションの効果の詳細については、IBM COBOL Programming Guide for OS/390 & VM を参照してください。

CDPC=NO
COBOL SPECIAL-NAMES パラグラフ「Decimal-point is comma (小数点はコンマ)」を使用しません。
CDPC = YES
COBOL SPECIAL-NAMES パラグラフ「Decimal-point is comma (小数点はコンマ)」を使用します。
CAE=NO
COBOL コンパイル・オプション ARITH(EXTEND) を使用しません。
CAE = YES
COBOL コンパイル・オプション ARITH(EXTEND) を使用します。
MIXED = NO
フィールド名は大文字でテンプレートに保管されます。
MIXED = NO
フィールド名は大文字でテンプレートに保管されます。
MIXED = YES
フィールド名は COBOL コピーブックでコーディングされているとおりに、元の大/小文字でテンプレートに保管されます。
RFROM1 RTO1 … RFROM5 RTO5
COBOL REPLACE コンパイラー指示ステートメントの「From (検索)」および「To (置換)」疑似テキスト文字ストリングの最大 5 つの対。

COBOL コピーブックをテンプレートにコンパイルする前に、COBOL コピーブックに除去する文字または他の文字と置き換えたい文字が含まれている場合には、この置換オプションを使用します。

例えば、コピーブックに、コンパイル前に除去したいコロン文字 (:) が含まれている場合は、「'==:=='」を operand1 として、さらに「'====='」を operand2 として指定してください。

COBOL REPLACE の「From (検索)」および「To (置換)」のストリングの指定について詳しくは、IBM COBOL Language Reference を参照してください。

CBLMAXRC
コピーブックをコンパイルするために、許容できる最大の戻りコードを設定します。指定したレベルを超える戻りコードによって機能は停止します。デフォルトは、4 です。
注: COMPMAXRC パラメーターは引き続きサポートされますが、代わりに CBLMAXRC パラメーターを使用することが推奨されています。COMPMAXRC パラメーターを指定すると、それが言語の MAXRC よりも優先されます。
CBLLIBS
SYSLIB 連結リスト内で指定されるデータ・セット名 (10 個まで) のリストを指定できます。これらのデータ・セットは、コンパイル用に COPY または INCLUDE メンバーに指定された順序で検索されます。
dsname
処理されるデータ・セット名の名前。総称名マスクは使用できません。
CBLADDOP
COBOL コピーブックのコンパイル時に CBL ステートメントに組み込まれる追加の COBOL コンパイラー・オプション。
PL/I オプション
以下のオプションを使用して、PL/I コピーブックをテンプレートにコンパイルします。
BIN63=YES
LIMITS(FIXEDBIN(63)) コンパイラー・オプションを使用します。
BIN63=NO
LIMITS(FIXEDBIN(31)) コンパイラー・オプションを使用します。
DEC31=YES
LIMITS(FIXEDDEC(31)) コンパイラー・オプションを使用します。
DEC31=NO
LIMITS(FIXEDDEC(15)) コンパイラー・オプションを使用します。
GRAPHIC=YES
GRAPHIC コンパイラー・オプションを使用します。
GRAPHIC=NO
NOGRAPHIC コンパイラー・オプションを使用します。
UNALIGNED=YES
DEFAULT RANGE (*) UNALIGNED 言語ステートメントを使用して、デフォルトの位置合わせを変更します。
UNALIGNED=NO
PL/I のデフォルトを使用します。
PLIMAXRC
コピーブックをコンパイルするために、許容できる最大の戻りコードを設定します。指定したレベルを超える戻りコードによって機能は停止します。デフォルトは、4 です。
注: COMPMAXRC パラメーターは引き続きサポートされますが、代わりに PLIMAXRC パラメーターを使用することが推奨されています。COMPMAXRC パラメーターを指定すると、それが言語の MAXRC よりも優先されます。
PLILIBS
SYSLIB 連結リスト内で指定されるデータ・セット名 (10 個まで) のリストを指定できます。これらのデータ・セットは、コンパイル用に COPY または INCLUDE メンバーに指定された順序で検索されます。
dsname
処理されるデータ・セット名の名前。総称名マスクは使用できません。
PLIADDOP
PL/I コピーブックのコンパイル時に *PROCESS ステートメントに組み込まれる追加の PL/I コンパイラー・オプション。

これらのコンパイラー・オプションの効果について詳しくは、IBM VisualAge PL/I for OS/390 Programming Guide を参照してください。

HLASM オプション
次のオプションは、HLASM コピーブックをテンプレートにコンパイルするために使用します。
DBCS=YES
DBCS コンパイラー・オプションを使用します。
DBCS=NO
NODBCS コンパイラー・オプションを使用します。
NOALIGN=YES
NOALIGN コンパイラー・オプションを使用します。
NOALIGN=NO
ALIGN コンパイラー・オプションを使用します。
ASMMAXRC
コピーブックをコンパイルするために、許容できる最大の戻りコードを設定します。指定したレベルを超える戻りコードによって機能は停止します。デフォルトは、4 です。
注: COMPMAXRC パラメーターは引き続きサポートされますが、代わりに ASMMAXRC パラメーターを使用することが推奨されています。COMPMAXRC パラメーターを指定すると、それが言語の MAXRC よりも優先されます。
ASMLIBS
SYSLIB 連結リスト内で指定されるデータ・セット名 (10 個まで) のリストを指定できます。これらのデータ・セットは、コンパイル用に COPY または INCLUDE メンバーに指定された順序で検索されます。
dsname
処理されるデータ・セット名の名前。総称名マスクは使用できません。
ASMADDOP
COPY メンバーおよび MACRO メンバーのコンパイル時に *PROCESS ステートメントに組み込まれる追加の HLASM コンパイラー・オプション。

これらのコンパイラー・オプションの効果について詳しくは、HLASM V1R6 Programmer's Guide を参照してください。

//DDIN  DD DSN=FMNUSER.COBOL2,DISP=SHR
//      DD DSN=FMNUSER.COBOL,DISP=SHR
//SYSIN DD *
$$FILEM BTB INPUT=DDIN,
$$FILEM MEMLIST=(DITTST1,
$$FILEM          DITTST3,
$$FILEM          DITTST7,
$$FILEM          XYZTST1),
$$FILEM LANG=COBOL,
$$FILEM COMPMAXRC=08,
$$FILEM RFROM1===:==,
$$FILEM RTO1=====,
$$FILEM REPLACE=YES,
$$FILEM DSNOUT=FMNUSER.TEMPLATE.NEW

以下の出力を生成します (複数の入力データ・セットがある場合)。

Report 1 Data set list

Data set name                                  Lib
---------------------------------------------------
FMNUSER.COBOL2                                   1
FMNUSER.COBOL                                    2


Build report

          Template Build Report
Copybook   Lib Template    Status
DITTST1      1 DITTST1     Replaced
DITTST3      1 DITTST3     Replaced
DITTST7      1 DITTST7     Compile error
XYZTST1      2 XYZTST1     Created

4 members read : Template : 1 Created  2 Replaced  1 Errors

「Lib」欄は、複数の入力データ・セットが見つかった場合のみ表示されます。