ファイル情報データ構造

ファイル情報データ構造 (INFDS) を各ファイルに定義することによって、ファイ ルの例外/エラーおよびファイル・フィードバック情報をプログラムで使用可能 にすることができます。 ファイル情報データ構造は各ファイルごとに固有のものであって、メイン・ソース・セク ションに定義されていなければなりません。 同じ INFDS が、ファイルを使用するすべてのプロシージャーによって使用されます。

INFDS には、次のフィードバック情報が入れられます。

注:
属性入手フィードバックは、入出力フィードバックおよび装置固有のフィー ドバックと同じ INFDS の桁を使用します。 これは、属性入手フィードバックが ある場合には、入出力フィードバックまたは 装置固有のフィードバックは持てないこと、あるいはその逆の場合を意味します。

INFDS の長さは、INFDS の中で宣言したフィールドによって異なります。 INFDS の最小の長さは 80 です。

ファイル・フィードバック情報

ファイル・フィードバック情報は、ファイル情報データ構造の 1 桁目から始まり 、80 桁目で終わります。 ファイル・フィードバック情報には、RPG に固有のファイルに関するデータが入 れられます。 これには、次のものを識別するエラー/例外に関する情報が含まれます。

INFDS のファイル・フィードバック・セクションの 1 から 66 桁目のフィールドは、 プログラム中で INFDS が指定されなくとも常に提供および更新されます。 INFDS の ファイル・フィードバック・セクションの 67 から 80 桁目のフィールドは 、特定の装置に対する POST 命令の後にのみ更新されます。

INFDS が指定されていない場合には、DUMP 命令を使用して、INFDS のファイル・ フィードバック・セクションの情報を出力することができます。 詳細については、DUMP (プログラム・ダンプ)を参照 してください。

INFDS のファイル・フィードバック・セクションの重ね書きは、後続のエラー処 理で予期しない結果になることがあり、お勧めできません。

INFDS のファイル・フィードバック・セクションで一般によく使用される サブフィールドの一部の位置は、特殊なキーワードによって定義されます。 INFDS のファイル・フィードバック・セクションの内容および特殊なキーワード とその説明は、次の表にあります。

表 19. ファイル情報データ構造 (INFDS) 内で使用できるファイル・フィードバック情報の内容
開始位置
(26 から
32 桁目)
終了
(26 から
39 桁目)
 
形式
 
長さ
 
キーワード
 
情報
1 8 文字 8 *FILE ファイル名の最初の 8 文字。
9 9 文字 1 オープン指示 (1 = オープン)。
10 10 文字 1 ファイルの終わり (1 = ファイルの終わり)。
11 15 ゾーン 10 進数 5,0 *STATUS 状況コード。 これらのコードの説明については、ファイル状況コードを 参照してください。
16 21 文字 6 *OPCODE 命令コード。最初の 5 桁 (左寄せ) は、演算命令コードの文字表現を使用する ことによって命令のタイプを指定します。 たとえば、READE が処理されていた場 合には、READE が左端の 5 桁に入れられます。 命令が暗黙の操作 (たとえば、1 次ファイルの読み取りまたは出力仕様書 に対する更新) であった場合には、同等の命令コード (READ または UPDAT など) が生成され、 位置 *OPCODE に入れられます。 6 文字の英字名をもつ命令コードは 5 文字の英字に短縮されます。
DELETE
DELET
EXCEPT
EXCPT
READPE
REDPE
UNLOCK
UNLCK
UPDATE
UPDAT
残りの桁には、次のいずれかが入ります。
F
最後の命令はファイル名に対して指定されました。
R
最後の命令はレコードに対して指定されました。
I
最後の命令は暗黙のファイル命令でした。
22 29 文字 8 *ROUTINE ファイル操作が実行されたルーチン (サブルーチンを含む) の名前の最初の 8 文字。
30 37 文字 8 OPTION(*NOSRCSTMT) が指定されている場合、これは、ファイル操作 のソース・リスト行番号です。OPTION(*SRCSTMT) が指定されている 場合、これは、ファイル操作のソース・リスト・ステートメント番号 です。 そのステートメント番号がルート・ソース・メンバーに適用される 場合、ステートメント番号全体が組み込まれます。 ステートメント番号が 6 桁を超える場合、すなわち、ゼロ以外 のソース ID を組み込んでいる場合、8 バイト・フィードバック域の 最初の 2 桁は、ステートメント番号の残りの部分が 53 から 54 桁目に保管される ことを示す "+" になります。
38 42 ゾーン 10 進数 5,0 SPECIAL ファイルでのエラーに対するユーザー指定の理由。
38 45 文字 8 *RECORD プログラム記述ファイルの場合には、レコード識別標識は左寄せしてフィールド に入れられ、残りの 6 桁には、ブランクが埋め込まれます。 外部記述ファイルの場合には、例外/エラーが起こった時に処理されていたレコ ードの名前の最初の 8 文字。
46 52 文字 7 マシンまたはシステム・メッセージ番号。
53 66 文字 14 未使用。
77 78 2 進数 2 ソース ID は、30 から 37 桁目からのステートメント番号と突き合わせ られます。
表 20. POST の後にファイル情報データ構造 (INFDS) で使用可能なファイル・フィードバック情報の内容
開始位置
(26 から
32 桁目)
終了
(26 から
39 桁目)
 
