Ver Mensaje Individual
  #2  
Viejo 24/09/15, 15:13:54
JOrozco JOrozco is offline
Junior Member
 
Fecha de Ingreso: nov 2013
Mensajes: 10
For All Entries

Hola.

Lo que yo haría sería en los LOOP's, usar field-symbols, para que fuera más rápido cada ciclo, posterior, el SELECT lo haría fuera de los dos LOOP's, esto usando la sentencia FOR ALL ENTRIES.

Me crearía una tabla interna tipo HASHED con las llaves molga y lgart, en tu select veo que molga la usas fija, si siempre es la misma para todos puedes hacerlo sólo por lgart, si no ps si usa ambos campos. Así quedaría el SELECT mas o menos:

"Se eliminan duplicados para optimizar el SELECT con FOR ALL ENTRIES.
DATA: tl_copia LIKE tl_rt.
tl_copia[] = tl_rt[].
DELETE ADJACENT DUPLICATES FROM tl_copia COMPARING lgart.

SELECT molga
lgart
lgtxt
INTO TABLE tl_t512t
FROM t512t
FOR ALL ENTRIES IN tl_copia
WHERE sprsl = sy-langu
AND molga = vl_molga
AND lgart = tl_copia-lgart.

Después ya vendrían tus LOOPS(con field-symbol), y en dónde tienes el
select single ahorita, cambiarías eso por un:

"Añadir la condición del campo MOLGA en caso de ser necesaria.
READ TABLE tl_t512t ASSING <sl_t512t> WITH TABLE KEY lgart = sl_rt-lgart.

Espero con esto darte una idea más o menos clara. Lo hice sobre la marcha así que espero que si me haya dado a entender.

Saludos y suerte!
Responder Con Cita