* PSDCER
        PROGRAMA 'ERROR DE EJECUCION'
        DOCUMENTACION 3 0
*
*D      ESTE PROGRAMA ES EL PROTIPO PARA PROCESAR LA OPCION /ERROR
*D      PARA ELLO SE SACA LA INFORMACION Y SE DESPLIEGA LA POSIBLE
*D      CAUSA
*
        SACAR PARAMETROS  TIPO-DE-ERROR ERR-TIPO $
                          CODIGO-DE-ERROR ERR-CODIGO $
                          SUBCODIGO-DE-ERROR ERR-SUBCODIGO $
                          DESCRIPCION-DEL-CODIGO ERR-DESC-CODIGO $
                          DESCRIPCION-POR-SO ERR-DESC-SO $
                          PROGRAMA-ANTERIOR ERR-PROG $
                          PROGRAMA-SIGUIENTE ERR-SIG-PROG $
                          ARCHIVO-DEL-ERROR ERR-ARCHIVO $
                          LINEA-DEL-ERROR ERR-LINEA $
                          PROGRAMA-DEL-ERROR ERR-DESC-PROG $
                          APLICACION ERR-APLICACION $
                          VERSION ERR-VERSION
*
        OPCION TERMINAL AREA 9020 /TEXTO /POS. ERR-RENGLON 5 $
        /LONG. ERR-TOTAL-RENG 70 /MARCO /COLOR BLANCO BLANCO NEGRO $
        /CAMPOS ERR-TEXTO /VAR.
        ERR-TOTAL-RB = 0
*
*D      SI ES APLICACION FORMAR SU LETRERO 
*
        SI ERR-APLICACION = ' ' EJECUTA 3
        SI ERR-TIPO = -4 EJECUTA 1
        MOVER ERR-APLICACION A ERR-APLIC-VER /INICIO
        MOVER 'Version ' A  ERR-APLIC-VER /AGREGAR 3
        MOVER ERR-VERSION A ERR-APLIC-VER /AGREGAR
        FORMAR TEXTO ERR-TEXTO CON ERR-APLIC-VER /C 
        FORMAR TEXTO ERR-TEXTO CON 'En el programa '  /P  /RBA 1 
        ERR-TOTAL-RB = ERR-TOTAL-RB + 1
        EJECUTA 7
1       FORMAR TEXTO ERR-TEXTO CON 'Se requiere actualizar ' /P
        FORMAR TEXTO ERR-TEXTO CON ERR-APLICACION
        FORMAR TEXTO ERR-TEXTO CON 'Favor de llamar a KRATOS SA' /P
        ERR-TOTAL-RB = ERR-TOTAL-RB + 2
        EJECUTA 20
*
*D      DESPEGRAR ERROR DE ACTUALIZACION
*
3       SI ERR-TIPO <> -4 EJECUTA 5
        FORMAR TEXTO ERR-TEXTO CON 'Se requiere actualizar SISINF, $
           $Favor de llamar a KRATOS SA' /P
        ERR-TOTAL-RB = ERR-TOTAL-RB + 1
        EJECUTA 20
*
*D      FORMAR ERROR INFORMATIVO
*
5       FORMAR TEXTO ERR-TEXTO CON 'En el programa '  /P  /RBA 0 
7       FORMAR TEXTO ERR-TEXTO CON ERR-DESC-PROG
&*
&Q ERR SI DESPLEGAR-COMPLETA = NO
        FORMAR TEXTO ERR-TEXTO CON  ' ('
        FORMAR TEXTO ERR-TEXTO CON ERR-PROG
        FORMAR TEXTO ERR-TEXTO CON  ')'
&F ERR
&*
        SI ERR-TIPO > 0 EJECUTA 10
        FORMAR TEXTO ERR-TEXTO CON  ' se tuvo el siguiente $
          $error informativo: '
        FORMAR TEXTO ERR-TEXTO CON ERR-DESC-CODIGO /I
        FORMAR TEXTO ERR-TEXTO CON 'Esto es porque hay ' /P
        ERR-TOTAL-RB = ERR-TOTAL-RB + 2
        SI ERR-TIPO = -1 FORMAR TEXTO ERR-TEXTO CON $
          'Error en la Programacion de la Aplicacion $
          $o por datos proporcionados por el usuario.'  
        SI ERR-TIPO = -2 FORMAR TEXTO ERR-TEXTO CON $
          'Error de Programacion de la Aplicacion.' 
        SI ERR-TIPO = -3 FORMAR TEXTO ERR-TEXTO CON $
          'Error de datos proporcionados por el usuario.' 
        EJECUTA 20
*
*D      FORMAR ERROR DE CANCELACION
*
10      FORMAR TEXTO ERR-TEXTO CON  ' se tuvo el siguiente $
          $error de cancelacion: '
        FORMAR TEXTO ERR-TEXTO CON ERR-DESC-CODIGO /I
        ERR-TOTAL-RB = ERR-TOTAL-RB + 1
        SI ERR-DESC-SO =  ' ' EJECUTA 11
        FORMAR TEXTO ERR-TEXTO CON ERR-DESC-SO /I
        ERR-TOTAL-RB = ERR-TOTAL-RB + 1