形式
 
長さ
 
キーワード
 
情報
67 70 ゾーン 10 進数 4,0 *SIZE 画面サイズ (装置の画面の行数と桁数の積)。
71 72 ゾーン 10 進数 2,0 *INP 表示装置のキーボード・タイプ。 表示装置が英数字またはカタカナの場合は 00 に設定されます。 キーボードが漢字の場合は 10 に設定されます。
73 74 ゾーン 10 進数 2,0 *OUT 表示装置タイプ。 表示装置が英数字またはカタカナの場合は 00 に設定されます。 表示装置が漢字の場合は 10 に設定されます。 表示装置が DBCS の場合は 20 に設定されます。
75 76 ゾーン 10 進数 2,0 *MODE 常に 00 に設定されます。
INFDS ファイル・フィードバックの例

ファイル・フィードバック・セクションのフィールドが入る INFDS を指定す るために、次の指定を行うことができます。

図 26. ファイル・フィードバック情報を持つ INFDS のコーディング例
FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++Comments++++++++++
FMYFILE    IF   E             DISK    INFDS(FILEFBK)
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++Comments++++++++++
DFILEFBK          DS
D FILE              *FILE                                                  * ファイル名
D OPEN_IND                9      9N                                        * ファイルはオープン ?
D EOF_IND                10     10N                                        * ファイルは EOF ?
D STATUS            *STATUS                                                * 状況コード
D OPCODE            *OPCODE                                                * 最後の命令コード
D ROUTINE           *ROUTINE                                               * RPG ルーチン
D LIST_NUM               30     37                                         * リスト行
D SPCL_STAT              38     42S 0                                      * SPECIAL 状況
D RECORD            *RECORD                                                * レコード名
D MSGID                  46     52                                         * エラー MSGID
D SCREEN            *SIZE                                                  * 画面サイズ
D NLS_IN            *INP                                                   * NLS 入力 ?
D NLS_OUT           *OUT                                                   * NLS 出力 ?
D NLS_MODE          *MODE                                                  * NLS モード ?
注:
キーワードはラベルではないので、サブフィールドのアクセスに使用する ことはできません。 記入項目が短い場合には、右側にブランクが埋め込まれます。

オープン・フィードバック情報

ファイル情報データ構造の 81 から 240 桁目には、オープン・フィードバック情 報が入れられます。 INFDS と関連したファイルがオープンされている時にはいつ でも、RPG によってファイル・オープン・フィードバック域の内容が INFDS のオ ープン・フィードバック・セクションにコピーされます。 これには、複数のメン バーが処理されるファイルの読み取り操作の結果としてオープンされたメンバーが 含まれます。

