Bueno lo que yo te recomiendo es eliminar todos los select single que estén dentro de loops, realizar la consulta con campos clave a las tablas que requieras fuera del loop para posteriormente solo realizar lecturas a tus tablas internas dentro del loop.
Si este fuera tu caso, yo lo aria de esta forma:
types: begin of ty_bsas,
bukrs type bsas-bukrs,
belnr type bsas-belnr,
gjahr type bsas-gjahr,
end of ty_bsas.
data: tg_bsas type table of ty_bsas,
sg_bsas type ty_bsas.
SELECT bukrs belnr gjahr
INTO table tg_bsas
FROM bsas
for all entries in tablai_bkpf
WHERE bukrs EQ tablai_bkpf-bukrs
AND augdt IN r_budat
AND augbl EQ tablai_bkpf-belnr.
if sy-subrc eq 0.
*Se eliminan todos los registros que sean igual a 'ZI'.
delete tg_bsas where blart eq 'ZI'.
* se procede a realizar el loop a tablai_bkpf.
Loop at tablai_bkpf into sg_bkpf.
* Lectura a tabla interna bsas
read table tg_bsas into sg_bsas with key bukrs = sg_bkpf-bukrs
augdt IN r_budat
augbl = sg_bkpf-belnr.
endloop.
endif.
algo así yo haría, espero y me allá dado a entender. Saludos.
Úlima edición por jvctaz23 fecha: 29/05/13 a las 15:23:59.
|