PDA

Ver la Versión Completa : validar el formato de los campos a subir a SAP


miko-lynn
03/07/12, 14:20:00
Hola a todos,
en un report, subo un archivo delimitado por comas (.CSV) a SAP y he de chequear que todos los campos sean del formato requerido en la tabla de diccionario donde se han de guardar.
o sea, subo un archivo mas o menos así:
campo1linea1;campo2linea1;0032;0045abc;campo5linea1
campo1linea2;campo2linea2;0032;0045abc;campo5linea2
campo1linea3;campo2linea3;0032;0045abc;campo5linea3

y he de comprovar que cada linea es del tipo
char(12), char(12), NUMC(4), CHAR(7); char(12)
Y lo he de hacer dinamicamente.

Ayuda urgente por favor?

SAPING
03/07/12, 16:05:48
No se bien a que te referis con "validar que sea de ese formato", pero si lo que queres hacer es colocar los campos en la estructura que creaste solo debes usar la sentencia SPLIT.

Cualquier cosa avisa.
Slds.

miko-lynn
03/07/12, 16:25:09
No se bien a que te referis con "validar que sea de ese formato", pero si lo que queres hacer es colocar los campos en la estructura que creaste solo debes usar la sentencia SPLIT.

Cualquier cosa avisa.
Slds.

No no!
Pues yo subo un archivo creado con excel con una serie de campos (y usando SPLIT lo transformo en campos de una itab. pero tal vez, por error, el usuario ha introducido una letra en un campo donde solo pueden ir numeros, i antes de que me dé error al guardar en DDBB, necesito chequear que no hay numeros, o sea, yo por diccionario, sé que un campo x de una tabla es numc3 y necesito chequear que el usuario no haya escrito ni 4 o más numeros ni una letra...

gracias igualmente!

crounly
03/07/12, 16:38:36
Cuando cargo datos de un excel, en mi caso, primero los subo a una tabla interna de texto, en tu ejemplo

TYPE: BEGIN OF type_data,
Campo1 TYPE CHAR(12),
cAMPO2 TYPE CHAR(12),
CAMPO3 TYPE CHAR (4),
CAMPO4 TYPE CHAR(7),
CAMPO5 TYPE CHAR(12),
END OF type_data

Luego recorro cada registro con un loop y compruebo 2a mano" que el contenido es correcto, si un registro no es correcto, lo saco en un log al final

Para comprobar que el campo solo contiene números:

c_numeric type string value '0123456789'.

if value co c_numeric.
Write 'numerico'.
else.
Write 'no numerico'.
endif.

Y para la longitud usa la función strlen(var).

miko-lynn
03/07/12, 16:49:10
Cuando cargo datos de un excel, en mi caso, primero los subo a una tabla interna de texto, en tu ejemplo

TYPE: BEGIN OF type_data,
Campo1 TYPE CHAR(12),
cAMPO2 TYPE CHAR(12),
CAMPO3 TYPE CHAR (4),
CAMPO4 TYPE CHAR(7),
CAMPO5 TYPE CHAR(12),
END OF type_data

Luego recorro cada registro con un loop y compruebo 2a mano" que el contenido es correcto, si un registro no es correcto, lo saco en un log al final

Para comprobar que el campo solo contiene números:

c_numeric type string value '0123456789'.

if value co c_numeric.
Write 'numerico'.
else.
Write 'no numerico'.
endif.

Y para la longitud usa la función strlen(var).


Gracias,
estaba pensando algo parecido, pero yo queria algo mas automatico...