オープン・フィードバック域の内容、およびそれらのフィールドがどのファイル・タイプの場合に有効かについては、iSeries Information Center に説明があります。

INFDS オープン・フィードバックの例

オープン・フィードバック・セクションのフィールドが入る INFDS を指定す るためには、次の記入を行うことができます。

図 27. オープン・フィードバック情報を持つ INFDS のコーディング例
FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++Comments++++++++++
FMYFILE    O    F  132        PRINTER INFDS(OPNFBK)
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++Comments++++++++++
DOPNFBK           DS
D ODP_TYPE               81     82                                   * ODP タイプ
D FILE_NAME              83     92                                   * ファイル名
D LIBRARY                93    102                                   * ライブラリー名
D SPOOL_FILE            103    112                                   * スプール・ファイル名
D SPOOL_LIB             113    122                                   * スプール・ファイル・ライブラリー
D SPOOL_NUM             123    124I 0                                * スプール・ファイル番号
D RCD_LEN               125    126I 0                                * 最大レコード長
D KEY_LEN               127    128I 0                                * 最大キー長
D MEMBER                129    138                                   * メンバー名
D TYPE                  147    148I 0                                * ファイル・タイプ
D ROWS                  152    153I 0                                * PRT/DSP 行数
D COLUMNS               154    155I 0                                * PRT/DSP 桁数
D NUM_RCDS              156    159I 0                                * レコード数
D ACC_TYPE              160    161                                   * アクセス・タイプ
D DUP_KEY               162    162                                   * 重複キー?
D SRC_FILE              163    163                                   * ソース・ファイル?
D VOL_OFF               184    185I 0                                * ボリューム・ラベル・オフセット
D BLK_RCDS              186    187I 0                                * ブロックの最大レコード数
D OVERFLOW              188    189I 0                                * オーバーフロー行
D BLK_INCR              190    191I 0                                * ブロック増分
D FLAGS1                196    196                                   * 雑フラグ
D REQUESTER             197    206                                   * 要求元端末名
D OPEN_COUNT            207    208I 0                                * オープン・カウント
D BASED_MBRS            211    212I 0                                * 基本メンバー数
D FLAGS2                213    213                                   * 雑フラグ
D OPEN_ID               214    215                                   * オープン識別コード
D RCDFMT_LEN            216    217I 0                                * 最大レコード様式長
D CCSID                 218    219I 0                                * データベース CCSID
D FLAGS3                220    220                                   * 雑フラグ
D NUM_DEVS              227    228I 0                                * 定義済み装置数

入出力フィードバック情報

ファイル情報データ構造の 241 から 366 桁目は、入出力フィードバック情報用に 使用されます。 次の場合に、ファイル共通入出力フィードバック域の内容は、RPG によって INFDS の入出力フィードバック・セクションにコピーされます。

詳細については、POST (転記)を参照してください。

入出力フィードバック域の内容の説明は、Information Center にあります。

INFDS 入出力フィードバックの例

入出力フィードバック・セクションのフィールドが入る INFDS を指定するために は、次の記入を行うことができます。

図 28. 入出力フィードバック情報を持つ INFDS のコーディング例
FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++Comments++++++++++
FMYFILE    IF   E             DISK    INFDS(MYIOFBK)
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++Comments++++++++++
DMYIOFBK          DS
D                                                                          * 241 から 242 未使用
D WRITE_CNT             243    246I 0                                      * 書き出しカウント
D READ_CNT              247    250I 0                                      * 読み取りカウント
D WRTRD_CNT             251    254I 0                                      * 読み取り/書き出しカウント
D OTHER_CNT             255    258I 0                                      * その他の入出力カウント
D OPERATION             260    260                                         * 現在の命令
D IO_RCD_FMT            261    270                                         * レコード様式名
D DEV_CLASS             271    272                                         * 装置クラス
D IO_PGM_DEV            273    282                                         * プログラム装置名
D IO_RCD_LEN            283    286I 0                                      * 入出力のレコード長

