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 06/03/08, 00:07:42
j3sus j3sus is offline
Member
 
Fecha de Ingreso: oct 2007
Mensajes: 33
problema con loop anidado

hola compañeros como estan soy nuevo en abap y
estoy teniendo un problema con un loop anidado
me gustaria que me dieran opciones de como solucionarlo
puedo tener un loop dentro de otro.. mas no puedo tener un loop que tenga un loop dentro y estos dos esten dentro de otro loop como en el codigo que les pasare.. me gustaria que me ayudaran sin que perdiera la funcionalidad
gracias =)

LOOP AT I_INDX1.
READ TABLE I_LIKP INTO WA_LIKP WITH KEY kunnr = i_indx1-zkunn2
kunag = i_indx1-zkunnr.
IF SY-SUBRC EQ 0.

LOOP AT I_LIKP INTO WA_LIKP FROM SY-TABIX.

IF I_INDX1-ZKUNN2 = WA_LIKP-KUNNR AND
I_INDX1-ZKUNNR = WA_LIKP-KUNAG.
READ TABLE I_LIPS INTO wa_lips WITH KEY
VBELN = WA_LIKP-VBELN.
IF SY-SUBRC = 0.

LOOP AT I_LIPS INTO wa_lips FROM SY-TABIX.

IF WA_LIKP-VBELN = WA_LIPS-VBELN.
READ TABLE i_vbap WITH KEY vbeln = wa_lips-vgbel
posnr = wa_lips-vgpos
BINARY SEARCH.
IF sy-subrc EQ 0.
ADD i_vbap-netwr TO i_indx1-zklimk.
ADD i_vbap-mwsbp TO i_indx1-zklimk.
ENDIF.
ELSE.
EXIT.
ENDIF.

ENDLOOP. "I_LIPS
ELSE.
EXIT.
ENDIF.
ELSE.
EXIT.
ENDIF.

ENDLOOP. "I_LIKP
ENDIF.
ENDLOOP.
Responder Con Cita
  #2  
Viejo 06/03/08, 07:23:06
LouieBoy LouieBoy is offline
Member
 
Fecha de Ingreso: ago 2006
Mensajes: 86
Buenas, no te entiendo muy bien, pero puedes tener 3 loops anidados perfectamente, que error te esta dando el compilador?

Saludos,

LouieBoy
Responder Con Cita
  #3  
Viejo 06/03/08, 12:37:01
abapconsultoria abapconsultoria is offline
Senior Member
 
Fecha de Ingreso: ene 2008
Mensajes: 101
Podrias pasar el codigo incluyendo variables asi prueba hacer la verificacion en el editor. A la hora de anidad no deberias tener problema.

Saludos.

Javier.
__________________




Lo importante no es saber sino saber quien es el que sabe
Responder Con Cita
  #4  
Viejo 07/03/08, 12:42:05
ibecerra
 
Mensajes: n/a
hola lo q estas haciendo esta bien, porque esta llendo al puntero directo de la tabla interna, lo que seria mejor y pueda avanzar el puntero correctamente es poner al sy-tabix a una variable ejmplo wsytabix.
y dentro del loop has un add 1 wsytabix para que el puntero pueda avanzar, logico declara wsytabix1, wsytabix2... para no confundir los punteros.

saludos
Responder Con Cita
  #5  
Viejo 07/03/08, 12:49:07
ibecerra
 
Mensajes: n/a
Por tema de performance de vez en cuando aplico la logica q estas poniendo, te envio la posible correcion. ojo q la likp debera estar ordenado por
kunnr , kunag , vbeln

data:
wsytabix like sy-tabix,
wsytabix2 like sy-tabix.

LOOP AT I_INDX1.
clear wsytabix1,wsytabix2.
READ TABLE I_LIKP INTO WA_LIKP WITH KEY kunnr = i_indx1-zkunn2
kunag = i_indx1-zkunnr.
IF SY-SUBRC EQ 0.
wsytabix = SY-TABIX. --- 1ra correccion
LOOP AT I_LIKP INTO WA_LIKP FROM wsytabix.

IF I_INDX1-ZKUNN2 = WA_LIKP-KUNNR AND
I_INDX1-ZKUNNR = WA_LIKP-KUNAG.
READ TABLE I_LIPS INTO wa_lips WITH KEY
VBELN = WA_LIKP-VBELN.
IF SY-SUBRC = 0.

LOOP AT I_LIPS INTO wa_lips FROM SY-TABIX.
wsytabix2 = SY-TABIX. --- 3ra correccion

IF WA_LIKP-VBELN = WA_LIPS-VBELN.
READ TABLE i_vbap WITH KEY vbeln = wa_lips-vgbel
posnr = wa_lips-vgpos
BINARY SEARCH.
IF sy-subrc EQ 0.
ADD i_vbap-netwr TO i_indx1-zklimk.
ADD i_vbap-mwsbp TO i_indx1-zklimk.
ENDIF.
ELSE.
EXIT.
ENDIF.
add 1 to wsytabix2--->4ta correcion
ENDLOOP. "I_LIPS
ELSE.
EXIT.
ENDIF.
ELSE.
EXIT.
ENDIF.
add 1 to wsytabix. --->2da correcion
ENDLOOP. "I_LIKP
ENDIF.
ENDLOOP.
Responder Con Cita
  #6  
Viejo 07/03/08, 12:50:38
ibecerra
 
Mensajes: n/a
Correcion
wsytabix2 = SY-TABIX. --- 3ra correccion
LOOP AT I_LIPS INTO wa_lips FROM SY-TABIX.
Responder Con Cita
  #7  
Viejo 12/03/08, 00:13:40
j3sus j3sus is offline
Member
 
Fecha de Ingreso: oct 2007
Mensajes: 33
muchas gracias ibecerra
me sirvio de mucho
te debo una
=)
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 11:18:07.


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