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.

Responder a