装置固有のフィードバック情報

ファイル情報データ構造の装置固有のフィードバック情報は INFDS の 367 桁目 から始まり、装置固有の入出力フィードバック情報が入れられます。

装置固有のフィードバック情報が必要な時の INFDS の長さは、ファイルの 装置タイプと DISK ファイルがキー付きかどうかの 2 つの要因によって 異なります。 最 小の長さは 528 ですが、一部のファイルにはそれより長い INFDS が必要です。

データベース・ファイル、印刷装置ファイル、ICF ファイルおよび表示装置ファイルの、装置フィードバックの内容および長さの詳細については、iSeries Information Center の 「データベースおよびファイル・システム」カテゴリーにあります。

次の場合に、ファイルの装置固有の入出力フィードバック域の内容は RPG に よって INFDS の装置固有のフィードバック・セクションにコピーされます。

注:
  1. 各キー付き入力操作の後では、キー・フィールドのみが更新されます。
  2. 各キーなし入力操作の後では、相対レコード番号のみが更新されます。

詳細については、POST (転記)を参照してください。

INFDS 装置固有のフィードバックの例

装置固有のフィードバック・セクションのフィールドが入る INFDS を指定するた めには、次の記入を行うことができます。

図 29. 印刷装置固有のフィードバック情報を持つ INFDS のコーディング例
FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++Comments++++++++++
FMYFILE    O    F  132        PRINTER INFDS(PRTFBK)
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++Comments++++++++++
DPRTFBK           DS
D CUR_LINE              367    368I 0                                      * 現在の行番号
D CUR_PAGE              369    372I 0                                      * 現在のページ・カウント
 * PRT_FLAGS の最初のビットがオンの場合は、スプール・ファイルが削除されます。
 * このビットをテストするには、TESTB X'80' または TESTB '0' を使用します。
D PRT_FLAGS             373    373
D PRT_MAJOR             401    402                                         * メジャー戻りコード
D PRT_MINOR             403    404                                         * マイナー戻りコード
図 30. データベース固有のフィードバック情報を持つ INFDS のコーディング例
FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++Comments++++++++++
FMYFILE    IF   E             DISK    INFDS(DBFBK)
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++Comments++++++++++
DDBFBK            DS
D FDBK_SIZE             367    370I 0                                      * DB フィードバックのサイズ
D JOIN_BITS             371    374I 0                                      * JFILE ビット
D LOCK_RCDS             377    378I 0                                      * ロック・レコード数
D POS_BITS              385    385                                         * ファイル位置ビット
D DLT_BITS              384    384                                         * レコード削除済みビット
D NUM_KEYS              387    388I 0                                      * キーの数 (2 進数)
D KEY_LEN               393    394I 0                                      * キー長
D MBR_NUM               395    396I 0                                      * メンバー番号
D DB_RRN                397    400I 0                                      * 相対レコード番号
D KEY                   401   2400                                         * キー値
D                                                                          *  (最大サイズ 2000)
図 31. ICF 固有のフィードバック情報を持つ INFDS のコーディング例
FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++Comments++++++++++
FMYFILE    CF   E             WORKSTN INFDS(ICFFBK)
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++Comments++++++++++
DICFFBK           DS
D ICF_AID               369    369                                         * AID バイト
D ICF_LEN               372    375I 0                                      * 実際のデータ長
D ICF_MAJOR             401    402                                         * メジャー戻りコード
D ICF_MINOR             403    404                                         * マイナー戻りコード
D SNA_SENSE             405    412                                         * SNA センス戻りコード
D SAFE_IND              413    413                                         * 安全標識
D RQSWRT                415    415                                         * 要求書き出し
D RMT_FMT               416    425                                         * リモート・レコード様式
D ICF_MODE              430    437                                         * モード名
図 32. 表示装置固有のフィードバック情報を持つ INFDS のコーディング例
FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++Comments++++++++++
FMYFILE    CF   E             WORKSTN INFDS(DSPFBK)
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++Comments++++++++++
DDSPFBK            DS
D DSP_FLAG1             367    368                                         * 表示フラグ
D DSP_AID               369    369                                         * AID バイト
D CURSOR                370    371                                         * カーソル位置
D DATA_LEN              372    375I 0                                      * 実際のデータ長
D SF_RRN                376    377I 0                                      * サブファイル RRN
D MIN_RRN               378    379I 0                                      * サブファイル最小 RRN
D NUM_RCDS              380    381I 0                                      * サブファイル・レコード数
D ACT_CURS              382    383                                         * 活動ウィンドウ
D                                                                          * カーソル位置
D DSP_MAJOR             401    402                                         * メジャー戻りコード
D DSP_MINOR             403    404                                         * マイナー戻りコード

