#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> |
#3
|
||||
|
||||
la función NUMERIC_CHECK te va a servir.
Saludos.
__________________
Sebastián Chiavia |
#4
|
||||
|
||||
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.
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> |
#5
|
|||
|
|||
DCErick es correcto con el manejador de string CO:
CHECK var_1 CO '0123456789'. Saludos.
__________________
SSE BeltSoft México Your Business, our motivation ... |
#6
|
|||
|
|||
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 |
#7
|
|||
|
|||
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. |
#8
|
|||
|
|||
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. |
#9
|
||||
|
||||
Si eso podria funcionar, pero controlar una exception le cuesta mas recursos recursos al sistema xD.
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> |
#10
|
|||
|
|||
String es numerico?
Si es el caso de strings; éste Módulo de Función es muy útil:
NUMERIC_CHECK |
Herramientas | Buscar en Tema |
Desplegado | |
|
|