Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1026346
  • 博文数量: 125
  • 博客积分: 10490
  • 博客等级: 上将
  • 技术积分: 2386
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-03 18:26
文章分类

全部博文(125)

文章存档

2011年(1)

2010年(9)

2009年(17)

2008年(98)

分类:

2008-06-30 10:50:38

                          AS400_RPGLE:程序状态数据结构
    在RPGⅣ程序中,可以定义一个程序状态数据结构使程序异常/错误信息成为可用的信息.
       程序状态数据结构是由在数据结构语句的23列上指定S来定义的。程序状态数据结构含有前面定义的子字段,向你提供有关程序异常/错误的信息。

 程序状态数据结构的内容

 

From

(26-32)

To

(33-39)

 

 

 

 

1

10

字符

10

*PROC

程序名

11

15

区十进制

5,0

*STATUS

状态码

16

20

区十进制

5,0

 

前面状态码

21

28

字符

8

 

RPGⅣ源语言行号

29

36

字符

8

*ROUTINE

RPGⅣ中发生异常/错误的子例程的名。在RPG子例程开始时或仅当*STATUS改为非零值程序调用后才更新子字段。以下为子例程名:

*INIT程序初始化*DETL明细行*GETIN

 取输入记录*TOTC总计计算

*TOTL总计行

*DETC明细计算

*OFL溢出行

*TERM程序末

*ROUTINE调用的程序名或过程名(头8

 个字符)

 注:只有在使用正常RPG周期时*ROUTINE才有效。当取非正常RPG周期时,能引起*ROUTINE反映一个错误值。

37

39

区十进制

3,0

PARMS

从调用程序传递给这个程序的参数个数

40

42

字符

3

 

异常类型系统(系统异常CPF或机器异常MCH

43

46

字符

4

 

异常号。对于CPF字段是CPF的信息号,对于一个MCH,则是机器异常号。

47

50

字符

4

 

保留

51

80

字符

30

 

信息工作区。这个区由编译器内部使用,信息组织并非一致,可由用户显示。

81

90

字符

10

 

程序所在库名。

91

170

字符

80

 

抽取异常数据,当*STATUS09999时,放在该字段的信息是CPF信息。

171

174

字符

4

 

标出产生RPG9001异常的异常标识

175

190

字符

16

 

不用

191

198

字符

8

 

作业进入系统的日期(*DATE格式)。对提交的跨夜批作业,在0点时将日期改为下一天。

199

200

区十进制

2,0

 

4位年的头2位,与*YEAR的头2位相同。

201

208

字符

8

 

做最后文件操作的文件名(仅在发生错误时更改)

209

243

字符

35

 

最后文件用的状态信息。这个信息包括状态码,操作码,例程名,源语句行号、记录名,仅在发生错误时更改。

注:操作码的名字与INFDS中的*OPCODE

相同

244

253

字符

10

 

作业名

254

263

字符

10

 

来自用户配置文件的用户名

264

269

区十进制

6,0

 

作业号

270

275

区十进制

6,0

 

作业进入系统的日期(UDATE的格式)(UDATE是从这个日期得到的)。提交的跨夜批作业在0点时日期改为下一天。

276

281

区十进制

6,0

 

程序运行的日期(UDATE格式的系统日期)

282

287

区十进制

6(无小数)

 

程序运行的时间,格式为hhmmss

288

293

字符

6

 

程序编译日期(UDATE格式)

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

 

不用

 

例如 :

      DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++Comments++++++++++

      DMYPSDS          SDS

      D PROC_NAME         *PROC                                             * Procedure name

      D PGM_STATUS        *STATUS                                          * Status code

      D PRV_STATUS             16     20S 0                                 * Previous status

      D LINE_NUM               21     28                                * Src list line num

      D ROUTINE           *ROUTINE                                         * Routine name

      D PARMS             *PARMS                                          * Num passed parms

      D EXCP_TYPE              40     42                                   * Exception type

      D EXCP_NUM               43     46                                 * Exception number

      D*

      D PGM_LIB                81     90                                  * Program library

      D EXCP_DATA              91    170                                   * Exception data

      D EXCP_ID               171    174                                      * Exception Id

      D DATE                  191    198                                  * Date (*DATE fmt)

      D YEAR                  199    200S 0                              * Year (*YEAR fmt)

      D LAST_FILE             201    208                                  * Last file used

      D FILE_INFO             209    243                                   * File error info

      D JOB_NAME              244    253                                    * Job name

      D USER                  254    263                                        * User name

      D JOB_NUM               264    269S 0                                      * Job number

      D JOB_DATE              270    275S 0                                * Date (UDATE fmt)

      D RUN_DATE              276    281S 0                               * Run date (UDATE)

      D RUN_TIME              282    287S 0                               * Run time (UDATE)

      D CRT_DATE              288    293                                     * Create date

      D CRT_TIME              294    299                                    * Create time

      D CPL_LEVEL             300    303                                   * Compiler level

      D SRC_FILE              304    313                                     * Source file

      D SRC_LIB               314    323                                   * Source file lib

      D SRC_MBR               324    333                                   * Source file mbr

      D PROC_PGM              334    343                                    * Pgm Proc is in

      D PROC_MOD              344    353                                     * Mod Proc is in

阅读(1323) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~