✒️ABAP - Las tablas internas

ABAP Las tablas internas

Tablas internas:

¿Que son? Es un objeto de datos donde permite guardar en memoria grandes cantidades de registros de datos con la misma estructura.

La cantidad de registros máxima, se encuentra relacionada con los limites establecidos en la instalación del sistema.

El uso común dado es:

  • Almacenamiento temporal de los datos de la base de datos para procesarlos posteriormente.
  • Estructuración y formateo de datos de salida del programa (informes).
  • Formatear datos y disponibilizarlos en otros servicios.

¿Como se declara una Tabla interna?

La sintaxis es la siguiente:

DATA: BEGIN OF <tabla> OCCURS<n>,

<Def.Campo>,

...

END OF <tabla>.

Acá se declaro una interna con n líneas en memoria y una linea de cabecera o área de trabajo. lo indicado en OCCURS no necesariamente limita el tamaño de la tabla sino que indica la cantidad de registros que se guardarán en memoria simultáneamente. por lo general se indica la cantidad 0 lo que permite trabajar con tablas de gran cantidad de registros.

Para la tabla TI_PROVEEDORES seria de la siguiente manera:

DATA: BEGIN OF ti_proveedores OCCURS 0,

nombre(30) TYPE c,

apellido(30) TYPE c,

DNI(8) TYPE c,

END OF ti_proveedores.

Otra forma seria de la siguiente:

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

Se utiliza APPEND TO para añadir registros a las tablas internas, esto lo realiza en la ultima posición con los valores que tengamos en el área de trabajo. ejemplo

CLEAR wa_proveedores.

wa_proveedores-nombre='JUAN'.

wa_proveedores-apellido='Perez'.

wa_proveedores-dni='0303456'.

APEND wa_proveedores TO ti_proveedores.

ORDENAMIENTO DE UNA TABLA INTERNA

Para ordenar una tabla interna se utiliza SORT el cual seria el símil de ORDER BY, el ejemplo de uso es:

  • SORT ti_proveedores BY dni DESCENDING. * para que sea ascendente se usa ASCENDING

PROCESAMIENTO DE UNA TABLA INTERNA

Para recorrer una tabla interna y procesar los registros se utiliza la sentencia LOOP-ENDLOOP ejemplo de uso:

LOOP AT ti_proveedores INTO wa_proveedores

WHERE NOT nombre IS INITIAL.

ENDLOOP.

Si no se cumple el WHERE, el SY-SUBRC será distinto de 0.

LECTURA DE UNA TABLA INTERNA

Para leer un registro concreto se utiliza la sentencia READ TABLE (esto es para cuando no se necesite recorrer la tabla). ejemplo:

READ TABLE ti_proveedores INTO wa_proveedores

WITH KEY nombre ='ARIEL'.

Si se encuentra el registro buscado, el SY-SUBRC será 0, de lo contrario, será distinto de 0. Para leer los datos en una posición particular de la tabla se utiliza INDEX tal como el siguiente ejemplo:

READ TABLE ti_proveedores INTO wa_proveedores INDEX 1.

si se l agrega la Cláusula BINARY SEARCH en la sentencia READ TABLE hace que la búsqueda sea mucho mas eficiente.

MODIFICANDO UNA TABLA INTERNA

Se utiliza MODIFY, para el ejemplo se modifica el dni.

wa_proveedores-dni='123456'.

MODIFY ti_proveedores FROM wa_proveedores INDEX 1.

si se trata de modificar un registro de una tabla interna que no existe el SY-SUBRC será distinto de 0.

Para ingresar datos se utiliza INSERT de la siguiente manera

wa_proveedores-nombre ='Arturo'.

wa_proveedores-apellido ='Gonzalez'.

wa_proveedores-dni ='6453521'.

INSERT wa_proveedores INTO ti_proveedores INDEX 2.

Para borrar el contenido de un registro de una tabla se utiliza DELETE ejemplo:

DELETE ti_proveedores

WHERE dni ='54535251'.

para borrar todo el contenido de una tabla interna se utiliza la sentencia REFRESH. ejemplo:

REFRESH ti_proveedores.

Para saber la cantidad de registros que contiene una tabla interna se utiliza la sentencia DESCRIBE TABLE. para el ejemplo declaramos V_LINEAS la cual es una variable que va a contener la cantidad de filas de una tabla interna ti_proveedores.

DATA: v_lineas TYPE i.

DESCRIBE TABLE ti_proveedores_LINES v_lineas.


Sobre el autor

Publicación académica de Enrique Javier Machuca Silva, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP SemiSenior

Enrique Javier Machuca Silva

Profesión: Ingeniero en Informatica - Chile - Legajo: JL57O

✒️Autor de: 28 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Certificación Académica de Enrique Machuca

 

:: Al igual que Enrique ¿Usted está dispuesto a aprender ABAP?

El lunes 27 Septiembre 2021 comenzamos la 🎓Carrera Consultor ABAP.
Juntos para realizar sus más grandes desafíos!

 Cargando presentación, aguarde unos instantes...

 

 

+Recursos Gratuitos en CVOSOFT:

¡Lo importante es aprender!, por eso en CVOSOFT la comunidad SAP más grande de habla hispana, ponemos a su alcance los siguientes recursos abiertos libres y gratuitos:

Buscador de Publicaciones:

 

 

Consultas y Soporte

👋Hola! Estamos listos para ayudarle con el soporte que su carrera merece.

Acceda sección contacto y seleccione canal de comunicación más cómodo para usted.

🤝Aguardamos su mensaje, ¡Éxitos!

 


 

👉Que las empresas tomen en serio sus estudios es muy importante para que su inversión educativa tenga sentido.
Las empresas líderes de United States y del Mundo confían a CVOSOFT su recurso más valioso, la formación de su gente.

¿Quieres conocerlas?