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 29/02/08, 18:07:43
Avatar de bacha
bacha bacha is offline
Member
 
Fecha de Ingreso: dic 2007
Mensajes: 53
larmadovr MUCHAS GRACIAS... voy a probar este ejemplo !!!
Responder Con Cita
  #12  
Viejo 29/02/08, 20:23:19
larmadovr larmadovr is offline
Member
 
Fecha de Ingreso: ene 2008
Localización: Monterrey N.L. México
Mensajes: 77
Thumbs up No hay de que mi cuate.

Saludos desde Mexico, no se donde estes tu.

"El conocimiento es como el fuego, que tiene que ser encendido por un agente externo, pero se propaga por si solo"
Responder Con Cita
  #13  
Viejo 29/02/08, 21:05:38
Avatar de bacha
bacha bacha is offline
Member
 
Fecha de Ingreso: dic 2007
Mensajes: 53


Gracias, oie tambien soy de Mexico, de muy certa de tu estado de TAmaulipas !.


Oie larmadovr, fijate que ya lo intente y solo me mete un registro y dentro de el solo el mandante esta escrito... ningun campo mas se escribio, nose que estoy haciendo mal..... te dejo mi codigo para ver si le puedes hechar un vistaso:


*&---------------------------------------------------------------------*
*& Report ZVACIAR_A_TABLA_Z
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZVACIAR_A_TABLA_Z.
**---------------------------------------------------------------------*
** INCLUDE PARA DEFINICIÓN DE DATOS *
**---------------------------------------------------------------------*
*INCLUDE zpruebas_lavr_t001.
*
**---------------------------------------------------------------------*
** INCLUDE PARA DEFINICIÓN SUBRUTINAS *
**---------------------------------------------------------------------*
*INCLUDE zpruebas_lavr_f001.

*---------------------------------------------------------------------*
* EVENTO START-OF-SELECTION *
*---------------------------------------------------------------------*
START-OF-SELECTION.

* Lee un archivo xls y lo carga en una tabla interna
PERFORM f_lee_archivo.

* Recorre tabla interna y va cargando datos en tabla Z
PERFORM f_modifica_tabla_z.


*----------------------------------------------------------------------*
* ZPRUEBAS_LAVR_T001 *
*----------------------------------------------------------------------*


*----------------------------------------------------------------------*
* Definición de parámetros de entrada *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK param WITH FRAME TITLE text-001.

PARAMETERS: ruta LIKE rlgrap-filename OBLIGATORY DEFAULT
'C:\Documents and Settings\kayros FI\Escritorio\BDD NORTHWIND\customers.xlsx' LOWER CASE.

SELECTION-SCREEN END OF BLOCK param.

*----------------------------------------------------------------------*
* Definición de tablas internas *
*----------------------------------------------------------------------*

* Tabla que almacena los registros de las filas y columnas de xls
DATA: BEGIN OF i_excel OCCURS 0,
fila LIKE alsmex_tabline-row,
columna LIKE alsmex_tabline-col,
valor LIKE alsmex_tabline-value,
END OF i_excel.

* Tabla que almacena los campos que vienen del archivo
* Estos pueden variar de acuerdo a la tabal que deseamos llenar
DATA: BEGIN OF ti_archivo OCCURS 0,
mandt LIKE sy-mandt,
customerid LIKE ZNW_CUSTOMERS-ZNW_CUSTOMERID,
companyname LIKE znw_customers-znw_companyname,
contactname LIKE znw_customers-znw_contactname,
contacttitle LIKE znw_customers-znw_contacttitle,
address LIKE znw_customers-znw_address,
city LIKE znw_customers-znw_city,
region LIKE znw_customers-znw_region,
postalcode LIKE znw_customers-znw_postalcode,
country LIKE znw_customers-znw_country,
phone LIKE znw_customers-znw_phone,
fax LIKE znw_customers-znw_fax,
END OF ti_archivo.

*----------------------------------------------------------------------*
* Definición de estructuras *
*----------------------------------------------------------------------*
* Se crea una estructura para poder hacer el modify directo a la tabla Z
* y evitar errores por tipos de datos
DATA: BEGIN OF s_zruta_arch.
INCLUDE STRUCTURE znw_customers.
DATA: END OF s_zruta_arch.

*----------------------------------------------------------------------*
* ZPRUEBAS_LAVR_F001 *
*----------------------------------------------------------------------*


*&---------------------------------------------------------------------*
*& Form F_LEE_ARCHIVO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_lee_archivo.

* Función que descarga datos desde archivo excel
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = ruta
i_begin_col = '1'
i_begin_row = '1'
i_end_col = '4' " NUMERO DE CAMPOS DE ARCHIVO
i_end_row = '65000'
TABLES
intern = i_excel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.

IF sy-subrc EQ 0.
* Función para llenar datos descargados en tabla interna
PERFORM f_llena_tabla.
ELSE.
*MESSAGE i001 WITH text-002.
ENDIF.

ENDFORM. " F_LEE_ARCHIVO
*&---------------------------------------------------------------------*
*& Form f_llena_tabla
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_llena_tabla.