属性入手フィードバック情報

ファイル情報データ構造の属性入手フィードバック情報は、INFDS の 241 桁 目から始まり、表示装置または ICF セッション (ワークステーション・ファイルと関連した装 置) に関する情報が入れられます。 属性入手フィードバック情報の終了位置は、属性入手データ管理操作によって戻 されたデータの長さによって異なります。 属性入手データ管理操作は、演算項目 1 にプログラム装置を指定した POST が使用された時に実行されます。

属性入手データの内容および長さについての詳細は、Information Center にあります。

INFDS 属性入手フィードバックの例

属性入手フィードバック・セクションのフィールドが入る INFDS を指定する ためには、次の記入を行うことができます。

図 33. 表示装置ファイル属性入手フィードバック情報を持つ INFDS のコーディング例
FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++Comments++++++++++
FMYFILE    CF   E             WORKSTN INFDS(DSPATRFBK)
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++Comments++++++++++
DDSPATRFBK        DS
D PGM_DEV               241    250                                         * プログラム装置
D DEV_DSC               251    260                                         * 装置記述
D USER_ID               261    270                                         * ユーザー ID
D DEV_CLASS             271    271                                         * 装置クラス
D DEV_TYPE              272    277                                         * 装置タイプ
D REQ_DEV               278    278                                         * 要求元端末?
D ACQ_STAT              279    279                                         * 入手状況
D INV_STAT              280    280                                         * 送信勧誘状況
D DATA_AVAIL            281    281                                         * 使用可能データ
D NUM_ROWS              282    283I 0                                      * 行数
D NUM_COLS              284    285I 0                                      * 桁数
D BLINK                 286    286                                         * 明滅可能?
D LINE_STAT             287    287                                         * オンライン/オフライン?
D DSP_LOC               288    288                                         * 表示位置
D DSP_TYPE              289    289                                         * 表示装置タイプ
D KBD_TYPE              290    290                                         * キーボード・タイプ
D CTL_INFO              342    342                                         * 制御装置情報
D COLOR_DSP             343    343                                         * カラー可能?
D GRID_DSP              344    344                                         * 格子線表示?
 * 次のフィールドは ISDN に適用されます。
