✒️ABAP Las tablas internas
ABAP Las tablas internas
TABLAS INTERNAS
1.- Que son las tablas internas.
Es un objeto que permite guardar en memoria grandes cantidades de registros de datos con la misma
estructura.
La cantidad máxima de registros depende de los límites especificados en la instalación del sistema.
Se utiliza para:
. Almacenar temporalmente los datos de las BDD para uso futuro.
. Estructurar y formatear datos que se mostrarán como salida del programa.
. Formatear datos para ser utilizados por otros servicios.
2.- Cómo se declara una tabla interna.
DATA: Begin of <tablas> OCCURS <n>,
<Def. Campo>,
....
END OF <tabla>.
n.- Es la cantidad de registros que se guardarán en memoria simultáneamente, más una línea de
cabecera.
"Por lo generar, en el parámetro OCCURS se especifica la cantidad 0 lo que permite trabajar con tablas
de gran cantidad de registros".
Ejemplo:
DATA: BEGIN OF ti_proveedores OCCURS 0,
nombre(30) TYPE C,
apellido(39) TYPE C,
dni(10) TYPE C,
END OF ti_proveedores.
Otra forma.
DATA: BEGIN OF wa_proveedores,
nombre(30) TYPE C,
apellido(30)TYPE C,
dni(10) TYPE C,
END OF wa_proveedores.
DATA: ti_proveedores LIKE STANDARD TABLE OF wa_proveedores.
3.-Llenado de una tabla interna.
Se utiliza la instrucción APPEND <estructura> TO <Tabla interna>: Añade registros en la última posición
con los valores que se tiene en el área de trabajo.
Ejemplo:
CLEAR wa_proveedores.
wa_proveedores-nombre = 'Miguel'.
wa_proveedores-apellido = 'Acosta'.
wa_proveedores-dni = '1801711068'.
APPEND wa_proveedores TO ti_proveedores.
* Otro registro.
CLEAR wa_proveedores.
wa_proveedores-nombre = 'José'.
wa_proveedores-apellido = 'Acosta'.
wa_proveedores-dni = '1701711068'.
APPEND wa_proveedores TO ti_proveedores.
4.- Ordenamiento de una tabla interna
Se utiliza la instrucción SORT.
*Ordenar los proveedores de mayor a menor dni.
SORT ti_proveedores BY dni DESCENDING.
Para ordenar ascendentemente.
SORT ti_proveedores BY dni ASCENDING.
5.- Procesamiento de una tabla interna.
Se utiliza la instrucción:
LOOP AT <Tabla interna>
END LOOP.
LOOP AT ti:proveedores INTO wa_proveedores
WHERE NOT nombre IS INITIAL.
ENDLOOP.
Si no se cumple la condición especificada en la cláusula WHERE, EL sy-subrc será distinto de cero.
6.- Lectura de una tabla interna.
Para leer una fila específica sin necesidad de recorrerla, se utiliza READ TABLE:
* Leer los datos de n registro particular.
READ TABLE ti_proveedores INTO wa_proveedores WITH KEY nombre = 'José'.
Si se encuentra el registro buscado, el SY-SUBRC será cero. Si se desea leer los datos que se
encuentran en una posición particular de la tabla, se utilizará INDEX, ejemplo:
*Leer el primer registro de la tabla
READ TABLE ti_proveedores INTO wa_proveedores INDEX 1.
El agregado de la cláusula BINARY SEARCH en una sentencia READ TABLE hace que la búsqueda sea
más eficiente.
7.- Modificación de una tabla interna.
Para modificar el contenido de un registro de una tabla interna se utiliza la instrucción MODIFY.
Ejemplo:
*Modificar el primer registro de la tabla
wa_proveedores-dni = '1234567890'.
MODIFY ti_proveedores FROM wa_proveedores INDEX 1.
Si se intenta modificar un registro de una tabla interna y el mismo no existe, entonces el SY-SUBRC
será distinto de cero.
Para insertar un registro en una posición determinada en una tabla interna, se utiliza la instrucción
INSERT.
Ejemplo:
*Insertar un registro en la segunda posición de la tabla.
wa_proveedores_nombre = 'Marcelo'.
wa_proveedores-apellido = 'Abril'.
wa_proveedores-dni = '1809657843'.
INSERT wa_proveedores INTO ti_proveedores INDEX 2.
Para eliminar el contenido de un registro en una tabla interna, se utiliza la instrucción DELETE.
Ejemplo:
*Borrar un registro de la tabla
DELETE ti_proveedores WHERE dni = '1809657843'.
Para borrar todo el contenido de una tabla interna se utiliza REFRESH.
Ejemplo.
*Inicializar la tabla interna.
REFRESH ti_proveedores.
Para saber cuántos registros tiene una tabla interna utilizamos DESCRIBE TABLA.
Ejemplo:
*Obtener la cantidad de entradas en una tabla interna.
DATA: v_lineas TYPE I.
DESCRIBE TABLE ti_proveedores LINES v_lineas.
 
 
 
Sobre el autor
Publicación académica de Miguel Angel Acosta Acosta, en su ámbito de estudios para la Carrera Consultor ABAP.
Miguel Angel Acosta Acosta
Profesión: Ingeniero de Sistemas - Ecuador - Legajo: TF64C
✒️Autor de: 238 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP SD Nivel Avanzado
- Carrera Consultor en SAP SD Nivel Inicial
- Máster ABAP for HANA
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Profesional de ingeniería de sistemas en computación e informática, con experiencia en la implantación y soporte de proyectos informáticos para empresas del sector industrial y financiero.
Certificación Académica de Miguel Acosta