PDA

Ver la Versión Completa : Como quitar caracteres extraños despues de WS_UPLOAD


dmgman
23/12/08, 12:57:07
Estoy realizando una interface de descarga de datos de un fichero de texto plano, y he detectado que en la parte de uno de los importes me coje un simbolo '#', no se aprecia en el fichero, pero una vez lo descargo a la tabla de SAP lo veo.
Es el char(36) de la tabla ANSI, como puedo detectarlo y quitarlo.... para que luego al operar con ese campo de importe no me de el dump 'CONVT_NO_NUMBER'.

Como se valida que el campo no es numerico... sin que me el dump ...

Gracias

ic_man_777
23/12/08, 15:04:04
Hay una función que se llama SCP_REPLACE_STRANGE_CHARS, talvez te podría ser útil. O podrías tratar de barrer la tabla y reemplazar con REPLACE?:confused:



Salu2.

dmgman
23/12/08, 15:28:55
Al final he hecho otra cosa, dado que no habia forma de hacer el replace bien, y evitar posibles errores con otros caracteres extraños.

CATCH SYSTEM-EXCEPTIONS conversion_errors = 1.
ENDCATCH

IF sy-subrc <> 0.
ENDIF.

De esta manera bloqueo el posible DUMP, con el objeto de avisar al usuario en el Log de errores de donde esta ese caracter raro.

Salu2

torrescano
23/12/08, 18:11:31
buen dia dmgman.

en q version de SAP R/3 estas?

la funcion ws_uploap es obsoleta para versiones 5.0 en adelante, te recomiendo usar GUI_UPLOAD.

ademas utiliza la funcion F4_FILENAME para mostrar un browser y seleccionar tu archivo plano a cargar.

con estas dos funciones evitaras los caracteres extraños o los espacios en blanco

saludos.

Garces
23/12/08, 19:10:18
Estoy realizando una interface de descarga de datos de un fichero de texto plano, y he detectado que en la parte de uno de los importes me coje un simbolo '#', no se aprecia en el fichero, pero una vez lo descargo a la tabla de SAP lo veo.
Es el char(36) de la tabla ANSI, como puedo detectarlo y quitarlo.... para que luego al operar con ese campo de importe no me de el dump 'CONVT_NO_NUMBER'.

Como se valida que el campo no es numerico... sin que me el dump ...

Gracias

También puedes usar la sentencia

REPLACE ALL OCCURRENCES OF '#' IN <variable tipo C o STRING> WITH ''.

dmgman
23/12/08, 21:30:37
La version de SAP es la 4.6C
Todas las interface q usaban en ese sitio iban con la WS_UPLOAD, por ello no he querido usar el GUI_UPLOAD.

Mi duda sigue siendo cual es la simple forma de validar si un campo numerico.

Martin Niño Arriaga
23/12/08, 23:18:08
Funcion:

CALL FUNCTION 'IF_CA_MAKE_STRING_NUMERICAL'
EXPORTING
INPUT_STRING = w_car_rang2
IMPORTING
VALUE = w2_rang2
EXCEPTIONS
NOT_NUMERICAL = 1
OTHERS = 2.

Saludos!!

dmgman
24/12/08, 05:07:41
Gracias por resolver mi duda.
Salu2