D ISDN_LEN              385    386I 0                                      * リモート番号長
D ISDN_TYPE             387    388                                         * リモート番号タイプ
D ISDN_PLAN             389    390                                         * リモート番号計画
D ISDN_NUM              391    430                                         * リモート番号
D ISDN_SLEN             435    436I 0                                      * リモート・サブアドレス
D                                                                          *   長
D ISDN_STYPE            437    438                                         * リモート・サブアドレス
D                                                                          *   タイプ
D ISDN_SNUM             439    478                                         * リモート・サブアドレス
D ISDN_CON              480    480                                         * 接続
D ISDN_RLEN             481    482I 0                                      * リモート・アドレス長
D ISDN_RNUM             483    514                                         * リモート・アドレス
D ISDN_ELEN             519    520                                         * 拡張長
D ISDN_ETYPE            521    521                                         * 拡張タイプ
D ISDN_ENUM             522    561                                         * 拡張番号
D ISDN_XTYPE            566    566                                         * X.25 呼び出しタイプ
D
図 34. ICF ファイル属性入手フィードバック情報を持つ INFDS のコーディング例
FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++Comments++++++++++
FMYFILE    CF   E             WORKSTN INFDS(ICFATRFBK)
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++Comments++++++++++
DICFATRFBK        DS
D PGM_DEV               241    250                                     * プログラム装置
D DEV_DSC               251    260                                     * 装置記述
D USER_ID               261    270                                     * ユーザー ID
D DEV_CLASS             271    271                                     * 装置クラス
D DEV_TYPE              272    272                                     * 装置タイプ
D REQ_DEV               278    278                                     * 要求元端末?
D ACQ_STAT              279    279                                     * 入手状況
D INV_STAT              280    280                                     * 送信勧誘状況
D DATA_AVAIL            281    281                                     * 使用可能データ
D SES_STAT              291    291                                     * セッション状況
D SYNC_LVL              292    292                                     * 同期レベル
D CONV_TYPE             293    293                                     * 会話タイプ
D RMT_LOC               294    301                                     * リモート・ロケーション
D LCL_LU                302    309                                     * ローカル LU 名
D LCL_NETID             310    317                                     * ローカル・ネットワーク ID
D RMT_LU                318    325                                     * リモート LU
D RMT_NETID             326    333                                     * リモート・ネットワーク ID
D APPC_MODE             334    341                                     * APPC モード
D LU6_STATE             345    345                                     * LU6 会話状態
D LU6_COR               346    353                                     * LU6 会話
D                                                                      * 相関係数
 * 次のフィールドは ISDN に適用されます。
D ISDN_LEN              385    386I 0                                  * リモート番号長
D ISDN_TYPE             387    388                                     * リモート番号タイプ
D ISDN_PLAN             389    390                                     * リモート番号計画
D ISDN_NUM              391    430                                     * リモート番号
D ISDN_SLEN             435    436I 0                                  * サブアドレス長
D ISDN_STYPE            437    438                                     * サブアドレス・タイプ
D ISDN_SNUM             439    478                                     * リモート・サブアドレス
D ISDN_CON              480    480                                     * 接続
D ISDN_RLEN             481    482I 0                                  * リモート・アドレス長
D ISDN_RNUM             483    514                                     * リモート・アドレス
D ISDN_ELEN             519    520                                     * 拡張長
D ISDN_ETYPE            521    521                                     * 拡張タイプ
D ISDN_ENUM             522    561                                     * 拡張番号
D ISDN_XTYPE            566    566                                     * X.25 呼び出しタイプ
 * 次の情報が入手可能となるのは、プログラム開始要求を受信した
 * 結果としてプログラムが開始された時のみです。(P_ は保護を表します。)
D TRAN_PGM              567    630                                     * トランザクション・プログラム名
D P_LUWIDLN             631    631                                     * LUWID フィールドの長さ
D P_LUNAMELN            632    632                                     * LU-NAME の長さ
D P_LUNAME              633    649                                     * LU-NAME
D P_LUWIDIN             650    655                                     * LUWID インスタンス
D P_LUWIDSEQ            656    657I 0                                  * LUWID 順序番号

 * 次の情報が入手可能となるのは、保護会話がリモート・システムで
 * 開始された時のみです。(U_ は非保護を表します。)
D U_LUWIDLN             658    658                                     * LUWID フィールドの長さ
D U_LUNAMELN            659    659                                     * LU-NAME の長さ
D U_LUNAME              660    676                                     * LU-NAME
D U_LUWIDIN             677    682                                     * LUWID インスタンス
D U_LUWIDSEQ            683    684I 0                                  * LUWID 順序番号

ブロック化の考慮事項

