Ver Mensaje Individual
  #1  
Viejo 29/12/14, 19:00:23
jamiguel77 jamiguel77 is offline
Junior Member
 
Fecha de Ingreso: jun 2011
Mensajes: 21
separar una cadena en base a un delimitador en varios campos

Hola amigos, estoy teniendo problemas con algo muy sencillo:

Tengo un archive: prueba.csv

UD00000000;0090000000;50.26
UD00000000;0090000002;45.56
UD00000000;0090000004;300.25-
UD00000000;0090000005;45.26
UD00000000;0090000024;48.15
UA00000000;0090000025;11.17
UA00000000;0090000027;200.58-
UD00000000;0090000030;600.25
UD00000000;0090000031;123.95
UA00000000;0090000032;-201.63

quiero agarrar cada linea y separarla en base al separador ';' y meter el resultado en una table interna, les dejo mi codigo:


Lo que he intentado:

1) al mandar llamado:

CALL FUNCTION 'TEXT_CONVERT_TEX_TO_SAP'
EXPORTING
I_FIELD_SEPERATOR = ';'
i_tab_raw_data = it_tablauncampo[]

TABLES
I_TAB_CONVERTED_DATA = it_tabla[]
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2.

tambien lo intente sin los [] me marca este error:


Short Text
Type conflict when calling the function module "TEXT_CONVERT_TEX_TO_SAP".

no se por que, si sigo la documentacion.

2) Intente tambien esto:

loop at <fs_xtabla> ASSIGNING <fs_wa2>.
lv_aux2 = <fs_wa2>-f1.
SPLIT lv_aux2 AT CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB INTO TABLE it_tabla.
* BREAK-POINT.
endloop.

Esto me funciono un poco mas, pero el problema es que: mi archive (cada linea) tiene separacion con un punto y coma, no con un # entonces me lo separa bien raro.

No encontre como indicarle a la function que el separador era ';'

3) Quise hacerlo manualmente:

loop at <fs_xtabla> ASSIGNING <fs_wa2>.
lv_aux2 = <fs_wa2>-f1.
SPLIT lv_aux2 AT separator INTO lv_aux.
* SPLIT lv_aux2 AT CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB INTO TABLE it_tabla.
* lv_aux2 = <fs_wa2>-f1.
* lv_aux2 = 'aa;bb;cc;dddd;ee;'.
* SPLIT lv_aux2 at separator into lv_aux.
* BREAK-POINT.
endloop.

La variable lv_aux esta declarada como string pero aun asi me marca el siguiente error al checker el codigo (f2) antes de activar:

Unable to interpret "LV_AUX". Possible causes: Incorrect spelling or comma error.

Algun consejo?


Les agradezco, se que es un problema sencillo, pero no me sale.

Gracias.
Responder Con Cita