Ver Mensaje Individual
  #1  
Viejo 29/01/09, 16:39:13
acontreras acontreras is offline
Junior Member
 
Fecha de Ingreso: oct 2008
Mensajes: 16
Performance Select-endselect

Miren les cuento que me han solicitado realizar un par de optimizaciones a algunos programas, en una de las partes del documento solicitan lo siguiente:

Se recorre la tabla interna TI_OT (LOOP…..ENDLOOP) y dentro del LOOP…..ENDLOOP hay varios SELECT…..ENDSELECT : Se recomienda seleccionar los registros que se necesitan y almacenarlos en tablas internas. Luego hacer búsquedas sobre la tabla interna, si no existen realizar búsquedas en la Base de Datos.

**-- Recorre la tabla de las OT para recuperar los datos
**-- faltantes.
LOOP AT TI_OT.

**-- Obtiene Puesto de trabajo.
DATA ARBPL LIKE CRHD-arbpl.
Clear ARBPL.

SELECT ARBPL
INTO ARBPL
FROM CRHD INNER JOIN AFVC
ON CRHD~OBJID = AFVC~ARBID
INNER JOIN CAUFV
ON CAUFV~AUFPL = AFVC~AUFPL

WHERE CAUFV~AUFNR = TI_OT-AUFNR AND
AFVC~VORNR = TI_OT-VORNR AND
CRHD~ARBPL IN parbpl1.
.
ENDSELECT.
....
....
....
MOVE ARBPL TO TI_ALV-ARBPL1. "Puesto trabajo
....
....
....

**-- Elimina los registros que no corresponden al
**-- puesto de trabajo seleccionado.
IF NOT PARBPL1 IS INITIAL.
IF ARBPL IS INITIAL.
DELETE TI_ALV Index Sy-tabix.
ENDIF.
ENDIF.

yo realicé lo siguiente, pero al desplegar el report no muestra la columna del del puesto de trabajo(arbpl)

DATA: BEGIN OF TI_ARBPL OCCURS 0,
ARBPL LIKE CRHD-ARBPL.
DATA: END OF TI_ARBPL.

SELECT ARBPL
FROM CRHD INNER JOIN AFVC
ON CRHD~OBJID = AFVC~ARBID
INNER JOIN CAUFV
ON CAUFV~AUFPL = AFVC~AUFPL
APPENDING CORRESPONDING FIELDS OF TABLE TI_ARBPL
WHERE CAUFV~AUFNR = TI_OT-AUFNR AND
AFVC~VORNR = TI_OT-VORNR AND
CRHD~ARBPL IN parbpl1.
...
..
.
MOVE TI_ARBPL-ARBPL TO TI_ALV-ARBPL1. "Puesto trabajo
...
..
.
**-- Elimina los registros que no corresponden al
**-- puesto de trabajo seleccionado.
IF NOT PARBPL1 IS INITIAL.
IF TI_ARBPL-ARBPL IS INITIAL.
DELETE TI_ALV Index Sy-tabix.
ENDIF.
ENDIF.

Bueno eso es parte del código donde creo yo puede estar uno de los problemas. Hay otros SELECT/END-SELECT pero resolviendo este yo creo me ayudarían mucho.
Responder Con Cita