INFDS の入出力固有のフィードバックのフィールドおよび INFDS の装置固有のフ ィードバック情報セクションのフィールドは、レコードがブロック化および非ブ ロック化されているファイルに対する操作のたびには更新されません。 フィードバック情報が更新されるのは、レコードのブロックが RPG プログ ラムとオペレーティング・システムの間で転送された時のみです。 しかし、データベース・ファイル で入力のブロック化を実行している場合には、INFDS の データベース・フィードバック・セクションの相対レコード番号お よびキーの値は次の場合に更新されます。

更新済みの有効なフィードバック情報は、CL コマンドの OVRDBF (データベー ス・ファイル一時変更) に SEQONLY(*NO) を指定することによって得られます。 ファイル一時変更コマンドを使用した場合には、ILE RPG コンパイラーはファイル中のレコードのブロック化または非ブロック化は実行しません。

RPG でのレコードのブロック化および非ブロック化の詳細について は、「WebSphere Development Studio: ILE RPG プログラマーの手引き」を参照してください。

ファイル状況コード

サブフィールド位置 *STATUS に入るコードで 99 より大きいものは、例外/エラー条件と見なされます。 状況コードが 99 より大きい場合に は、73 から 74 桁目にエラー標識が指定されていれば、その標識がオンに設定され ます。'E' 拡張が指定されていれば、%ERROR 組み込み関数が 1 を戻すように 設定されます。そうでない場合は、ファイル例外/エラー処理サブルーチンが 制御を受け取ります。 位置 *STATUS は各ファイル操作の後に更新されます。

例外/エラーに関する情報を入手するために、%STATUS 組み込み関数を使用 することができます。この関数は、プログラムまたはファイル状況に関して設定された最新の値を戻します。 ファイルが指定されている場合、%STATUS は、 指定されたファイルに関する INFDS *STATUS フィールドに入っている値を戻します。

ファイル情報データ構造のサブフィールド位置 *STATUS には、以下の表のコード が入れられます。

