■プログラム状況データ構造
表 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 未使用。