11      FORMAR TEXTO ERR-TEXTO CON 'Esto es porque hay ' /P
        ERR-TOTAL-RB = ERR-TOTAL-RB + 1
        SI ERR-TIPO = 1 FORMAR TEXTO ERR-TEXTO CON $
           'Error Interno de SISINF. Se recomienda revisar fallas $
           $de Hardware y si se repite reportarlo.' 
        SI ERR-TIPO = 2 FORMAR TEXTO ERR-TEXTO CON $
           'Error en la Programacion de la Aplicacion.' 
        SI ERR-TIPO = 3 FORMAR TEXTO ERR-TEXTO CON $
           'Error de Seguridad, el usuario NO tiene permiso para $
           $Ejecutar este programa de la aplicacion.' 
        SI ERR-TIPO = 4 FORMAR TEXTO ERR-TEXTO CON $
           'Error al Abrir un Archivo. Se recomienda revisar $
           $dispositivo, area en disco, permisos, recursos del $
           $sistema, ...' 
        SI ERR-TIPO = 5 FORMAR TEXTO ERR-TEXTO CON $
          'Error reportado por Sistema Operativo al hacer la $
           $operacion. Revisar fallas de Hardware o de recursos $
           $de Software.' 
        SI ERR-TIPO = 6 FORMAR TEXTO ERR-TEXTO CON $
          'Falta de area de disco o Error reportado por Sistema $
           $Operativo al hacer la operacion. $
           $Revisar fallas de Hardware.' 
        SI ERR-TIPO = 7 FORMAR TEXTO ERR-TEXTO CON $
          'Error por accesar varios usuarios el mismo Archivo o $
           $registro en forma exclusiva. Intente despues' 
        SI ERR-TIPO = 8 FORMAR TEXTO ERR-TEXTO CON $
          'Archivo con problemas internos. Se recomienda reconstruir $
           $ o bajar un respaldo.' 
        SI ERR-TIPO = 9 FORMAR TEXTO ERR-TEXTO CON $
          'Archivo lleno. Se necesita reconstruir.' 
        SI ERR-TIPO = 10 FORMAR TEXTO ERR-TEXTO CON $
          'Error en la reconstruccion. Revisar area en disco, $
           $falten archivos. Sino bajar un respaldo o RECA externo.' 
        SI ERR-TIPO = 11 FORMAR TEXTO ERR-TEXTO CON $
          'Error de Comumicacion con manejador de archivos (PEVx) $
           $Se recomienda revisar instalacion de SISINF.' 
        SI ERR-TIPO = 12 FORMAR TEXTO ERR-TEXTO CON $
          'Error de exeder maximos de SISINF. Se recomienda $
           $reiniciar el Sistema Operativo.' 
        SI ERR-TIPO = 13 FORMAR TEXTO ERR-TEXTO CON $
          'Error en datos de usuario. Revisar manual' 
        SI ERR-TIPO = 14 FORMAR TEXTO ERR-TEXTO CON $
          'Error en Archivo mal formado. Si el usuario lo creo $
          $ revisarlo, Sino error de Programacion' 
        SI ERR-ARCHIVO = ' ' EJECUTA 20
        FORMAR TEXTO ERR-TEXTO CON 'El archivo con error es ' /P
        FORMAR TEXTO ERR-TEXTO CON ERR-ARCHIVO
        ERR-TOTAL-RB = ERR-TOTAL-RB + 1
*
*D      PONER CODIGO SUBCODIGO Y LINEA
*
20      $
&*
&Q ERR SI DESPLEGAR-COMPLETA = NO
        FORMAR TEXTO ERR-TEXTO CON 'La linea del programa es la ' /P
        ERR-TOTAL-RB = ERR-TOTAL-RB + 1
        FORMAR TEXTO ERR-TEXTO CON ERR-LINEA
        FORMAR TEXTO ERR-TEXTO CON ' y el codigo de error es el '
        FORMAR TEXTO ERR-TEXTO CON ERR-CODIGO
        SI ERR-SUBCODIGO = 0 EJECUTA 21
        FORMAR TEXTO ERR-TEXTO CON ', con subcodigo '
        FORMAR TEXTO ERR-TEXTO CON ERR-SUBCODIGO
21      FORMAR TEXTO ERR-TEXTO CON ' del tipo de error '
        FORMAR TEXTO ERR-TEXTO CON ERR-TIPO
&F ERR
&*
*
*D      DESPLEGARLO Y TERMINAR O CONTINUAR
*
        SACAR PARAMETROS CARACTERES-DE-TEXTO ERR-TOTAL-CAR
        ERR-TOTAL-RENG = ERR-TOTAL-CAR / 60 + ERR-TOTAL-RB + 4
        SI ERR-TOTAL-RENG > 21 ERR-TOTAL-RENG = 21
        ERR-RENGLON = 21 - ERR-TOTAL-RENG / 2 + 1
        OPCION TERMINAL AREA 9020 /DESPLEGAR
        ESCRIBIR TERMINAL ERR-TEXTO
        OPCION TERMINAL AREA 9020 /TERMINAR
        SI ERR-TIPO <= 0 Y ERR-SIG-PROG <> ' ' FIN ERR-SIG-PROG
        FIN
