Interstage Job Workload Server バッチ開発ガイド
目次 前ページ次ページ

第2章 ジョブの設計> 2.1 設計に必要な知識> 2.1.4 バッチアプリケーションの構成> 2.1.4.1 COBOLアプリケーションの構成

2.1.4.1.2 COBOLアプリケーションのインタフェース

バッチジョブ定義で設定した入力パラメタを、バッチアプリケーション(COBOLアプリケーション)に渡すことができます。また、バッチアプリケーションからの復帰コードは、ジョブステップの終了コードになります。これにより、バッチアプリケーションからの復帰コードで、後続ジョブステップを実行するかを制御できます。
バッチジョブ定義とバッチアプリケーションの入力パラメタ、および復帰コードの関係を以下に示します。

バッチアプリケーションには、以下のインタフェースがあります。


COBOL登録集の詳細は、NetCOBOLのマニュアルを参照してください。

 

入力パラメタ

入力パラメタについて説明します。

入力パラメタの構成

バッチジョブ定義のジョブステップ定義のバッチアプリケーション定義にあるパラメタに設定した値が、バッチアプリケーションの入力パラメタとして渡されます。入力パラメタのデータ型は、COBOL登録集に設定します。
COBOL登録集は、1バッチアプリケーションにつき、1つ作成します。なお、入力パラメタがない場合は、入力パラメタを設定するCOBOL登録集の作成は不要です。

バッチジョブ定義に設定したパラメタの値が、バッチアプリケーションのパラメタに渡されるイメージは以下のとおりです。

 

バッチアプリケーションのパラメタが存在する場合

バッチアプリケーションのパラメタが存在する場合、バッチアプリケーションのすべてのパラメタを1つのCOBOL登録集に記述します。バッチアプリケーションには、パラメタを記述したCOBOL登録集のファイル名を記述します。

バッチアプリケーション

COBOL登録集(“PARM.CBL”)

バッチアプリケーションのパラメタが存在しない場合

バッチアプリケーションのパラメタが存在しない場合は、LINKAGE SECTIONを記述しません。

バッチアプリケーション

 

COBOL登録集の設定項目

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実行基盤インタフェース生成ツール実行時にエラーになることを示します。

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”を使用して、次のように判定します。

復帰コード

バッチアプリケーションの復帰コードを決定します。
また、バッチ実行基盤で使用できるユーザアプリケーションの復帰コードは、ジョブのジョブステップ終了コードとジョブ終了コードにもなります。

◆復帰コードのデータ型

バッチ実行基盤で使用できるユーザアプリケーションの復帰コードのデータ型は、以下のとおりです。ユーザアプリケーションでデータ型を定義する必要はありません。

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のマニュアルを参照してください。

 

環境変数

バッチアプリケーションで使用する環境変数です。
バッチアプリケーションが使用できる環境変数には以下があります。


バッチアプリケーション定義の環境変数、およびジョブ定義の環境変数を使用したバッチアプリケーション間の、環境変数によるデータの引継ぎはできません。

 

ファイル資源の割当て

ファイル管理機能が、バッチジョブ定義に設定した資源名とファイルの物理的なパスの対応関係を環境変数に設定しバッチアプリケーションに通知します。これにより、バッチアプリケーションに直接、物理的なパスを記述しないでファイルをアクセスできます。

以下にファイルのアクセス方法について示します。

バッチジョブ定義で資源名“COB1”を設定します。資源名“COB1”は“/data/2006/”に割り当てられているファイル“file1”です。バッチアプリケーションでは、資源名“COB1”を指定してファイルをアクセスしますが、環境変数に“COB1”に該当する物理ファイル名とファイルの割当て場所が取り込まれるため、“/data/2006/”に割り当てられているファイル“file1”をアクセスできます。


ファイルの物理的なパスを変更する場合は、バッチジョブ定義のファイル名を変更することでアクセス対象のファイルを変更することができるため、バッチアプリケーションの汎用性が高くなります。

目次 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007,2008