表 21. 通常のコード
コード 装置1 RC2 条件
00000     例外/エラーなし。
00002 W 適用されません。 機能キーを使用した表示の終了。
00011 W、D、SQ 11xx 読み取り時のファイルの終わり (入力)。
00012 W、D、SQ 適用されません。 CHAIN、SETLL、または SETGT 命令でのレコード不在条件。
00013 W 適用されません。 WRITE 命令でサブファイルがいっぱい。
注:
1 『装置』とは、 条件が適用される装置のことです。 次の略語が使用されます。 P = PRINTER; D = DISK; W = WORKSTN; SP = SPECIAL; SQ = 順次。RC の欄のメジャー/マイナー戻りコードは、ワークステーション・ファイルにのみ適用されます。2 メジャー/マイナー戻りコードを 記述するために mmnn の形式が使用されています。mm がメジャー戻りコード で、nn がマイナー戻りコードです。
表 22. 例外/エラー・コード
コード 装置1 RC2 条件
01011 W、D、SQ 適用されません。 定義されていないレコード・タイプ (入力レコードがレコード識別標識と一致 しない)。
01021 W、D、SQ 適用されません。 すでに存在しているレコードを書き出そうとした (使用中のファイルに固有の キーがあり、キーが重複した場合、あるいは相対レコード番号を重複してサブフ ァイルに書き出そうとした場合)。
01022 D 適用されません。 ファイル・メンバーで参照制約エラーが検出された。
01023 D、SQ 適用されません。 ファイル操作が実行される前のトリガー・プログラムのエラー。
01024 D、SQ 適用されません。 ファイル操作が実行された後のトリガー・プログラムのエラー。
01031 W、D、SQ 適用されません。 突き合わせフィールドの順序の誤り。
01041 適用されません。 適用されません。 配列/テーブルのロード順序のエラー。
01042 適用されません。 適用されません。 配列/テーブルのロード順序のエラー。代替照合順序が使用されます。
01051 適用されません。 適用されません。 配列/テーブル・ファイルの項目が多すぎる。
01071 W、D、SQ 適用されません。 数値順序エラー。
011214 W 適用されません。 印刷キーの DDS キーワードに標識がない。
011224 W 適用されません。 前ページ・キーの DDS キーワードに標識がない。
011234 W 適用されません。 次ページ・キーの DDS キーワードに標識がない。
011244 W 適用されません。 CLEAR キーの DDS キーワードに標識がない。
011254 W 適用されません。 HELP キーの DDS キーワードに標識がない。
011264 W 適用されません。 HOME キーの DDS キーワードに標識がない。
01201 W 34xx 入力でレコードの不一致が検出された。
01211 すべて 適用されません。 クローズされているファイルへの入出力操作。
01215 すべて 適用されません。 すでにオープン済みのファイルへ OPEN が出された。
012163 すべて あり 暗黙の OPEN/CLOSE 命令でのエラー。
012173 すべて あり 明示の OPEN/CLOSE 命令でのエラー。
01218 D、SQ 適用されません。 レコードがすでにロックされている。
01221 D、SQ 適用されません。 前に読み取りを行わないで更新操作を行おうとした。
01222 D、SQ 適用されません。 参照制約エラーのためにレコードを割り振ることができない。
01231 SP 適用されません。 SPECIAL ファイルでのエラー。
01235 P 適用されません。 PRTCTL のスペースまたはスキップ記入項目にエラー。
01241 D、SQ 適用されません。 レコード番号が見付からない (レコード・アドレス・ファイルに指定されたレコード番号が処理中のファイル にない)。
01251 W 80xx 81xx 永続的な入出力エラーが起こった。
01255 W 82xx 83xx セッションまたは装置エラーが起こった。 回復手順が使用できる。
01261 W 適用されません。 入手できる装置の最大数を超えようとした。
01271 W 適用されません。 使用できない装置を入手しようとした。
01281 W 適用されません。 入手されていない装置への操作。
01282 W 0309 制御付きオプションによるジョブの終了。
01284 W 適用されません。 単一装置ファイルの 2 番目の装置を入手できない。
01285 W 0800 すでに入手済みの装置を入手しようとした。
01286 W 適用されません。 共用ファイルを SAVDS または IND オプションによりオープンしようとした。
01287 W 適用されません。 応答標識が IND 標識と上書きしている。
01299 W、D、SQ あり その他の入出力エラーが検出された。
01331 W 0310 ワークステーション・ファイルからの READ で待ち時間を超過した。
注:
  1. 『装置』とは、条件が適用される装置のことを意味します。次の略語が使用されます。 P = PRINTER; D = DISK; W = WORKSTN; SP = SPECIAL; SQ = 順次。RC の欄のメジャー/マイナー戻りコードは、ワークステーション・ ファイルにのみ適用されます。
  2. メジャー/マイナー戻りコードを記述するために mmnn の形式が使用されていま す。mm がメジャー戻りコードで、nn がマイナー戻りコードです。
  3. オープンまたはクローズ操作の時点で発生したエラーは、メジャー/マイナーの 戻りコード値に関係なく、1216 または 1217 の *STATUS 値になります。
  4. 特別な処理については、図 9 を参照してください。

次の表は、ワークステーション・ファイルだけを使用している AS/400 プログラムで起こったエラーをマッピングする *STATUS 値に対するメジャー/マイナー戻りコードを示しています。 メジャー/マイナー戻りコードの詳細については、Information Center を参照してください。

メジャー マイナー *STATUS
00、02 すべて 00000
03 すべて (09、10 を除く) 00000
03 09 01282
03 10 01331
04 すべて 01299
08 すべて 012851
11 すべて 00011
34 すべて 01201
80、81 すべて 01251
82、83 すべて 01255
注:
  1. 戻りコード・フィールドは、1285、1261、または 1281 の *STATUS 値の場合に は、データ管理機能を呼び出す前にこれらの条件が検出されるので、更新 されません。 これらのエラーのモニターには、対応するメジャー/マイナー戻りコード値で はなく、*STATUS 値を検査しなければなりません。