PDA

Ver la Versión Completa : Problema con subrutina


amparibi
03/03/14, 07:12:27
Buenas a todos, he creado una subrutina, que tiene que cumplir una serie de condiciones para devolver el resultado, sino, tiene que salir una ventana, que indique que no es posible ese valor.
Tengo que devolver un resultado, en caso de que el numero añadido sea primo de 5 y menor de 100, sino, devolveria el error, esto es lo que he hecho.

DATA: L_RESTO TYPE I,
L_Z_NUMABSOL TYPE I.

*//Obtengo el valor del campo numabsol, q es donde voy a añadir el número.
<PUB__SERVICE>->API__GET_VALUE( EXPORTING I_ALIAS = 'Z_NUMABSOL' IMPORTING E_VALUE = L_Z_NUMABSOL ).

L_RESTO = L_Z_NUMABSOL MOD 5. "Division que devuelve el resto, por eso pongo mod.

IF L_RESTO <> 0 AND L_RESTO > 100.
PERFORM ERROR_NUM USING 0 'Z_NUMBASOL'.

ELSEIF ....etc.

endif.

El error lo he implementado asi:

DATA: L__VALUE TYPE I.

CLEAR L__VALUE.

CALL METHOD <PUB__SERVICE>->API__GET_VALUE
EXPORTING
I_ALIAS = 'Z_NUMBASOL'
I_OCC = 0
IMPORTING
E_VALUE = L__VALUE.

IF L__VALUE MOD 5 <> 0 OR L__VALUE > 100.
CALL METHOD <PUB__SERVICE>->API__LIST_ERROR_TEXT
EXPORTING
I_TEXT = 'Número erroneo'.
EXIT.
ENDIF.

Pero no me funciona, alguna sugerencia??

Mucha gracias,

Amparo.

mofly
10/03/14, 12:15:54
Creo que tienes un fallo en el código:
IF L_RESTO <> 0 OR L_Z_NUMABSOL > 100.
PERFORM ERROR_NUM USING 0 'Z_NUMBASOL'.