Pregunta

¿Es posible abend su trabajo intencionalmente a través del programa COBOL. supongamos que tengo un archivo de entrada que tiene registros de cabecera, detalle y el remolque. Voy a escribir una PGM COBOL que dice este file.If no hay registros de detalles se encuentran en este archivo entonces quiero Abend mi trabajo dando algunos Abend mensaje y algunos Abend Code.Is Es posible?

¿Fue útil?

Solución

¿Quieres Abend su programa o acaba de establecer un RETURN-CODE ?

Sospecho que el establecimiento de un código-retorno, escribir un mensaje y luego terminar el programa a través de un STOP RUN o GOBACK es todo lo que que realmente quiere hacer. Causando una terminación anormal real puede no ser necesario.

En un entorno lotes IBM, el código-retorno definido por el programa se convierte en el RC para el paso de trabajo JCL el programa se ejecuta bajo. Esto es lo que normalmente desee fijar y de prueba para.

El RETURN-CODE es fijado por MOVEing un valor numérico a la misma. Por ejemplo:

         DISPLAY 'No Detail Records found in file.'
         MOVE 16 TO RETURN-CODE
         GOBACK.

También puede emitir un vertedero de programa a partir de la ejecución del programa en Entorno Idioma (IBM opción de mainframe) usando la CEE3DMP - Generar volcado utilidad.

En los programas de mainframe IBM COBOL de edad avanzada, es posible que vea las llamadas a la rutina ILBOABN0. Esta llamada abended su programa y emitió un vertedero. Esta rutina es ahora depreciado a favor de la técnica descrita anteriormente.

Por último, muy viejos programas podría tener código en ellos para generar terminaciones anormales. Esto se puede hacer de varias maneras, pero la división por cero era a menudo un favorito:

        DIVIDE SOME-NUMBER BY ZERO GIVING SOME-NUMBER.

funciona cada vez!

En lo personal, recomiendo el establecimiento de la llamada RETURN-CODE sobre ILBOABN0 o los datos en excepciones tehcniques.

Nota: El código-retorno registro-especial no es parte del estándar de COBOL-85. Está disponible como una extensión de IBM al lenguaje. Es posible que tenga que recurrir a un mecanismo diferente si está trabajando en un entorno compatible no sea de IBM.

Otros consejos

Vea el siguiente enlace sobre cómo configurar el código de retorno pasa de nuevo a un paso de trabajo JCL, así como forzar un código Abened. http://www.tek-tips.com/viewthread.cfm? qid = 1058302 & page = 22

En primer lugar, usted debe comprobar lo que es aceptado por las normas de trabajo del sitio / de su propia tienda. La mayoría de los equipos ya tendrán una forma aceptada para abend deliberadamente un programa por una razón 'lógica'. Una empresa que tiene trabajado en un programa muy simple llamado SYSABND2, que creo que está escrito en lenguaje ensamblador, que se llama sólo para terminación anormal del programa.

Dicho esto, a ABEND (no solo conjunto de códigos de retorno), debe llamar el módulo CEE3ABD (o la anterior versión ILBOABN0 , que ahora está en desuso).

Para más detalles, véase:

Un método para hacer un fin anormal de ejecución es a la salida de un mensaje al terminal del usuario o al operador en un centro de computadora central y, posiblemente, a una impresora, si es necesario, todo dependiendo del tipo de ordenador el programa es estar ejecutarse en. En COBOL es posible utilizar DISPLAY EN .. y el uso de un identificador para el terminal, consola de operador, o una impresora como se define en una entrada de la sección especial-nombres de la División del Medio. Un ejemplo puede ser similar a esto usando los nombres de los dispositivos correctos para su caso OPERADOR-consola es OUT-OP2 en especial los nombres con display "error - registros de detalles de NO, ABORTING" EN OUT-OP2 y DISPLAY "gestor de informes PARA OPERACIONES DE" EN OUT-OP2 y STOP RUN. en la división procedimiento. tendría que ser incluido en cualquier trabajo o macro e instrucciones de manejo Una referencia a la circunstancia.

Sí, es posible Abend su trabajo intencionalmente a través del programa COBOL, simplemente llamando a un módulo que no existe. Dará S806 código de terminación anormal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top