SPECIAL ファイルの使用例
図 1 には、プログラム内での RPG 装置名 SPECIAL の使用 方法を示してあります。この例では、ファイル EXCPTN に見付かったファイル記述が装置 SPECIAL と関 連しています。
図 1. SPECIAL 装置
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... *
FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++
FEXCPTN O F 20 SPECIAL PGMNAME('USERIO')
F PLIST(SPCL)
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... *
DName+++++++++++ETDsFrom+++To/L+++IDc.Functions++++++++++++++++++++++++++++
D OUTBUF DS
D FLD 1 20
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... *
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
C SPCL PLIST
C PARM FLD1
C MOVEL 'HELLO' FLD
C MOVE '1' FLD1 1
C WRITE EXCPTN OUTBUF
C MOVE '2' FLD1 1
C WRITE EXCPTN OUTBUF
C SETON LR
図 2 には、ユーザー作成プログラム USERIO を示してありま す。
図 2. ユーザー作成プログラム USERIO
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... *
DName+++++++++++ETDsFrom+++To/L+++IDc.Functions++++++++++++++++++++++++++++
D ERROR S 5S 0
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... *
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
*----------------------------------------------------------------*
* 最初の 4 つのパラメーターは、ILE RPG 作成のパラメーター・ *
* リスト。残りはプログラマー定義の PLIST によって定義されます。 *
*----------------------------------------------------------------*
C *ENTRY PLIST
C PARM OPTION 1
C PARM STATUS 1
C PARM ERROR 5 0
C PARM AREA 20
C PARM FLD1 1
*----------------------------------------------------------------*
* ユーザー作成プログラムは渡されたオプションに従って *
* ファイル入出力を実行します。 *
*----------------------------------------------------------------*
C SELECT
C WHEN OPTION = 'O'
C* perform OPEN operation
C WHEN OPTION = 'W'
C* perform WRITE operation
C WHEN OPTION = 'C'
C* perform CLOSE operation
C ENDSL
C RETURN
SPECIAL 装置の入出力操作は、ユーザー作成プログラム USERIO によって制御 されます。 プログラマー定義の PLIST(SPCL) に指定されるパラメーターは、SPECIAL 装置 の RPG 作成のパラメーター・リストの終わりに追加されます。プログラマー指定のパラメーターは、ユーザーの ILE RPG プログラムおよびユーザー作成のルーチン USERIO によってアクセスすることができますが、RPG 作成のパラメーター・リストは、内部 ILE RPG 論理およびユーザー作成のルーチンでしかアクセスすることはできません。