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
  #1  
Viejo 18/04/06, 01:56:12
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
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.
Responder Con Cita
  #2  
Viejo 18/04/06, 16:42:01
sap2006 sap2006 is offline
Senior Member
 
Fecha de Ingreso: mar 2006
Mensajes: 134
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 16:47:02.
Responder Con Cita
  #3  
Viejo 19/04/06, 01:02:45
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
Thumbs up

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...
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 14:42:11.


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