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 08/02/08, 09:41:26
Heran Heran is offline
Junior Member
 
Fecha de Ingreso: may 2007
Localización: No consigo ubicarme
Mensajes: 21
De excel a tabla

Hola,

Me han pedido hacer un programa que me cargue los datos de un excel en una tabla de sap. Pero, la cuestion es: No sabemos como va a ser el excel y la tabla de destino tb es desconocida.
Conoceis algun codigo que haga algo parecido?
Algun vinculo donde pueda encontrarlo?

Muchas gracias.
__________________
- Heran -
Responder Con Cita
  #2  
Viejo 08/02/08, 10:53:11
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Yo me crearia la estructura de la tabla en tiempo de ejecucion y luego cargaria esa tabla con la funcion TEXT_CONVERT_XLS_TO_SAP
Responder Con Cita
  #3  
Viejo 11/02/08, 07:00:13
Heran Heran is offline
Junior Member
 
Fecha de Ingreso: may 2007
Localización: No consigo ubicarme
Mensajes: 21
Tengo problema con los campos tipo fecha... me dice: Indique una fecha valida (ejemplo 01.01.2006)

Esto es una linea de mi excel.
20000000 01.01.2007 01.01.2006 DDDD EEEEEEEEEEEEEEEE 20 15
Tb he probado con las fechas 01012007, 20070101 2007.01.01...


DATA: it_raw TYPE truxs_t_text_data.
FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE.


CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
i_line_header = 'X'
i_tab_raw_data = it_raw " WORK TABLE
i_filename = p_file
TABLES
i_tab_converted_data = <dyn_table>[] "ACTUAL DATA
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

¿¿que puedo hacer??
__________________
- Heran -

Úlima edición por Heran fecha: 11/02/08 a las 07:54:53.
Responder Con Cita
  #4  
Viejo 11/02/08, 10:33:32
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Las fechas en excel se almacenan como un numero en coma flotante asi que te estara dando algun error de formato, pon las fechas como texto y luego las tratas en tu programa en R3

quicir en lugar de 02.12.2008 pon 02122008, que te lo lleve a r3 como texto y tu ahi haces con ello lo que sea
Responder Con Cita
  #5  
Viejo 11/02/08, 15:54:04
Heran Heran is offline
Junior Member
 
Fecha de Ingreso: may 2007
Localización: No consigo ubicarme
Mensajes: 21
Nada que no lo consigo hacer... no se que mas puedo probar... Y solo me falla cuando la tabla DB tiene tipos dats. El resto los coge sin problemas.

Resumo los pasos...

Creo 2 parametros, uno para indicar la Tabla DB y otro para el fichero excel.

Creo dinamicamente la Tabla interna de tipo Tabla DB.

Cargo los datos del excel en la Tabla interna dinamica.(Me da fallo fecha)

Por ultimo visualizo los registros insertados en la Tabla interna.

Alguna idea brillante??

Gracias por todo.
__________________
- Heran -
Responder Con Cita
  #6  
Viejo 12/02/08, 08:57:26
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Heran creo que el problema es que en sap un tipo de dato fecha se almacena como un string de 8 y en excel los datos de tipo fecha son un numero en coma flotante por lo que da error de tipo y peta, prueba a colocar en tu excel de carga la fecha como si fuera un texto, para introducir un literal en una celda de excel tienes que poner la comilla simple delante ' algo asi:

'01012008 asi te introduce el literal 01012008 en la celda y lo toma como texto y no como fecha o numero entero
Responder Con Cita
  #7  
Viejo 12/02/08, 13:55:55
Heran Heran is offline
Junior Member
 
Fecha de Ingreso: may 2007
Localización: No consigo ubicarme
Mensajes: 21
Gracias Ballan, pero sigue sin funcionarme...

Voy a ha cargar los datos deste un TXT. A ver cuando me libere de carga resuelvo lo de la fecha...

Nuevamente muchas gracias.
__________________
- Heran -
Responder Con Cita
  #8  
Viejo 12/02/08, 14:55:34
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Esa seria la solucion mas rapida, cuando tengas tiempo puedes investigar otras dos vias de trabajo:

OPCION 1
La funcion ALSM_EXCEL_TO_INTERNAL_TABLE le das una ruta de fichero y una fila y columna inicial y fila y columna final y te devuelve una tabla con las celdas, por ejemplo

call function ALSM_EXCEL_TO_INTERNAL_TABLE
ruta del fichero
begin_row = 1
begin_col = 1
end_row = 25
end_col = 25
tables
t_celdas

Te devolveria una tabla (t_celdas) con los siguientes valores

Fila Columna Valor
1 1 Valor celda 1,1
1 2 Valor celda 1,2
...

Podrias mirar si esos valores te los recupera correctamente y luego con los valores de la tabla los vas insertando en tu tabla con field-symbols


OPCION 2

Acceder al excel por medio de objetos, para no hacer un post kilometrico te dejo un enlace para que veas ejemplos

la idea seria si asi te recupera correctamente los campos de fecha y los pasas a tu tabla por medio de field-symbols

Suerte!
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 15:19:57.


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