#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
Separar caracteres
hola jamiguel77
el Split deberías de utilizarlo de esta manera, pruébalo espero que te sirva: loop at <fs_xtabla> ASSIGNING <fs_wa2>. Split <fs_wa2> at ';' into t_tabla ... .... endloop QUOTE=jamiguel77]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.[/quote] |
#3
|
|||
|
|||
Listo, Funciono!!!
tuve que declarer mi table WITH HEADER LINE tambien lo solucione mandando llamar la FM: 'TEXT_CONVERT_TEX_TO_SAP' quedando: Gracias Felices Fiestas. Saludos. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|