ファイル記述と入出力装置との関連付け

iSeries 上のすべての入出力操作の主要な要素はファイルです。システムは次のファイル・タイプをサポートしています。

データベース・ファイル
システム上でデータを永続的に保管できるようにします。
装置ファイル
外部に接続する装置にアクセスすることができます。表示装置ファイル、 PRINTER ファイル、テープ・ファイル、ディスケット・ファイル、および ICF ファイルが含まれます。
保管ファイル
ディスク上で保管データを保管するために使用されます。
DDM ファイル
遠隔システム上に保管されているデータ・ファイルをアクセスできるよう にします。

各入出力装置は、上記のタイプの 1 つの対応するファイル記述をもっており、 プログラムはそのファイル記述を使用してその装置をアクセスします。 実際の装置関連は、ファイルが処理された時に作成されます。データは、 ファイルが処理用に使用された時に装置に対して読み取られたり書き出されたりします。

RPG によって、SPECIAL ファイルの使用を通して、システムが直接サポートして いないファイルおよび装置にアクセスすることもできます。 SPECIAL ファイルでは、ファイルに対する名前およびファイル用のデータ管理 の関連を処理するプログラムを指定しなければなりません。 その他のタイプのファイルでは、これは RPG およびオペレーティング・システム が処理します。

プログラムが使用するファイル記述をオペレーティング・システムに指示する ためには、使用する各ファイルごとにファイル仕様書の 7 〜 16 桁目に ファイル名 を指定します。 36 〜 42 桁目には RPG 装置名 を 指定します。 装置名は、関連付けられたファイルで使用することができる RPG 操作を定義します。 装置名としては DISK、PRINTER、WORKSTN、SEQ、または SPECIAL の いずれかを使うことができます。 図 147 は、画面 (WORKSTN) ファイル FILEX の ファイル仕様書を示します。

図 147. RPG プログラムでの表示装置ファイルの識別
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... *
FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++
FFILEX     CF   E             WORKSTN

これは、装置名 (36〜42 桁目に指定) ではなく、実際の装置の仕様書が入ってい る i5/OS ファイル記述を指すのはファイル名であるということに注意してくだ さい。

RPG 装置タイプは次のとおり上のファイル・タイプと対応しています。

表 34. RPG 装置タイプと iSeries のファイル・タイプとの相互関連
RPG 装置タイプ iSeries ファイル・タイプ
DISK データベース・ファイル、保管ファイル、DDM ファイル
PRINTER プリンター・ファイル
WORKSTN 表示装置ファイル、ICF ファイル
SEQ テープ、ディスケット、保管、プリンター、データベース
SPECIAL N/A

図 148 は、図 147 にコーディングされている RPG ファイル名 FILEX と表示装置ファイルのシステム・ファイル記述との関連 を図示したものです。

図 148. ファイル名と表示装置ファイル記述との関連付け

コンパイル時に、一定の RPG 操作は特定の RPG 装置名だけに有効です。この点では、RPG 操作は装置従属です。装置従属性の 1 つの例は、EXFMT 命令コードは WORKSTN 装置の場合にのみ有効です。

その他の命令コードは装置とは独立しています。これは、その命令コードがど の装置タイプでも使用できることを意味します。例えば、WRITE は装置独立命令です。

SEQ 装置

装置 SEQ は独立装置タイプです。 図 149 は、RPG ファイル名 FILEY と 順次装置のシステム・ファイル記述の関連を 示します。プログラムが実行される時には、実際の入出力装置が FILEY の記述に指定され ます。 例えば、装置が PRINTER となる場合もあります。

図 149. ファイル名と表示装置ファイル記述との関連付け

ファイル名およびファイル・タイプは RPG プログラムでコーディングされ ますが、多くの場合には、プログラムで使用されるファイルのタイプまたは 入出力装置をプログラムを変更せずに変更することができます。 この方法については、ファイル入出力の一時変更および指定変更を参照してください。