
Tablas internas
Para acabar (por el momento) tenemos las tablas internas. Sirven básicamente para almacenar la información que extraemos de las tablas de la base de datos. Una tabla interna es también una matriz de datos, pero bidimensional. Al contrario que las estructuras que sólo pueden contener un valor para cada campo, las tablas internas contendrán muchos registros. Cada registro llevará un valor diferente en el mismo campo a la manera que tiene una tabla transparente de diccionario.
Podemos declarar tablas internas de diferentes maneras:
Ejemplo de declaración de tablas internas:
************************************************************************ *Tablas internas ************************************************************************ * Tabla de vuelos: primera forma de declaración de tablas internas
DATA:
BEGIN OF i_vuelos occurs 0,
carrid LIKE sflight-carrid,
connid LIKE sflight-connid,
fldate LIKE sflight-fldate,
planetype LIKE sflight-planetype,
END OF i_vuelos.
* Tabla de aviones: segunda forma de declaración de tablas internas
TYPES:
BEGIN OF ty_aviones,
planetype LIKE saplane-planetype,
seatsmax LIKE saplane-seatsmax,
END OF ty_aviones.
DATA:
i_aviones TYPE STANDARD TABLE OF ty_aviones.
-
La primera forma de declarar una tabla interna es muy parecida a la declaración de estructuras, pero añadiendo la cláusula occurs 0. Al declarar una tabla interna de este modo también estamos diciendo a SAP que nuestra tabla interna tendrá una cabecera.
-
La segunda forma se realiza mediante sentencia types, que permite la declaración de tipos de datos. Esta segunda forma parece más complicada y más larga, pero es preferible utilizarla ya que la primera no es útil en ciertos entornos ABAP como en programación de queries, smartforms o ABAP orientado a objetos. Al declarar una tabla interna de este modo también estamos diciendo a SAP que nuestra tabla interna tendrá una cabecera. En otro artículo veremos qué implicaciones tiene esto.