✒️ABAP Las tablas internas
ABAP Las tablas internas
TABLAS INTERNAS LECCION 3-1
¿Que son las tablas internas?
Es un objeto de datos que permite guardar en memoria, grandes cantidades de registros de datos con la misma estrutura. "La cantidad de registros maxima esta relacionada con los limites especificados en la instalacion del sistema".
- Para almacenar temporalmente los datos de la base de dato
- Para estructuras y formatear datos que se mostraran como salida del programa
- Para formatear daos para ser utilizados por otros servicios.
¿Como se declara un tabla interna?
DATA: BEGIN OF <nombre de la tabbla> OCCURS <numero de cabezera>,
<definir campos>,
END OF <nombre de la tabla interna>.
NOTA: por lo general en el parametro OCCURS se especifica la cantidad 0 lo que permite trabajar con trablas de gran cantidad de registros
Ejemplo 1
DATA: BEGIN OF ti_proveedores OCCURS 0,
nombre(30) TYPE c,
apellido(30) TYPE c,
dni(8) TYPE c,
END OF ti_proveedores.
Ejemplo 2
DATA: BEGIN OF wa_proveedores,
nombre(30) TYPE c,
apellido(30) TYPE c,
dni(8) TYPE c,
END OF wa_proveedores.
DATA: ti_proveedores LIKE STANDARD TABLE OF wa_proveedores.
Llenado de una tabla interna
APPEND TO se añade un registro a la tabla interna en la ultima posicion con los valores que tengamos en el area de trabajo
Ejemplo
CLEAR wa_proveedores.
wa_proveedores-nombre = 'Cristian'.
wa_proveedores-apellido = 'Arteaga'.
wa_proveedores-dni = '12345678'.
APPEND wa_proveedores TO ti_proveedores.
CLEAR wa_proveedores.
wa_proveedores-nombre = 'Antonio'.
wa_proveedores-apellido = 'Garcia'.
wa_proveedores-dni = '12345671'.
APPEND wa_proveedores TO ti_proveedores.
Ordenamiento de una tabla interna
SORT ti_proveedores BY dni DESCENDING. ordena la tabla DNI en forma descendente
SORT ti_proveedores BY dni ASCENDING. ordena la tabla DNI en forma ascendente
Para correr una tabla interna y procesar registro a registro se una LOOP - ENDLOOP.
LOOP AT ti_proveedores INTO wa_proveedores
WHERE NOT nombre IS INITIAL.
ENDLOOP.
Para leer un registro concreto de una tabla interna sin necesidad de correrla se usa READ TABLE.
READ TABLE ti_proveedores INTO wa_proveedores
WITH KEY nombre = 'Anotinio'.
Si se desea leer los datos que se encuentran en una posicion particular de la tabla se usa INDEX
READ TABLE ti_proveedores INTO wa_proveedores INDEX 1.
NOTA: el agragado de la clausula BINARY SEARCH en la sentencia READ TABLE hace que la busqued sea ampliamente mas eficiente.
Para modificar el contenido de un registro se utiliza MODIFI
wa_proveedores-dni = '12345678'
MODIFY ti_proveedores FROM wa_proveedores INDEX 1.
Para insertar un registro en una posicion determinada de una tabla se usa INSERT.
wa_proveedores-nombre = 'Antonio'.
wa_proveedores-apeliido = 'Garcia'.
wa_proveedores-dni = '12345679'.
INSERT wa_proveedores INTO ti_proveedores INDEX 2.
Para borrar el contenido de un registro de una tabla interna se usa DELETE
DELETE ti_proveedores
WHERE dni = '12345679'.
Para borrar todo el contenido de una tabla interna se usa REFRESH
REFRESH ti_proveedores
Para saber cuantos registros tiene una tabla se una DESCRIBE TABLE
DATA: v_lineas TYPE i.
DESCRIBE TABLE ti_proveedores LINES v_lineas.
 
 
 
Sobre el autor
Publicación académica de Cristian Darwin Arteaga Diaz, en su ámbito de estudios para la Carrera Consultor ABAP.
Cristian Darwin Arteaga Diaz
Profesión: Abap Developer - Argentina - Legajo: GP81Q
✒️Autor de: 165 Publicaciones Académicas
🎓Cursando Actualmente: Master Funcional para Consultores ABAP
🎓Egresado de los módulos:
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Me considero una persona responsable, siempre estoy investigando y capacitandome para adquirir nuevos conocimientos, tengo el gusto de iniciarme en el mundo de abap como desarrollador, es genial.
Certificación Académica de Cristian Arteaga