MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 21/10/09, 09:57:16
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
SPLIT INTO no funciona...sabeis porque??

He estado provando esto:

LOOP AT it_fichero.

SPLIT it_fichero AT '#' INTO: l_campo1 l_campo2 l_campo3 l_campo4 l_campo5 l_campo6 l_campo7.

APPEND it_datos.

ENDLOOP.


El efecto (no deseado) es que no separa nada y lo mete todo en el campo l_campo1.

Las variables de tipo l_campoX estan declaradas así:

DATA: l_campo1 TYPE string,
l_campo2 TYPE string,
l_campo3 TYPE string,
l_campo4 TYPE string,
l_campo5 TYPE string,
l_campo6 TYPE string,
l_campo7 TYPE string,
l_campo8 TYPE string,
l_campo9 TYPE string,
l_campo10 TYPE string,
l_campo11 TYPE string,
l_campo12 TYPE string,
l_campo13 TYPE string,
l_campo14 TYPE string,
l_campo15 TYPE string.


Alguna idea???

El contenido de una linea cualquiera es: 20080930#1#1#22#ABONO DEV. No.#2950,22#H

Gracias de antemano.
Responder Con Cita
  #2  
Viejo 21/10/09, 10:25:47
jtristan jtristan is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 240
He probado el código y me surgen unas dudas.
¿Estás recorriendo una tabla interna y asignando el valor del workaera al split. Sin embargo, el compilador me dice que sólo puedes hacerlo con tipos de datos como string. ¿Por qué no pruebas a pasar el contenido del workarea a un string y se lo pasas al split?
Haciéndolo así la separación me la ha hecho correctamente.

Un saludo.
Responder Con Cita
  #3  
Viejo 21/10/09, 10:38:47
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
Jesuuuusss!!!

He probado esto como me has dicho:

LOOP AT it_fichero.

l_linia = it_fichero-linia.
SPLIT l_linia AT '#' INTO: l_campo1 l_campo2 l_campo3 l_campo4 l_campo5 l_campo6 l_campo7.

ENDLOOP.


Pero sigo igual....
Responder Con Cita
  #4  
Viejo 21/10/09, 11:27:41
ivan888 ivan888 is offline
Junior Member
 
Fecha de Ingreso: oct 2009
Mensajes: 5
Hola,

creo que te sobran los dos puntos detrás del split.

Saludos
Responder Con Cita
  #5  
Viejo 21/10/09, 11:29:11
ivan888 ivan888 is offline
Junior Member
 
Fecha de Ingreso: oct 2009
Mensajes: 5
quiría decir detrás del INTO.
Responder Con Cita
  #6  
Viejo 21/10/09, 12:51:42
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
Nada de nada...

Por mas que lo intento..acaba metiéndolo todo en el primer campo.
Responder Con Cita
  #7  
Viejo 21/10/09, 13:52:53
ernestoacostacuba ernestoacostacuba is offline
Junior Member
 
Fecha de Ingreso: oct 2008
Mensajes: 8
Para hacer funcionar el SPLIT

Antes que nada, si las subcadenas que vas a extraer de la cadena general, tienen una longitud estàndard, tienes que declarar las variables donde vas a "splitear" de tipo C con la longitud que tienen.
En tu caso, la cadena general està compuesta de 7 subcadenas divididas por el sìmbolo "#".
La declaraciòn de variables deberìa ser asì:


DATA: l_campo1(8) TYPE c,
l_campo2 TYPE c,
l_campo3 TYPE c,
l_campo4(2) TYPE c,
l_campo5(14) TYPE c,
l_campo6(7) TYPE c,
l_campo7 TYPE c.


Luego, cuando vayas a hacer el SPLIT (supongamos que la cadena general se llama CAD_GRAL):

SPLIT cad_gral AT '#' INTO l_campo1
l_campo2
l_campo3
l_campo4
l_campo5
l_campo6
l_campo7.



Espero te sirva.
Responder Con Cita
  #8  
Viejo 21/10/09, 14:03:42
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
Comprendo lo que dices...

El problema es que yo he declarado las variables así:

l_campo1 TYPE string,
l_campo2 TYPE string,
l_campo3 TYPE string,
l_campo4 TYPE string,
l_campo5 TYPE string,
l_campo6 TYPE string,
l_campo7 TYPE string,
l_campo8 TYPE string,
l_campo9 TYPE string,
l_campo10 TYPE string,
l_campo11 TYPE string,
l_campo12 TYPE string,
l_campo13 TYPE string,
l_campo14 TYPE string,
l_campo15 TYPE string.


Y lo he hecho asó porque no se cuantos campos me llegaran ni con que longitud. Lo que pretendo hacer es poder importar en SAP cualquier fichero de texto separado por '#' y luego tratarlo a mi gusto.

Gracias por la paciencia!
Responder Con Cita
  #9  
Viejo 21/10/09, 14:41:42
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Hola, posiblemente ese caracter aparentemente se vea como #, pero puede ser un tabulador.

Aver si estas ideas pueden ayudar, como el primer campo es una letra crea una variable y agarra el septimo caracter en esa variable q creaste, ahora separalos por esa variable

SPLIT cad_gral AT l_var INTO l_campo1
l_campo2
l_campo3
l_campo4
l_campo5
l_campo6
l_campo7.

Donde l_var es la variable q creaste ... nos cuentas como t fue
__________________
David Carballido Córdova
Responder Con Cita
  #10  
Viejo 21/10/09, 21:24:18
Avatar de mysmb2
mysmb2 mysmb2 is offline
Senior Member
 
Fecha de Ingreso: ene 2007
Localización: Cordoba
Mensajes: 406
concuerdo con DavidXD_XD revisa este post te puede ayudar con el caracter #



Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 17:37:45.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web