#11
|
|||
|
|||
Sigo sin poder resolver este problema ahora encontré esta función que supuestamente me sapara en los n campos un string con formato CSV con algún caracter separador de campos. Utilizo la mismo y me divide únicamente en 8 campos en lugar de 10 campos y los valores están todos incorrectos
vl_linea = rec_aux-linea. CALL FUNCTION 'RSDS_CONVERT_CSV' EXPORTING I_DATA_SEP = ' ' I_ESC_CHAR = '' I_RECORD = vl_linea I_FIELD_COUNT = 10 IMPORTING E_T_DATA = vl_data * EXCEPTIONS * ESCAPE_NO_CLOSE = 1 * ESCAPE_IMPROPER = 2 * CONVERSION_ERROR = 3 * OTHERS = 4 . Este es el string que se le pasa como parámetro a la función 2009-1-027-00019-2#20036915138#2009 #100#Regimen General#Definitivo con Provisorio#2776717 #09/10/2009#09/10/2009#31/05/2010# y este es el resultado que devuelve la misma 1 2009-1-027-00019-2#20036915138#2009 2 #100#Regimen 3 General#Definitivo 4 con 5 Provisorio#2776717 6 7 8 #09/10/2009#09/10/2009#31/05/2010# Como dije antes ninguna de las sentencias ABAP me responde como debería ni FIND, ni REPLACE, ni SPLIT Saludos, desde ya muchas gracias...
__________________
Gustavo A. Biglia Consultor SAP FI |
#12
|
|||
|
|||
Tu problema esta en que aunque veas una # no significa que el caracter sea ese, la # la utiliza para indicar que ese caracter no lo puede interpretar, por ejemplo cuando hay un retorno de carro tambien te muestra la #
Yo lo que hice para solucionar estas cosas es un poco rudimentario pero efectivo, seria un algoritmo mas o menos asi *Aqui pondrias todos los caracteres que consideras validos, letras, numeros, *signos de puntuacion, etc data: lc_valores_validos type char100 value 'abcd..ABC..012..+-.,' data: lv_in type char20, lv_out type char20, lv_len type i, lv_index type syindex. lv_len = strlen( lv_in ). do lv_len times lv_index = sy-index. subtract 1 from lv_index. if lv_in+lv_index(1) co lc_valores_validos. concatenate lv_out lv_in+lv_index(1) into lv_out. endif. enddo. El caso es ir recorriendo la cadena caracter a caracter e ir copiandolos en otra variable, si encuentras alguna valor no valido te lo saltas |
#13
|
|||
|
|||
Ballan:
Muchísimas gracias por tu aporte, gracias al mismo ya pude resolver mi problema y quedó todo funcionando correctamente. Gracias...
__________________
Gustavo A. Biglia Consultor SAP FI |
#14
|
|||
|
|||
De nada, de hecho te recomiendo que esta rutina la metas dentro de una funcion, metodo o algo porque si haces programas de cargas la vas a utilizar muchisimo
Por lo menos en mi caso gracias a los "maravillosos" ficheros de carga que me ha proporcionado el cliente ha sido imprescindible... |
#15
|
||||
|
||||
Gustavo para que las sentencias abap REPLACE, SPLIT, FIND te reconoscan el '#' que tenes en tu archivo revisa este post.
Saludos!
__________________
Sebastián Chiavia |
#16
|
|||
|
|||
Codepage
Tuve un problema similar.
Lo resolvi con esta manera de hacer el OPEN DATASET OPEN DATASET gw_file ENCODING NON-UNICODE FOR INPUT IN TEXT MODE IGNORING CONVERSION ERRORS. Ss |
Herramientas | Buscar en Tema |
Desplegado | |
|
|