acontreras
10/02/09, 17:51:06
Amigos:
Miren tengo problemas con un Array Fetch, me piden seleccionar los registros de la tabla BKPF de una solas vez ( ARRAY FETCH ), luego procesar los datos en la tabla interna. La idea es que mejore la performance.El código es el siguiente:
LOOP AT i_output .
CONCATENATE i_output-belnr i_output-gjahr INTO clave .
SELECT SINGLE bldat xblnr waers
INTO (i_output-bldat, i_output-xblnr, i_output-waers_i)
FROM bkpf
WHERE awtyp = 'RMRP'
AND bukrs = i_output-bukrs
AND gjahr = i_output-gjahr
AND awkey = clave .
IF sy-subrc EQ 0 .
MODIFY i_output.
SELECT SINGLE wrbtr
INTO i_output-importe
FROM bseg
WHERE bukrs = i_output-bukrs
AND belnr = i_output-knbelnr
AND gjahr = i_output-gjahr .
IF sy-subrc EQ 0 .
MODIFY i_output .
ENDIF .
SELECT SINGLE augbl
INTO i_output-augbl
FROM bsak
WHERE belnr = i_output-knbelnr
AND xblnr = i_output-xblnr
AND bukrs = i_output-bukrs
AND gjahr = i_output-gjahr
AND lifnr = i_output-lifnr .
IF sy-subrc EQ 0 .
i_output-pagado = 'Pagado' .
MODIFY i_output .
CLEAR i_output-augbl .
CLEAR i_output-pagado .
ENDIF .
CLEAR i_output-xblnr .
CLEAR i_output-bldat .
ENDIF .
ENDLOOP .
Miren tengo problemas con un Array Fetch, me piden seleccionar los registros de la tabla BKPF de una solas vez ( ARRAY FETCH ), luego procesar los datos en la tabla interna. La idea es que mejore la performance.El código es el siguiente:
LOOP AT i_output .
CONCATENATE i_output-belnr i_output-gjahr INTO clave .
SELECT SINGLE bldat xblnr waers
INTO (i_output-bldat, i_output-xblnr, i_output-waers_i)
FROM bkpf
WHERE awtyp = 'RMRP'
AND bukrs = i_output-bukrs
AND gjahr = i_output-gjahr
AND awkey = clave .
IF sy-subrc EQ 0 .
MODIFY i_output.
SELECT SINGLE wrbtr
INTO i_output-importe
FROM bseg
WHERE bukrs = i_output-bukrs
AND belnr = i_output-knbelnr
AND gjahr = i_output-gjahr .
IF sy-subrc EQ 0 .
MODIFY i_output .
ENDIF .
SELECT SINGLE augbl
INTO i_output-augbl
FROM bsak
WHERE belnr = i_output-knbelnr
AND xblnr = i_output-xblnr
AND bukrs = i_output-bukrs
AND gjahr = i_output-gjahr
AND lifnr = i_output-lifnr .
IF sy-subrc EQ 0 .
i_output-pagado = 'Pagado' .
MODIFY i_output .
CLEAR i_output-augbl .
CLEAR i_output-pagado .
ENDIF .
CLEAR i_output-xblnr .
CLEAR i_output-bldat .
ENDIF .
ENDLOOP .