■プログラム状況データ構造
表 9. プログラム状況データ構造の内容 開始 位置 終了 (26〜 (26〜 32 39 桁目) 桁目) 形式 長さ キーワード 情報 1 10 文字 10 *PROC メイン・プロシージャーがあればその名前。それ がない場合には、主要ソース・セクションと対応 する名前。 11 15 ゾーン 10 進 5,0 *STATUS 状況コード。 これらのコードの説明について 数 は、トピック1.5.2.1.1の『プログラム状況コー ド』 を参照してください。 16 20 ゾーン 10 進 5,0 前の状況コード。 数 21 28 文字 8 RPG IV ソース・リスト行番号またはステートメ ント番号。ソース・リスト行番号は、 OPTION(*SRCSTMT) が OPTION(*NOSRCSTMT) の代 わりに指定されている場合、ソース・リスト・ス テートメント番号に置き換えられます。そのステ ートメント番号がルート・ソース・メンバーに適 用される場合、ステートメント番号全体が組み込 まれます。ステートメント番号が 6 桁を超える 場合 (すなわち、ゼロ以外のソース ID を組み込 んでいる場合)、8 バイト・フィードバック域の 最初の 2 桁は、ステートメント番号の残りの部 分が 53〜54 桁目に保管されることを示す "+" になります。 29 36 文字 8 *ROUTINE 例外またはエラーが起こった RPG IV ルーチンの 名前。 このサブフィールドは RPG IV ルーチン の開始時点、または *STATUS サブフィールドが ゼロ以外の値によって更新される場合にのみ、プ ログラム呼び出しの後に更新されます。 次の名 前によってルーチンが識別されます。 *INIT プログラム初期設定 *DETL 明細行 *GETIN 入力レコードの入手 *TOTC 合計演算 *TOTL 合計行 *DETC 明細演算 *OFL オーバーフロー行 *TERM プログラム終了 *ROUTINE 呼び出されたプログラムまたはプロシ ージャーの名前(最初の 8 文字) 注: 通常の RPG IV サイクルを使用していない 場合には、*ROUTINE は有効でありません。 プログラムが通常の RPG IV サイクルから はみ出してしまうような論理では、 *ROUTINE が正しい値を反映しない場合があ ります。 37 39 ゾーン 10 進 3,0 *PARMS 呼び出しプログラムからこのプログラムに渡され 数 たパラメーターの数。この値は、%PARMS によっ て戻される値と同じです。 使用可能な情報がな い場合には、-1 が戻されます。 桁目 42 文字 3 例外タイプ(OS/400 システムの例外の場合には CPF またはマシン例外の場合には MCH)。 43 46 文字 4 例外番号。 CPF 例外の場合には、このフィール ドには CPF メッセージ番号が入れられます。 マ シン例外の場合には、マシンの例外番号が入れら れます。 47 50 文字 4 未使用。 51 80 文字 30 メッセージ用の作業域。 この区域は、ILE RPG コンパイラーが内部で使用するための専用区域で す。 情報の編成は、常に一定であるとは限りま せん。 この区域は、ユーザーが表示することが できます。 81 90 文字 10 プログラムが入っているライブラリーの名前。 91 170 文字 80 検索された例外データ。 位置 *STATUS に 09999 が入っている場合に、CPF メッセージがこのサブ フィールドに入れられます。 171 174 文字 4 通知される RNX9001 例外の原因となった例外の 識別。 175 184 文字 10 ファイル操作が最後に行われたファイルの名前 (エラーが起こった場合にのみ更新されます)。 この情報には、常に完全なファイル名が含まれて います。 185 190 文字 6 未使用。 191 198 文字 8 ジョブがシステムに入力された日付 (*DATE 形 式)。バッチ・ジョブが夜間処理として投入され た場合、真夜中を過ぎた時間帯に実行されるバッ チ・ジョブは翌日の日付になります。 この値 は、ジョブ日付から導出され、年は 4 桁に拡張 されます。この値によって表される日付は、270 〜275 桁目で表される日付と同じ日付です。 199 200 ゾーン 10 進 2,0 4 桁の年の先頭の 2 桁。*YEAR の先頭の 2 桁と 数 同じ。このフィールドは、270〜 275 桁目の日付 の世紀部分に適用されます。たとえば、日付が 1999-06-27 の場合、UDATE は 990627 で、この 世紀フィールドは 19 になります。270〜275 桁 目の値とこのフィールドの値を合わせると、191 〜198 桁目にある値の結合情報になります。 注: この世紀フィールドは、276〜281 桁目、ま たは 288〜293 桁目の日付には適用されま せん。 201 208 文字 8 ファイル操作が最後に行われたファイルの名前 (エラーが起こった場合にのみ更新されます)。 長いファイル名が使用されている場合、このファ イル名は切り捨てられます。 長いファイル名の 情報については、175〜184 桁目を参照してくだ さい。 209 243 文字 35 最後に使用されたファイルの状況情報。この情報 には、状況コード、RPG IV 命令コード、RPG IV ルーチン名、ソース・リスト行番号またはステー トメント番号、およびレコード名が含まれます。 これはエラーが起こった場合にのみ更新されま す。 注: 命令コード名は INFDS の *OPCODE と同じ 形式になっています。 ソース・リスト行番号は、OPTION(*SRCSTMT) が OPTION(*NOSRCSTMT) の代わりに指定されている 場合、ソース・リスト・ステートメント番号に置 き換えられます。 そのステートメント番号がル ート・ソース・メンバーに適用される場合、ステ ートメント番号全体が組み込まれます。ステート メント番号が 6 桁を超える場合 (すなわち、ゼ ロ以外のソース ID を組み込んでいる場合)、8 バイト・フィードバック域の最初の 2 桁は、ス テートメント番号の残りの部分が 356〜357 桁目 に保管されることを示す "+" になります。 244 253 文字 10 ジョブ名。 254 263 文字 10 ユーザー・プロファイルからのユーザー名。 264 269 ゾーン 10 進 6,0 ジョブ番号。 数 270 275 ゾーン 10 進 6,0 プログラムの実行がシステムで開始された日付 数 (UDATE 形式)(UDATE はこの日付から導出されま す)。UDATE の説明については、トピック1.1.3の 『ユーザー日付の特殊語』 を参照してくださ い。これは、一般に「ジョブ日付」と呼ばれてい ます。この値によって表される日付は、191〜198 桁目で表される日付と同じ日付です。 276 281 ゾーン 10 進 6,0 プログラム実行の日付(UDATE 形式のシステム日 数 付)。 この値の年の部分が 40〜99 の間の場 合、この日付は 1940〜1999 の間になります。そ れ以外の場合、この日付は 2000〜2039 の間にな ります。199〜200 桁目の「世紀」値は、このフ ィールドには適用されません。 282 287 ゾーン 10 進 6,0 プログラム実行の時刻(hhmmss 形式)。 数 288 293 文字 6 プログラムがコンパイルされた日付(UDATE 形 式)。 この値の年の部分が 40〜99 の間の場 合、この日付は 1940〜1999 の間になります。そ れ以外の場合、この日付は 2000〜2039 の間にな ります。199〜200 桁目の「世紀」値は、このフ ィールドには適用されません。 294 299 文字 6 プログラムがコンパイルされた時刻(hhmmss 形 式)。 300 303 文字 4 コンパイラーのレベル。 304 313 文字 10 ソース・ファイル名。 314 323 文字 10 ソース・ライブラリー名。 324 333 文字 10 ソース・ファイル・メンバー名。 334 343 文字 10 プロシージャーが入っているプログラム。 344 353 文字 10 プロシージャーが入っているモジュール。 354 429 文字 76 未使用。 354 355 ゾーン 10 進 2, 0 ソース ID は、21〜28 桁目からのステートメン 数 ト番号と突き合わせられます。 356 357 ゾーン 10 進 2, 0 ソース ID は、228〜235 桁目からのステートメ 数 ント番号と突き合わせられます。 358 367 文字 10 現行ユーザー・プロファイル名。 368 429 文字 62 未使用。
■ファイル状況データ構造
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 * 定義済み装置数 図 27. オープン・フィードバック情報を持つ INFDS のコーディング例