Interstage Job Workload Server バッチ開発ガイド |
目次
![]() ![]() |
第2章 ジョブの設計 | > 2.1 設計に必要な知識 | > 2.1.4 バッチアプリケーションの構成 | > 2.1.4.1 COBOLアプリケーションの構成 |
バッチジョブ定義で設定した入力パラメタを、バッチアプリケーション(COBOLアプリケーション)に渡すことができます。また、バッチアプリケーションからの復帰コードは、ジョブステップの終了コードになります。これにより、バッチアプリケーションからの復帰コードで、後続ジョブステップを実行するかを制御できます。
バッチジョブ定義とバッチアプリケーションの入力パラメタ、および復帰コードの関係を以下に示します。
バッチアプリケーションには、以下のインタフェースがあります。
COBOL登録集の詳細は、NetCOBOLのマニュアルを参照してください。
入力パラメタについて説明します。
バッチジョブ定義のジョブステップ定義のバッチアプリケーション定義にあるパラメタに設定した値が、バッチアプリケーションの入力パラメタとして渡されます。入力パラメタのデータ型は、COBOL登録集に設定します。
COBOL登録集は、1バッチアプリケーションにつき、1つ作成します。なお、入力パラメタがない場合は、入力パラメタを設定するCOBOL登録集の作成は不要です。
バッチジョブ定義に設定したパラメタの値が、バッチアプリケーションのパラメタに渡されるイメージは以下のとおりです。
バッチアプリケーションのパラメタが存在する場合、バッチアプリケーションのすべてのパラメタを1つのCOBOL登録集に記述します。バッチアプリケーションには、パラメタを記述したCOBOL登録集のファイル名を記述します。
バッチアプリケーション
COBOL登録集(“PARM.CBL”)
バッチアプリケーションのパラメタが存在しない場合は、LINKAGE SECTIONを記述しません。
バッチアプリケーション
COBOLアプリケーションに入力パラメタを渡す場合は、COBOL登録集が必要になります。入力パラメタが必要ない場合は、COBOL登録集は必要ありません。入力パラメタが複数個ある場合は、1つのCOBOL登録集にまとめます。
バッチアプリケーションのCOBOL登録集は、01または77のレベル番号を持つ基本項目をパラメタとして記述できます。
* 01-LEVEL BASIC ITEM 01 PARM01 PIC X(10). * 77-LEVEL BASIC ITEM 77 PARM77 PIC X(9). |
基本項目に設定できるデータ項目は以下のとおりです。
COBOLデータ型 |
---|
PIC S9(n):符号付き整数の数字項目 |
PIC 9(n):符号なし整数の数字項目 |
PIC X(n):英数字項目 |
バッチアプリケーションの入力パラメタに設定した基本項目に指定できる句は、バッチ実行基盤では以下とおりに取り扱います。
句名 |
記述可否 |
意味 |
備考 |
---|---|---|---|
BLANK WHEN ZERO句 |
× |
データ項目の値がゼロのとき、値を空白に置き換えます。 |
指定した場合、COBOL実行基盤インタフェース生成ツール実行時にエラーになります。 |
CHARACTER TYPE句 |
× |
印字するときの文字の形式を指定します。 |
指定した場合、COBOL実行基盤インタフェース生成ツール実行時にエラーになります。 |
EXTERNAL句 |
× |
レコードに外部属性を与えます。 |
指定した場合、COBOL実行基盤インタフェース生成ツール実行時にエラーになります。 |
GLOBAL句 |
△ |
データ名が大域名であることを指定します。 |
指定できますが、指定した場合、無効になります。 |
JUSTIFIED句 |
× |
受取り側データ項目の右端に合わせて転記することを指定します。 |
指定した場合、COBOL実行基盤インタフェース生成ツール実行時にエラーになります。 |
OCCURS句 |
× |
繰り返し項目を定義します。 |
バッチアプリケーション実行時にパラメタの値が正しく設定されません。 |
PICTURE句 |
○ |
基本項目の形式を指定します。 |
− |
PRINTING POSITION句 |
× |
印字するときの横方向の印字位置を指定します。 |
指定した場合、COBOL実行基盤インタフェース生成ツール実行時にエラーになります。 |
REDEFINES句 |
× |
同じ記憶領域に異なるデータ項目を定義します。 |
指定した場合、COBOL実行基盤インタフェース生成ツール実行時にエラーになります。 |
RENAME句 |
× |
いくつかの基本項目をまとめたものに名前を付けます。 |
指定した場合、COBOL実行基盤インタフェース生成ツール実行時にエラーになります。 |
SIGN句 |
○ |
符号部の形式を指定します。 |
外部10進項目だけ有効になります。 |
SYNCHRONIZED句 |
× |
計算機の記憶装置の固有の境界にしたがって、基本項目を配置することを指定します。 |
指定した場合、COBOL実行基盤インタフェース生成ツール実行時にエラーになります。 |
USAGE句 |
○ |
データ項目の用途を指定します。 |
− |
VALUE句 |
△ |
データ項目の初期値を指定します。 |
指定できますが、指定した場合、無効になります。 |
[記述可否の記号]
○:指定できることを示します。
△:指定できますが、指定しても、無効、または指定どおりに設定されないことを示します。
×:指定した場合、COBOL実行基盤インタフェース生成ツール実行時にエラーになることを示します。
![]()
- バッチアプリケーションのパラメタは最大32個です。
- パラメタ名は、英数字、“-”(ハイフン)、および“_”(アンダースコア)を使用してください。パラメタ名に日本語は使用できません。
- バッチ実行基盤では、パラメタ名の英小文字、英大文字は区別しません。
- バッチ実行基盤では、“-”(ハイフン)と“_”(アンダースコア)は同一の文字として取り扱います。
- 英数字項目(PIC X(n))の最大長は、1,024文字です。
- 数字項目の最大長は、19文字です。
- パラメタ名にFILLER、および無記名項目を使用できません。
- COBOL登録集に手続きを含むことはできません。
- 部、節、段落の見出しを含むことはできません。
- 翻訳エラーとなる記述を含むことはできません。
- COBOLのマニュアルに記載している予約語のほかに、バッチ実行基盤の予約語として以下がありますので、使用しないでください。
- INVALID-MARKER
- “APFW_”で始まるすべての文字列
COBOL実行基盤インタフェース生成ツールについては、“COBOL実行基盤インタフェース生成ツールの実行”を参照してください。
バッチ実行基盤では、COBOLアプリケーションを呼び出すときに、バッチジョブ定義に設定した値を、COBOLアプリケーションのデータ型に対応するように変換します。
このデータ交換時の規則は、以下のとおりです。
バッチ実行基盤では、COBOLアプリケーションのデータ項目の桁数に合わせて、桁落としや0詰めが行われます。
以下に例を示します。
|
バッチジョブ定義に設定した値 |
COBOLアプリケーション |
---|---|---|
定義 |
PIC S9(8) |
|
値 |
+123456789 |
+23456789 |
+12345678 |
+12345678 |
|
+123456 |
+00123456 |
符号の整形については、COBOLアプリケーションのデータ型が符号をもつか、SIGN句が指定されているかによって決定します。
COBOLアプリケーションのデータ型が符号付きである場合は、必要に応じて以下のように符号を補います。
|
バッチジョブ定義に設定した値 |
COBOLアプリケーション |
---|---|---|
定義 |
PIC S9(8) |
|
値 |
+12345678 |
+12345678 |
-12345678 |
-12345678 |
|
12345678 |
+12345678 |
COBOLアプリケーションのデータ型が符号なしである場合は、以下のように符号を削除します。
|
バッチジョブ定義に設定した値 |
COBOLアプリケーション |
---|---|---|
定義 |
PIC 9(8) |
|
値 |
+12345678 |
12345678 |
-12345678 |
12345678 |
|
12345678 |
12345678 |
バッチ実行基盤では、COBOLアプリケーションのデータ項目の大きさに合わせて、末尾に半角空白文字を挿入したり、文字列を削除したりします。
|
バッチジョブ定義に設定した値 |
COBOLアプリケーション |
---|---|---|
定義 |
PIC X(10) |
|
値 |
ABC■12 |
ABC■12■■■■ |
1234567890AB |
1234567890 |
(表中の“■”は半角空白文字を示します)
バッチ実行基盤では、バッチアプリケーション定義にバッチアプリケーションへ渡すパラメタの値を設定せずに、バッチアプリケーションを呼び出すことがあります。この未設定のパラメタに対して、値が設定されていないことを判定できます。
入力パラメタの未設定データの判定を行うには、バッチワークユニットの環境変数に“APFW_PARAM_COMPLEMENT_MODE=ON”を設定する必要があります。
バッチワークユニットの環境変数の設定方法については、“Interstage Job Workload Server セットアップガイド”の“バッチワークユニットの設定変更”および“Environment Variable:環境変数”を参照してください。
これらの未設定データの判定のために、COBOL登録集“INVALID_MARKER.cbl”(/opt/FJSVibs/copy/)を提供しています。必要に応じてCOBOL開発環境に取り込んでください。
COBOL登録集“INVALID_MARKER.cbl”は、以下に示すようにデフォルトの値として“7FFF”が定義されています。
ほかの値に変更する場合は、“INVALID_MARKER.cbl”の定義を変更してください。
01 INVALID-MARKER PIC X(2) VALUE X"7FFF". 01 INVALID-MARKER2 REDEFINES INVALID-MARKER PIC N(1). |
未設定データの判定処理は未設定であることを識別するための値をあらかじめ定義し、バッチアプリケーション内でこの値とパラメタの値を比較します。このため、判定に使用する値は実行時にパラメタの値として使用されない値でなければなりません。バッチアプリケーション実行時にパラメタとして使用されない値を決定できない場合は、未設定データ判定処理を使用できません。未設定データの判定を行う場合、バッチアプリケーションは、次のようにCOPY文でCOBOL登録集“INVALID_MARKER.cbl”を取り込んでください。
WORKING-STORAGE SECTION. COPY INVALID_MARKER. |
入力パラメタが未設定かどうかをバッチアプリケーションが判定するためには、この登録集で設定したデータ名“INVALID-MARKER”を使用して、次のように判定します。
IF FUNCTION LENG(IN-PARAM) > FUNCTION LENG(INVALID-MARKER) AND IN-PARAM(1:FUNCTION LENGTH(INVALID-MARKER)) NOT = INVALID-MARKER THEN 《入力パラメタ設定時の処理》 ELSE 《入力パラメタ未設定時の処理》 END-IF. |
バッチアプリケーションの復帰コードを決定します。
また、バッチ実行基盤で使用できるユーザアプリケーションの復帰コードは、ジョブのジョブステップ終了コードとジョブ終了コードにもなります。
バッチ実行基盤で使用できるユーザアプリケーションの復帰コードのデータ型は、以下のとおりです。ユーザアプリケーションでデータ型を定義する必要はありません。
COBOLデータ型 |
---|
PIC S9(9) COMP-5 [PROGRAM-STATUS] |
バッチ実行基盤で実行するユーザアプリケーションの復帰コードの範囲は、以下のとおりです。
復帰コードの範囲 |
---|
-999999999〜999999999 |
バッチ実行基盤とSystemwalker Operation Managerを連携する場合、バッチアプリケーションの復帰コードを0〜200の範囲にしてください。バッチアプリケーションの復帰コードがこの範囲以外の場合には、Systemwalker Operation Managerの仕様にしたがいます。
PROGRAM-STATUSに復帰コードを設定せずに終了した場合、バッチアプリケーションの復帰コードは、0になります。バッチアプリケーションでエラーが発生した場合、PROGRAM-STATUSにNetCOBOLのエラーコードが設定されることがあります。詳細は、NetCOBOLのマニュアルを参照してください。
バッチアプリケーションで使用する環境変数です。
バッチアプリケーションが使用できる環境変数には以下があります。
![]()
- バッチアプリケーション定義の環境変数については、“バッチアプリケーションに渡す環境変数”を参照してください。
- バッチアプリケーション実行時に使用できる環境変数の詳細、およびバッチワークユニットの環境変数については、“Interstage Job Workload Server セットアップガイド”の“環境変数の設定指針”を参照してください。
バッチアプリケーション定義の環境変数、およびジョブ定義の環境変数を使用したバッチアプリケーション間の、環境変数によるデータの引継ぎはできません。
ファイル管理機能が、バッチジョブ定義に設定した資源名とファイルの物理的なパスの対応関係を環境変数に設定しバッチアプリケーションに通知します。これにより、バッチアプリケーションに直接、物理的なパスを記述しないでファイルをアクセスできます。
以下にファイルのアクセス方法について示します。
バッチジョブ定義で資源名“COB1”を設定します。資源名“COB1”は“/data/2006/”に割り当てられているファイル“file1”です。バッチアプリケーションでは、資源名“COB1”を指定してファイルをアクセスしますが、環境変数に“COB1”に該当する物理ファイル名とファイルの割当て場所が取り込まれるため、“/data/2006/”に割り当てられているファイル“file1”をアクセスできます。
ファイルの物理的なパスを変更する場合は、バッチジョブ定義のファイル名を変更することでアクセス対象のファイルを変更することができるため、バッチアプリケーションの汎用性が高くなります。
目次
![]() ![]() |