Rendimiento...
Holas hice la siguiente BAPI y me gustaria saber si se puede hacer que corra mas rapido... :D haber si alguien me ayuda a tener un codigo mas eficiente :D....
FUNCTION zbapi_traslado_selall. *"---------------------------------------------------------------------- *"*"Interfase local *" TABLES *" T_ZEKKO STRUCTURE ZSEKKO OPTIONAL *" T_ZEKPO STRUCTURE ZSEKPO OPTIONAL *" T_ZEKET STRUCTURE ZSEKET OPTIONAL *"---------------------------------------------------------------------- *CABECERA. SELECT ebeln aedat reswk ekgrp bedat FROM ekko INTO CORRESPONDING FIELDS OF TABLE t_zekko WHERE aedat < sy-datum AND bsakz EQ 'T' AND bstyp EQ 'F' AND statu EQ '9' AND ebeln BETWEEN 430000000 AND 4399999999. **Articulos. LOOP AT t_zekko. SELECT ebeln ebelp matnr menge APPENDING CORRESPONDING FIELDS OF TABLE t_zekpo FROM ekpo WHERE loekz NE 'L' AND ebeln = t_zekko-ebeln. ENDLOOP. ***Tallas LOOP AT t_zekpo. SELECT ebeln ebelp j_3asize menge FROM eket APPENDING CORRESPONDING FIELDS OF TABLE t_zeket WHERE ebeln = t_zekpo-ebeln AND ebelp EQ t_zekpo-ebelp. ENDLOOP. ENDFUNCTION. |
Un par de consejos: Utiliza operadores del tipo <,=.... ganaras algo de rendimiento....
Este fragmento: LOOP AT t_zekko. SELECT ebeln ebelp matnr menge APPENDING CORRESPONDING FIELDS OF TABLE t_zekpo FROM ekpo WHERE loekz NE 'L' AND ebeln = t_zekko-ebeln. ENDLOOP. Mejor substituyelo por este otro: *Copio el contenido t_ekpo en su auxial t_zekko_aux[] = t_zekko. Select ebeln ebelp matnr menge FROM ekpo into table t_zekpo FOR ALL ENTRIES IN t_zekko_aux WHERE loekz NE 'L' AND ebeln = t_zekko-ebeln. De esta manera solo accedes una vez a la BBDD, con esta sentencia obtendras un buen rendimiento. Salu2. |
Que bien... Me tome el tiempo de anotar los tiempos jeje..
Mi Codigo. Tiempo ejec.: 2,464,757 Microsegundos <----En Frio. Tiempo ejec.: 2,003,064 Microsegundos <----Despues de 5 llamados consecutivos. Con tu observacion. Tiempo ejec.: 1,917,061 Microsegundos <----En Frio. Tiempo ejec.: 1,753,163 Microsegundos<----Despues de 5 llamados consecutivos. Acomodando los dos Select..... Tiempo ejec.: 504,501 Microsegundos <----en Frio... Tiempo ejec.: 453,952 Microsegundos <----Despues de 5 llamados consecutivos. Gracias por tu ayuda..... Me dejaste libre casi dos segundos a SAP para otra tarea :D..... Eso es oro para nosotros jeej...:p |
Husos Horarios son GMT. La hora en este momento es 06:32:22. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web