MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Rendimiento... (foro/showthread.php?t=374)

DCErick 18/04/06 00:56:12

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.

sap2006 18/04/06 15:42:01

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.

DCErick 19/04/06 00:02:45

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