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
  #11  
Viejo 13/02/09, 08:24:57
bisonye bisonye is offline
Senior Member
 
Fecha de Ingreso: ago 2006
Mensajes: 627
Cita:
Originalmente Escrito por lauracarolina
hola david...dime y si no sabes cual es el final de la tabla en excel??se el inicio de la tabla en un formato que me dan pero no se cuantas filas pueda tener ya que varian....gracias de antemano

Yo creo que la mejor forma de cargarlo es transformando el excel en fichero de texto y luego cargarlo a sap. Es un paso que cualquiere usuario puede hacer y la carga del archivo es mucho más rápida.

Saludos
Responder Con Cita
  #12  
Viejo 13/02/09, 16:16:38
Avatar de lauracarolina
lauracarolina lauracarolina is offline
Member
 
Fecha de Ingreso: jul 2008
Localización: Lima Peru
Mensajes: 32
alguna otra solucion????
__________________
LAURA CAROLINA VASQUEZ NOVOA-ING INFORMATICA
Consultora ABAP
Responder Con Cita
  #13  
Viejo 13/02/09, 17:27:33
Avatar de Rodolfo Montiel Rivera
Rodolfo Montiel Rivera Rodolfo Montiel Rivera is offline
Member
 
Fecha de Ingreso: oct 2007
Mensajes: 92
Thumbs up Otra función para opción a tu desarrollo

Puedes utilizar esta a mi me sirvio muy bien solo te describo algunos detalles:

1.- Cada registro de tu excel te lo inserta en un solo campo string pero para diferenciar los campos este lo separa con su slash '|' por lo cual tendras que validar algunos aspectos como ancho de columnas desde el layout de excel.

2.- Debes tener cuidado al acomodar ya que este toma encuenta el primer valor que encuentre en tu registro y de ahi es donde te empieza a tomar la columna osea si tiene columna A B C D pero tu llenas el valor desde la B1 no contara la columna A y te marcara menos columnas.

Pero eso ya solo en concepto de validacion pero en realidad la funcion se adpata muy bien a tu requerimiento ya que puedes tener la cantidad de calomnas y valores que quieras despues ya solo es cosas de un buen split y acomodar bien las caidas en su campo correspondiente.

Código:
CALL FUNCTION 'FAA_FILE_UPLOAD_EXCEL' EXPORTING i_filename = pa_file i_delimiter = '|' TABLES et_filecontent = tb_excel EXCEPTIONS error_accessing_file = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE s000(zats) DISPLAY LIKE 'E' WITH text-017. v_error = 'X'. v_procesa = 'X'. EXIT. ENDIF.

PD. Te adjunto todo el programa para mayor referencia ya que lo hice y esta muy bien validado. Saludos!!
Archivos Adjuntos
Tipo de Archivo: txt ZATS_CREATE_USER.txt (3.5 KB, 119 visitas)
Tipo de Archivo: txt ZATS_CREATE_USER_F.txt (15.5 KB, 78 visitas)
Tipo de Archivo: txt ZATS_CREATE_USER_FII.txt (12.3 KB, 52 visitas)
Tipo de Archivo: txt ZATS_CREATE_USER_TOP.txt (12.1 KB, 73 visitas)
__________________
01010000
01001010
10011000
10100001

De Byte a Beat.

Úlima edición por Rodolfo Montiel Rivera fecha: 13/02/09 a las 17:30:36.
Responder Con Cita
  #14  
Viejo 13/02/09, 17:50:03
Avatar de lauracarolina
lauracarolina lauracarolina is offline
Member
 
Fecha de Ingreso: jul 2008
Localización: Lima Peru
Mensajes: 32
gracias por tu ayuda, pero cuando intento poner esa funcion en SAP me dice que no existe :S ...
__________________
LAURA CAROLINA VASQUEZ NOVOA-ING INFORMATICA
Consultora ABAP
Responder Con Cita
  #15  
Viejo 16/02/09, 11:57:28
javi_polo javi_polo is offline
Junior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 1
Prueba con la función FILE_READ_AND_CONVERT_SAP_DATA

Hola,

Creo que te podría servir la función FILE_READ_AND_CONVERT_SAP_DATA. Como argumento a esta función le tienes que pasar una tabla interna con una estructura de columnas igual a la estructura de columnas de tu excel pero la función ya contiene la rutina que lee sólo el número de filas que tiene la excel.

Te paso un ejemplo de un programa que lee un fichero excel con dos columnas de un caracter e imprime el contenido de dichas columnas:

Código:
REPORT ztemp LINE-SIZE 255. ************************************************************************ * Definición de tipos ************************************************************************ TYPES: BEGIN OF fichero, columna1 TYPE c, columna2 TYPE c, END OF fichero. DATA gt_fichero TYPE TABLE OF fichero WITH HEADER LINE. ************************************************************************ * Definición de la pantalla de selección ************************************************************************ SELECTION-SCREEN BEGIN OF BLOCK file WITH FRAME TITLE text-t01. PARAMETERS p_file TYPE fileintern OBLIGATORY LOWER CASE. SELECTION-SCREEN END OF BLOCK file. ************************************************************************ * Gestión de eventos de la pantalla de selección ************************************************************************ AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file. * Ayuda de búsqueda de nombre de fichero CALL FUNCTION 'WS_FILENAME_GET' EXPORTING def_filename = p_file def_path = 'c:\' mask = ',*.*,*.*.' mode = 'O' title = 'Ruta del fichero de carga' IMPORTING filename = p_file EXCEPTIONS inv_winsys = 1 no_batch = 2 selection_cancel = 3 selection_error = 4 OTHERS = 5. START-OF-SELECTION. * Lectura del fichero de carga CALL FUNCTION 'FILE_READ_AND_CONVERT_SAP_DATA' EXPORTING i_filename = p_file i_servertyp = 'PRS' i_fileformat = 'XLS' TABLES i_tab_receiver = gt_fichero EXCEPTIONS file_not_found = 1 close_failed = 2 authorization_failed = 3 open_failed = 4 conversion_failed = 5 OTHERS = 6. END-OF-SELECTION. LOOP AT gt_fichero. WRITE: / gt_fichero-columna1, gt_fichero-columna2. ENDLOOP.

Ya nos contarás si te funciona
Responder Con Cita
  #16  
Viejo 16/02/09, 14:38:49
acha3318 acha3318 is offline
Senior Member
 
Fecha de Ingreso: abr 2008
Localización: Cali - Colombia
Mensajes: 184
Saludos, me podrias hacer el favor de mostrarme como definiste la tabla t_upload[] , me esta dando un error creo en la definición de la tabla.

Este es el error:
An exception occurred. This exception is dealt with in more detail below
. The exception, which is assigned to the class 'CX_SY_MOVE_CAST_ERROR', was
neither
caught nor passed along using a RAISING clause, in the procedure
"TEXT_CONVERT_XLS_TO_SAP" "(FUNCTION)"
.
Since the caller of the procedure could not have expected this exception
to occur, the running program was terminated.
The reason for the exception is:
A 'CAST' operation ('?=' or 'MOVE ?TO') tried to assign an object or
interface variable to a reference variable.
However, the contents of the source variable do not fit in the target.
Source type. "\CLASS=CL_ABAP_ELEMDESCR"
Target type: "\CLASS=CL_ABAP_STRUCTDESCR"


Cita:
Originalmente Escrito por josefon
Que tal!! pues despues de 2 dias de busqueda pues por fin encontre una forma de subir un archivo en excel a una tabla interna.
la funcion se llama TEXT_CONVERT_XLS_TO_SAP. aki el ejemplo.

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_line_header = 'X' "Si dejan este campo te quita una linea de tu archivo como header
i_tab_raw_data = it_raw " WORK TABLE
i_filename = p_entra
TABLES
i_tab_converted_data = t_upload[] "ACTUAL DATA
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.

lo malo es que si se tarda un poco.. por ejemplo con
150 lineas se tardo 1.48 minutos y con 1350 se tardo 10.40 minutos

se me habia ocurrido que si tu sabes cuantas lineas y columnas tiene tu EXCEL pues ocupar la funcion propuesta por MIKE pero si no sabes cuantas trae pues ocupar la TEXT_CONVERT_XLS_TO_SAP voy a invertigar si hay una forma de mejorar esta funcion para reducir el tiempo de carga..

en fin ojala les funcione...

saludos
Responder Con Cita
  #17  
Viejo 16/02/09, 15:50:00
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Podrias probar a utilizar la funcion GUI_UPLOAD poniendo en el tipo DAT en lugar de ASC aver si funciona
Responder Con Cita
  #18  
Viejo 17/02/09, 11:39:50
Avatar de jjsm
jjsm jjsm is offline
Junior Member
 
Fecha de Ingreso: feb 2009
Mensajes: 17
Estoy en se37 "Tes del modulo de funciones:Resultados"

Estoy bien??

(Nose de programacion, soy muy basico), me aparece datos similares..

Que hago??

O debo ir a otro lado? Llegue ahi por la biblioteca de funciones.
Ahy me figura la tabla, pero para hacer funcionar esto, o para darle uso a donde me dirijo?

****************************
Por lo visto no tengo autorizacion para modificar... nada que hacer?

saludos

Úlima edición por jjsm fecha: 17/02/09 a las 13:08:59.
Responder Con Cita
  #19  
Viejo 17/11/09, 21:24:27
Avatar de Ivan_Delfino
Ivan_Delfino Ivan_Delfino is offline
Junior Member
 
Fecha de Ingreso: ago 2009
Localización: México
Mensajes: 3
Funcion ALSM_EXCEL_TO_INTERNAL_TABLE

Hola que tal le eh estado haciendo pruebas a la funcion ALSM_EXCEL_TO_INTERNAL_TABLE y solo lee las columnas que tengan valor los vacios no los lee, por lo tanto no es necesario saber exactamente el tamaño con dejar un tamaño grande solo tomara los que tengan valor.

Saludos
Responder Con Cita
  #20  
Viejo 21/07/15, 15:15:40
sebasap2014 sebasap2014 is offline
Junior Member
 
Fecha de Ingreso: oct 2014
Mensajes: 1
consulta sobre indicador de columnas en la funcion de subir excel

Bueno queria preguntar, si uso una funcion en la cual tengo que indicar el comienzo y fin de las columnas y filas, como hago para el caso en el que por parametro de seleccion indique esto, pero en el caso de las columna lo hago haciendo referencia a las letras del EXCEl es decir columna A B C etc, manualemente asignar un valor a cada letra seria programar una biblia.
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 06:49:45.


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