|
#1
|
|||
|
|||
Consulta sobre loop a una tabla
gente, es una pavada mi consulta, pero no me doy cuenta.. -es martes y estoy quemado...-
tengo una tabla interna con datos de cabecera y detalles -tabla para BI para la FB01, y me han pedido ahora, que sobre el programa ya creado, lo modifique y contabilice los detalles, y cuando sean mayores a 6, no procese esa cabecera y esos registros de detalle.. El en loop ya esta la logica, y cuando el wa_tabla-pos = 1, hago un perform cabecera, y si es igual a 2, hago el perform detalle.. El tema es, como hago para contarlos y no procesarlos si son mas de 6 ?? Ya que en cada llamado al perform detalle, llama al bdc_dympro y bdc_field.. y entonces, por mas que sean mas de 6, ya la tabla que haria la BI, ya tendria los datos cargados.. Si alguien me puede tirar una idea.. bienvenido sea! GRACIAS! CG |
#2
|
||||
|
||||
hola
podes usar un contador dentro del loop o bien verificar la variable sy-index saludos
__________________
Sebastián Chiavia |
#3
|
|||
|
|||
claro, esa es la idea -la del contador- pero mi pregunta va al hecho de que por cada pasada del bucle, ya estoy llamando a llenar la BI, y el tema es que ANTES de hacer el llamado a la BI, deberia saber -como?- si son 6 o mas los registros.. No se si me explico bien.. o diciendo mejor.. como puedo hacer para saber cada vez que estoy en el registro cabecera, cuantos detalles tiene dicha cabecera? Hago una vez mas la salvedad de que en la misma tabla que estoy haciendo el loop, estan los registros de cabecera Y DE detalle.. un loop anidado, a la misma tabla que el loop superior.. no pinchara el proceso?.. |
#4
|
||||
|
||||
para determinar cuantos registros tiene una tabla interna usa
DESCRIBE TABLE i_tab LINES lineas. Saludos!
__________________
Sebastián Chiavia |
#5
|
|||
|
|||
lo sé, pero no me sirve, ya que necesito sumar todos los '2' de cada cabecera, no los registros totales de la tabla.. ¿¿?? mi tabla comienza con el campo posicion, que me determina si el registro es cabecera o detalle, algo asi: 1 2 1 2 2 2 1 2 2 2 2 1 2 1 2 2 |
#6
|
||||
|
||||
en ese caso tenes que hacer lo siguiente
i_tab_aux[] = i_tab[] delete i_tab_aux[] where campo_posicion not eq '2'. DESCRIBE TABLE i_tab_aux LINES lineas. espero te sirva saludos
__________________
Sebastián Chiavia |
Herramientas | Buscar en Tema |
Desplegado | |
|
|