📘ABAP - Tables
Definición de Tables
La cláusula ABAP TABLES se utiliza para pasar como parámetro en subrutinas a tablas internas.
Si bien esta cláusula esta considerada "obsoleta" por SAP ya que existen otras formas mejores según SAP de pasar tablas internas como parámetros de subrutinas, la realidad es que se siguen encontrando códigos ABAP que la utilizan.
Cuando pasamos una tabla interna como parámetro dentro de uan subrutina, en la definición de la misma, es decir luego del FORM deberemos especificar el tipo o estructura de la tabla interna.
Veamos un ejemplo de su utilización:
PERFORM FOTR_XX_CARGAR_SALIDA TABLES TABEX1
USING pa9011-CO_BID01
pa9011-PKPRZ01
CHANGING TABERR.
Y luego:
FORM FOTR_XX_CARGAR_SALIDA TABLES i_TABEX1 STRUCTURE ZHEGS38
USING wpa9011-CO_BIDXX
wpa9011-PKPRZXX
CHANGING WTABERR LIKE ZHEGS02.
IF NOT wpa9011-CO_BIDXX IS INITIAL.
CLEAR AUFK.
SELECT SINGLE *
FROM AUFK
WHERE AUFNR = wpa9011-CO_BIDXX.
IF sy-subrc <> 0.
CLEAR WTABERR.
WTABERR-ZCOD_RETORNO = 'Error'.
WTABERR-ZMENSAJE = 'No se encontró la orden'.
*---Debo borrar todos los registros de la tabla interna i_TABEX1
REFRESH i_TABEX1.
ELSE.
i_TABEX1-ZCOD_ORDEN = wpa9011-CO_BIDXX.
i_TABEX1-ZDESCRIPCION = AUFK-KTEXT.
i_TABEX1-ZPORCENTAJE = wpa9011-PKPRZXX.
i_TABEX1-ZCOD_AGR = '0'.
APPEND i_TABEX1.
ENDIF.
ENDIF.
ENDFORM. "FOTR_CARGAR_SALIDA