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 13/11/09, 18:22:18
schrizophrenia
 
Mensajes: n/a
Problema con Consulta

Hola que tal.
Les comento q yo hago la siguiente consyulta, y me trae los datos correctos pero tarda demasiado alguien sabe como podria agilizarla?
gracias!!!

LOOP AT it_aux_bkpf INTO wa_aux_bkpf.

SELECT belnr bukrs gjahr buzei lifnr dmbtr shkzg budat bldat
FROM bsik
APPENDING CORRESPONDING FIELDS OF TABLE it_bsik
WHERE belnr = wa_aux_bkpf-belnr AND
bukrs = p_bukrs AND
gjahr = p_gjahr AND
buzei = '1' AND
lifnr IN s_lifnr AND
hkont IN s_cuenta.

IF sy-subrc <> 0.

SELECT belnr bukrs gjahr buzei lifnr dmbtr shkzg budat bldat
FROM bsak
APPENDING CORRESPONDING FIELDS OF TABLE it_bsak
WHERE belnr = wa_aux_bkpf-belnr AND
bukrs = p_bukrs AND
gjahr = p_gjahr AND
buzei = '1' AND
lifnr IN s_lifnr AND
hkont IN s_cuenta.


ENDIF.
Responder Con Cita
  #2  
Viejo 13/11/09, 18:40:38
Avatar de stormshadow
stormshadow stormshadow is offline
Senior Member
 
Fecha de Ingreso: jun 2008
Mensajes: 117
claro, por cada iteración estas haciendo una llamada a la base de datos por eso tarda bastante, bueno lo que a mi se me ocurre es que primero saques todos tus datos de la base de datos y los metas a otra ti, ya despues ahora si loopeas y con un field symbol puedes ir metiendo tus datos de una ti a la otra a la que en realidad quieres, o también podrías utilizar un for all entries que creo que sería el más viable, bueno esa es una solución tal vez halla otra más óptima
__________________
"Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein
Responder Con Cita
  #3  
Viejo 13/11/09, 18:59:16
schrizophrenia
 
Mensajes: n/a
Si lo pense con un For all entries, pero tengo dudas...

Xq yo lo q tengo q hacer es: Preguntar por cada Belnr q saco de BKPF si aparece en la BSIK y si no esta buscarlo en la BSAK



Gracias por responder!
Responder Con Cita
  #4  
Viejo 13/11/09, 20:59:02
Gatini28 Gatini28 is offline
Junior Member
 
Fecha de Ingreso: ago 2006
Mensajes: 23
Thumbs up Mejora de Performance

Hola Schrizophrenia,
de hecho que tu consulta demora por la cantidad de conexiones que tienes a la BD, yo te recomiento lo siguiente:

1. Realiza un SELECT..FOR ALL ENTRIES a la tabla BSIK con los datos de la tabla it_aux_bkpf.

2.Realiza un SELECT..FOR ALL ENTRIES a la tabla BSAK con los datos de la tabla it_aux_bkpf.

3. Loopea la tabla it_aux_bkpf y por cada vuelta realiza READ TABLE a las tablas que obtuviste del punto 1 y punto 2.

Con ello habras realizado solo 2 conexion a la BD en lugar de realizar una por cada registro dentro de la TI.

Espero haberte ayudado.

Saludos,
Erick Oré.
Responder Con Cita
  #5  
Viejo 16/11/09, 11:07:00
ivan888 ivan888 is offline
Junior Member
 
Fecha de Ingreso: oct 2009
Mensajes: 5
Hola,

¿accedes a la BSIK, BSAK con el select-option "s_lifnr" relleno?

En caso de que esté vacio o que tenga un rango de valores muy grande quizá deberías plantearte ir a la tabla BSEG

Saludos.
Responder Con Cita
  #6  
Viejo 16/11/09, 13:02:24
schrizophrenia
 
Mensajes: n/a
1ero gracias por responder,
2do, pense hacerlo con la Bseg pero el funcional me dijo q no, Yo solo obedezco! jajajaj
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 17:19:17.


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