MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Pasar de Inner Join a Read Table (foro/showthread.php?t=36723)

andresf02 12/05/10 12:23:41

Pasar de Inner Join a Read Table
 
Buenos Dias

Qusiera que por favor me ayudaran con el siguiente codigo, el cual usa Inner Joins.

Lo que necesito es cambiarlo para bajar la informacion a tablas internas y luego hacer los cruzes de informacion con FOR ALL ENTRIES, READ TABLE y LOOP AT.

He trabajdo con READ TABLE antes y he logrado hacerlos sin problemas, pero en este caso me surge una duda especial y es que dentro del SELECT se ejecutan PERFORMS que lo que hacen es calcular unos campos cuyo valor no se encuentra en la base de datos y no se en que momento llamarlo, si mientras voy bajando la informacion como esta en el codigo, o despues de haberla bajado toda a tablas internas.

Agradeceria mucho si alguien pudiera transcribir el codigo a READ TABLE

Gracias!

*********************************************************
select caufv~aufnr caufv~auart caufv~erdat
caufv~objnr caufv~plnbez makt~maktg
caufv~gamng cobrb~aufnr
sum( afpo~wemng )
into (wa_tabcon-aufnr, wa_tabcon-auart, wa_tabcon-erdat, lv_objnr,
wa_tabcon-plnbez, wa_tabcon-maktg, wa_tabcon-gamng, lv_aufnr,
wa_tabcon-wemng)
from caufv inner join afpo on ( afpo~aufnr = caufv~aufnr )
inner join makt on ( makt~matnr = caufv~plnbez )
inner join cobrb on ( cobrb~objnr = caufv~objnr )
where caufv~bukrs = p_bukrs
and caufv~werks = p_werks
and caufv~autyp = 10
and caufv~auart in ('ZA11','ZA12','ZA13','ZL14','ZL15')
and cobrb~konty = 'ORD'
and cobrb~werks = p_werks
group by caufv~aufnr caufv~auart caufv~erdat caufv~objnr
caufv~plnbez makt~maktg caufv~gamng cobrb~aufnr
having sum( afpo~wemng ) = 0.

call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
exporting
input = wa_tabcon-aufnr
importing
output = wa_tabcon-aufnr.

call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
exporting
input = wa_tabcon-plnbez
importing
output = wa_tabcon-plnbez.

perform obtener_costo_real_orden using lv_objnr
changing wa_tabcon-costo.

if wa_tabcon-costo <> 0. " si la orden tiene costos reales.

perform obtener_finca_suerte_orden using lv_aufnr
changing lv_plnbez.
move lv_plnbez+1(4) to wa_tabcon-tplnr.
move lv_plnbez+6(3) to wa_tabcon-suertcdg.

perform obtener_nombrefinca using wa_tabcon-tplnr
changing wa_tabcon-pltxt.

perform obtener_estado_orden using lv_objnr
changing wa_tabcon-txt30.

append wa_tabcon to p_tabla.

endif.

lv_reg_num = lv_reg_num + 1.
perform mostrar_barra_progreso using 'Procesando ordenes... '
lv_reg_tot
lv_reg_num.

endselect.
****************************************************

DavidXD_XD 12/05/10 19:54:16

Para no usar mucho la BD se puede hacer esto:



Husos Horarios son GMT. La hora en este momento es 02:21:52.

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