MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Como Validar que un dato sea numerico (foro/showthread.php?t=46548)

Leonel Espitia Torres 08/11/11 20:06:11

Como Validar que un dato sea numerico
 
Buenos compañeros abapers:
El campo de una tabla se utiliza para registrar cantidades, pero debido a que es un campo alfanumérico hay veces que meten datos alfanuméricos (es decir carateres diferentes de números), como hago para validar que el sistema solo tenga en cuenta los datos que sean solo números?. Existe alguna función para esto?. Muchas gracias por su colaboración.

DCErick 08/11/11 20:28:01


mysmb2 09/11/11 11:05:35

la función NUMERIC_CHECK te va a servir.

Saludos.

DCErick 09/11/11 14:43:39


Esta función creo que no es tan funcional, cuando el dato tiene deciamales te regresa que es tipo CHAR y no NUMC.

Y la otra es que si el campo solo debe contener números pues cambiarle de tipo y no se complica la vida.

beltsoft 09/11/11 15:06:08

DCErick es correcto con el manejador de string CO:

CHECK var_1 CO '0123456789'.

Saludos.

Leonel Espitia Torres 09/11/11 18:25:00

Compañeros ABAPers Gracias por tus respuestas.
En este caso lo pude solucionar con la función NUMERIC_CHECK, pero no entendí como se implementa con CHECK var_1 CO '0123456789'. CHECK es una funcion?, me puedes dar un ejemplo en ABAP de implementacion de esto?. Gracias Leonel

jtristan 10/11/11 07:52:26

Hola, check es como un if. Si se cumple la condición continúa la ejecución del programa y sino saltaría al punto siguiente. Es decir, si le estás utilizando por ejemplo dentro de un loop, si se cumple, continuaría con la ejecución y sino saltaría al siguiente registro. Si es dentro de una función, si se cumple continuaría con el código de la función y sino pues saldría de la función.

para este caso, comprueba que tu variable sólo contenga los dígitos indicados. Si tiene un valor alfa no seguiría.


Espero haberte ayudado.

Un saludo.

jtristan 10/11/11 08:10:56

Pensando en como saber si un valor es numérico también se me ha ocurrido esta idea. Es un poco rara pero parece que va. Sería dividir todos los valores entre uno y aquel que no sea numérico nos lanzará una excepción CX_SY_CONVERSION_NO_NUMBER que podemos capturar.

data: numero type i value 15,
caracter(4) type c value 'a23',
decimal(10) type p DECIMALS 2 value '15.25',
valor(10) type p decimals 2.



try.
valor = numero / 1.
valor = decimal / 1.
valor = caracter / 1.
catch CX_SY_CONVERSION_NO_NUMBER.
write 'no es numerico'.
endtry.

DCErick 10/11/11 16:17:03


Si eso podria funcionar, pero controlar una exception le cuesta mas recursos recursos al sistema xD.

JorgeAntonio 10/11/11 16:32:22

String es numerico?
 
Si es el caso de strings; éste Módulo de Función es muy útil:
NUMERIC_CHECK :D


Husos Horarios son GMT. La hora en este momento es 22:16:46.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web