RPG - estructura de datos

 
Vista:

estructura de datos

Publicado por German (6 intervenciones) el 12/05/2005 08:37:27
¿Que es la Estructura de Datos del Estado del Programa? ¿Cómo y por qué se utilizan éstos?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:estructura de datos

Publicado por Guvaro (2 intervenciones) el 03/06/2009 18:33:09
La Estructura de Datos de Estado de Programa (EDEP) es una estructura de datos que contiene subcampos predefinidos (tabla 1) que nos proporcionan información acerca del programa en uso.

Los subcampos de la estructura de datos nos permiten identificar el código de error (tabla 2) producido en el programa, pero también nos permite recuperar información básica sobre el programa (número y nombre del trabajo, usuario, fecha en la que el programa empezó a ejecutarse) que nos permitirá conocer algunas de sus características para poder ejecutar algunos programas o utilidades.

Cualquier código que se sitúe en la posición del subcampo *STATUS (posición 11 a 15) que sea mayor que 99 se considerará una condición de excepción/error.

Para indicar una subrutina escrita por un usuario que reciba el control de la aplicación cuando se produzca una situación de error/excepción debemos especificar *PSSR en el factor 1 de la operación BEGSR de la subrutina.

Tabla 1

Desde Hasta Formato Longitud Contenido
1 10 C 10 Nombre del programa
11 15 D 5 Código de estado
16 20 D 5 Código de estado previo
21 28 C 8 Número secuencia sentencia fuente RPG/400
29 36 C 8 Nombre de la rutina RPG/400 en la que se produjo la execepción o el error
37 39 D 3 Número de parámetros pasados a este programa
40 42 C 3 Tipo de excepción (CPF o MCH)
43 46 C 4 Número de exepción
47 50 C 4 Número MI/ODT
51 80 C 30 Área de trabajo para mensajes
81 90 C 10 Nombre de la biblioteca en la que se encuentra el programa
91 170 C 80 Datos de excepción recuperados. Los mensajes CPF se colocan en este subcampo cuando la posición *STATUS contiene 09999
171 174 C 4 Identificación de la excepción que provocó la excepción RPG9001 que ha de señalizarse
175 198 24 No se utiliza
199 200 D 2 Los primeros dos dígitos de una año de cuatro dígitos.
201 208 C 8 Nombre del último archivo en el que se produjo la última operación de archivo (sólo se actualiza cuando se produce un error)
209 243 C 35 Información de estado sobre el último archivo utilizado. Este subcampo incluye el código de estado, el nombre de la rutina RPG/400, el número de la sentencia y el nombre del registro. Se actualiza cuando se produce un error.
244 253 C 10 Nombre de trabajo
254 263 C 10 Nombre de usuario
264 269 D 6 Número de trabajo
270 275 D 6 Fecha en la que el programa empezó a ejecutarse
276 281 D 6 Fecha en la que se ejecutó el programa
282 287 D 6 Hora de ejecución del programa
288 293 C 6 Fecha en la que se compiló el programa
294 299 C 6 Hora en la que se compilo el programa
300 303 C 4 Nivel del compilador
304 313 C 10 Nombre del archivo fuente
314 323 C 10 Nombre de la biblioteca fuente
324 333 C 10 Nombre del miembro del archivo fuente
334 429 96 No se utiliza

Tabla 2

Códigos de excepción/error

Código Condición
00100 Valor fuera de rango para la operación de serie
00101 Raiz cuadrada negativa
00102 Dividir por cero
00121 Índice de matriz no válido
00122 OCUR fuera de rango
00123 Insertada la restauración durante el paso de incialización del programa
00202 Anomalía en programa llamado; indicador parada (H1 a H9) no activado
00211 Programa especificado en CALL o FREE no encontrado
00221 Programa llamado intentó usar un parámetro que no se le había pasado
00231 Programa llamado retornó con un indicador parada activado
00232 Indicador parada activado en este programa
00233 Indicador parada activado al procesar operación RETRN
00299 Anomalía en vuelco con formato RPG/400
00333 Error en operación DSPLY
00401 Área de datos especificada en IN/OUT no encontrada
00402 *PDA no válido para trabajo que no es de prearranque
00411 Tipo o longitud área de datos no coincide
00412 Área datos no bloqueada para salida
00413 Error en operación IN/OUT
00414 Usuario no autorizado a utilizar área de datos
00415 Usuario no autorizado a cambiar área de datos
00421 Error en operación UNLCK
00431 Área de datos bloqueada previamente por otro programa
00432 Área de datos bloqueada por programa en el mismo proceso
00907 Error de datos decimales (dígito o signo no válido)
00970 El número de nivel del compilador empleado para generar el programa no coincide con el número de nivel de las subrutinas en tiempo proceso del RPG/400
09998 Anomalía interna en el compilador RPG/400 o en subrutinas en tiempo de proceso
09999 Excepción de programa en rutina de sistema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar