|
#1
|
||||
|
||||
Rendimiento...
Holas hice la siguiente BAPI y me gustaria saber si se puede hacer que corra mas rapido... haber si alguien me ayuda a tener un codigo mas eficiente ....
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. |
#2
|
|||
|
|||
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. Úlima edición por sap2006 fecha: 18/04/06 a las 15:47:02. |
#3
|
||||
|
||||
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 ..... Eso es oro para nosotros jeej... |
Herramientas | Buscar en Tema |
Desplegado | |
|
|