LOOP AT i_excel.
CASE i_excel-columna.
WHEN '1'.
MOVE i_excel-valor TO ti_archivo-mandt.
WHEN '2'.
MOVE i_excel-valor TO ti_archivo-CUSTOMERID.
WHEN '3'.
MOVE i_excel-valor TO ti_archivo-companyname.
WHEN '4'.
MOVE i_excel-valor TO ti_archivo-contactname.
WHEN '5'.
MOVE i_excel-valor TO ti_archivo-contacttitle.
WHEN '6'.
MOVE i_excel-valor TO ti_archivo-address.
WHEN '7'.
MOVE i_excel-valor TO ti_archivo-city.
WHEN '8'.
MOVE i_excel-valor TO ti_archivo-region.
WHEN '9'.
MOVE i_excel-valor TO ti_archivo-postalcode.
WHEN '10'.
MOVE i_excel-valor TO ti_archivo-country.
WHEN '11'.
MOVE i_excel-valor TO ti_archivo-phone.
WHEN '12'.
MOVE i_excel-valor TO ti_archivo-fax.
ENDCASE.
AT END OF fila.

APPEND ti_archivo.
CLEAR ti_archivo.
ENDAT.
ENDLOOP.

ENDFORM. " f_llena_tabla
*&---------------------------------------------------------------------*
*& Form F_MODIFICA_TABLA_Z
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_modifica_tabla_z.

LOOP AT ti_archivo.
IF sy-subrc EQ 0.
* Se mueven el registro de la tabal interna a la estructura
MOVE-CORRESPONDING ti_archivo TO s_zruta_arch.
* Se utiliza el modify en lugar de insert, para que haya problemas si se
* duplica algun registro por error, o por que lo ejecutes N veces
MODIFY znw_customers FROM s_zruta_arch.
* Graba en tabla transparente
COMMIT WORK.
CLEAR: ti_archivo, s_zruta_arch.
ENDIF.
ENDLOOP.

ENDFORM. " F_MODIFICA_TABLA_Z

Úlima edición por bacha fecha: 29/02/08 a las 21:12:44.
Responder Con Cita
  #14  
Viejo 29/02/08, 21:20:22
larmadovr larmadovr is offline
Member
 
Fecha de Ingreso: ene 2008
Localización: Monterrey N.L. México
Mensajes: 77
Smile Ok.

Hay varias cosas por las cuales puede estar fallando.

Pon un break point en LOOP AT TI_Archivo y te fijas si los datos estan almacenados correctamente en la tabla interna, despues te sigues al paso donde hace el move-corresponding a la estructura y de igual manera revisa que la estructura se haya cargado antes del modify.

NOTA 1: Si no estan en el mismo orden el move-corresponding no pasa bien los datos de la ti a la estructura.

NOTA 2: La tabla z debe tener llaves primarias, checa que no estes repitiendo la clave para todos los registros en tu archivo

NOTA 3: si el move-corresponding no le esta pasando bien los datos entonces has un move individual, es decir:

move:
ti-campo1 to estructura-campo1.
ti-campo2 to estructura-campo2.
ti-campo...N to estructura-campo N....


Prueba y me dices que pasa.

Saludos, yo ahorita estoy en mty, voy a estar al pendiente si queires lo resolvemos de una vez, por que dispongo de una hora mas...
Responder Con Cita
  #15  
Viejo 29/02/08, 21:38:35
Avatar de bacha
bacha bacha is offline
Member
 
Fecha de Ingreso: dic 2007
Mensajes: 53
Gracias larmadovr !!!

Me tengo que acostumbrar a usar el debuger.... no lo uso mucho, pero creo que es vital !!....

Mi ERROR era que mis campos de la TI no tenian el mismo nombre que los de la estructura y pues a la hora de buscar el CORRESPONDING pues no encontraba un campo correspondiente y no movia mas que el mandante .....

maldita programacion !, jaja.

MUCHAS GRACIAS, EXCELENTE AYUDA Y APORTACION !
Responder Con Cita
  #16  
Viejo 29/02/08, 21:42:38
larmadovr larmadovr is offline
Member
 
Fecha de Ingreso: ene 2008
Localización: Monterrey N.L. México
Mensajes: 77
Thumbs up Excelente.

Pues sabes mi cuate, algunas herramientas no nos gustan por que tenemos miedo de usarlas, pero no te preocupes sientete tranquilo y comienza a familiarizarte con el debuggin por que vaya que en ABAP si es vital. Y bueno en todos los lenguajes facilita la existencia.

Y recuerda que echando a perder se aprende.... Jejeje
Responder Con Cita
  #17  
Viejo 21/04/08, 14:31:31
jorgeaguilarv jorgeaguilarv is offline
Junior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 6
Duda, con Batch

Estoy tratando de hacer un Batch para poder llenar una tabla transparente con la información de un Excel no sé si me puedan ayudar con algún ejemplo o algún manual.
Saludos.
Responder Con Cita
  #18  
Viejo 21/04/08, 14:47:59
zonanet zonanet is offline
Senior Member
 
Fecha de Ingreso: mar 2007
Localización: Durango, Dgo. México
Mensajes: 195


Yo te puedo mandar un manual, dame tu dirección y te lo hago llegar.

Saludos
Responder Con Cita
  #19  
Viejo 21/04/08, 17:08:25
jorgeaguilarv jorgeaguilarv is offline
Junior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 6
Duda, con Batch

Muchas gracias, mi mail es

Úlima edición por jorgeaguilarv fecha: 21/04/08 a las 17:31:23.
Responder Con Cita
  #20  
Viejo 16/05/08, 13:43:16
Hatenas Hatenas is offline
Senior Member
 
Fecha de Ingreso: mar 2008
Mensajes: 184
Hola a todos...

Zonanet, por favor me puedes enviar a mi tambien el manual para Crear Batch Input. mi direccin es

Gracias..
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 22:21:38.


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