SPECIAL ファイルの使用例

図 184 には、プログラム内での RPG 装置名 SPECIAL の使用 方法を示してあります。この例では、ファイル EXCPTN に見付かったファイル記述が装置 SPECIAL と関 連しています。

図 184. 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

図 185 には、ユーザー作成プログラム USERIO を示してありま す。

図 185. ユーザー作成プログラム 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 論理およびユーザー作成のルーチンでしかアクセスすることはできません。