Puedes hacer que el subprocedimiento devuelva un valor indicando si tiene que salir o no. Y al retornar, en función de ese valor, haces la salida.
Saludos Juan Carlos. El 15/03/2017 10:13, ostatu ostatu escribió: > Hola. > > Estoy empezando a utilizar los subprocedimientos en vez de las "clasicas" subrutinas y me acabo de encontrar con un problema que no soy capaz de resolver. > > Cuando trabajo con subrutinas y deseo finalizar el programa puedo codificar un *inLR = *on y un Return en cualquier parte y el programa finaliza, pero si intendo hacer los mismo en un subprocedimiento no hay manera de que el programa finalize inmediatamente :-( > > Este es el pgm de ejemplo. > > H DFTACTGRP(*NO) > > /free > > dsply 'inicio main' ; > sub1() ; > dsply 'final main' ; > > *inLR = *on ; > Return ; > > /end-free > > p sub1 b > d pi > /free > dsply 'inicio sub1' ; > finalizar_pgm() ; > dsply 'final sub1' ; > /end-free > p e > * > p finalizar_pgm b > d pi > /free > dsply 'inicio finalizar_pgm' ; > *inLR = *on ; > Return ; > dsply 'final finalizar_pgm' ; > /end-free > p e > > He probado a llamar a una subrutina desde el subprocedimiento (Exsr) para hacer el LR y el Return pero al compilador no le ha gustado con lo que deduzco que no se pueden hacer Exsr dentro de los subprocedimientos ... > > ¿Alguna idea de como solucionar el problema? > > Saludos Ostatu > > ____________________________________________________ > Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd [1] ) > Forum.Help400 (c) Publicaciones Help400, S.L. -- url: http://www.paredes.info mail: juancar...@paredes.info Links: ------ [1] http://bit.ly/db68dd
____________________________________________________ Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 © Publicaciones Help400, S.L.