🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP Las tablas internas

ABAP Las tablas internas

ABAP Las tablas internas

TABLAS INTERNAS

Si deseamos guardar una colección de registros de datos de la misma estructura en memoria sin necesidad de acceder a la base de datos y poder realizar operaciones diversas con este conjunto de información, utilizaremos las tablas internas.

Es un objeto de datos donde podemos guardar en memoria grandes cantidades de registros de datos con la misma estructura. El límite depende de la configuración en la instalación del sistema.

Como declarar tablas internas.

DATA: BEGIN OF <tabla> OCCURS <n>,
<Def.Campo>,
...
END OF <tabla>.

Definiremos una tabla interna con n líneas en memoria, más una línea de cabecera o área de trabajo.
La cantidad de líneas que especifiquemos en el OCCURS no limita el tamaño de la tabla, sino la cantidad de registros que se guardan en memoria simultáneamente. Esto hace necesario un especial cuidado al proponer el número de líneas ya que un OCCURS muy grande supone un gran gasto de recursos del sistema y un OCCURS pequeño un acceso muy lento, ya que necesita de un proceso de paginación. Por lo general se especifica un valor igual a 0 que permite trabajar con grandes cantidades de registros.

Uso típico de una tabla interna:
-Almacenar temporalmente datos de la base de datos para un procesamiento futuro.
-Estructurar y formatear datos que se mostrarán como salida del programa.
-Formaear datos para ser utilizados por otros servicios.

ej.
DATA: BEGIN OF ti_proveedores occurs 0,
nombre(30) type c,
apellido(30) type c,
dni(8) type c,
END OF ti_proveedores.

Otra manera:
DATA: BEGIN OF wa_proveedores,
nombre(30) type c,
apellido(30) type c,
dni(8) type c,
END OF wa_proveedores.
DATA: ti_proveeores LIKE STANDARD TABLE OF wa_proveedores.

Con la sentencia WITH HEADER LINE declaramos una tabla interna sin especificar aparte un área de trabajo o cabecera. ej.

DATA: ti_vuelos LIKE STANDARD sflight WITH HEADER LINE.-> la cabecera o área de trabajo es la misma tabla interna.

Llenado de una tabla interna.

APPEND TO: añade en la última posición de la tabla los valores que tengamos en el área de trabajo. ej.

CLEAR wa_proveedores.
wa_proveedores-nombre='Katerine'.
wa_proveedores-apellido='Espinosa'.
wa_proveedores-dni='13069108'.
APPEND wa_proveedores TO ti_proveedores.

Podemos llenar una tabla interna con el contenido de una tabla de base de datos. Siempre que la tabla interna tenga la misma estructura que la tabla de
base de datos. ej.

SELECT * FROM <tab> INTO TABLE <tabint>.

Ordenar una tabla interna.

Para clasificar una tabla interna utilizamos SORT. ej.

SORT <intab>.

Esta instrucción realiza una ordenación por la estructura de la tabla sin tener en cuenta los campos.Para ordenar por el campo(s) que necesitemos (sea del tipo que sea ):

SORT <intab> BY <campo1> ....<campo n>.

Si no se indica lo contrario la ordenación por defecto es ascendente.

SORT ... ASCENDING. o DESCENDING.

Ej: SORT ti_proveedores BY dni ASCENDING.

Procesamiento de una tabla interna.

Podemos recorrer una tabla interna con la instrucción LOOP ... ENDLOOP. ej.

LOOP AT <intab> ( WHERE <cond> ).
...
ENDLOOP.

En cada iteración coloca la línea de la tabla que se está procesando en la línea de cabecera. Podemos restringir el proceso de una tabla con una condición WHERE.
Si no existe ningún registro de la tabla que cumpla la condición especificada en la cláusula WHERE, la variable del sistema SY-SUBRC será distinta que 0. Dentro del LOOP la variable SY-TABIX contiene el índice de la entrada que está procesando en ese momento.

También es posible hacer un :

LOOP AT <intab> FROM <inicio> TO <fin>.
...
ENDLOOP.

Donde <inicio> y <fin> son índices de la tabla interna.

La sentencia loop...endloop en tablas internas con cabecera

No necesitan de ninguna variable adicional. Simplemente llamamos a nuestra interna mediante la sentencia loop...endloop. En ese mismo momento, todos los registros de cada línea se cargan sobre la cabecera de la propia tabla interna.

LOOP AT <tabla_interna>.
* Acción sobre <tabla_interna>
ENDLOOP.

La sentencia loop...endloop en tablas internas sin cabecera

Necesitan de una variable estructructura adicional donde se contenga el valor de cada registro de la tabla interna. Al hacer una llamada loop...endloop, el valor del registro por el que pasa se ha de traspasar a esta variable adicional.

LOOP AT <tabla_interna> into <estructura>.
* Acción sobre <estructura>
ENDLOOP.

Lectura de una tabla interna

READ TABLE: Podemos buscar un registro concreto en una tabla sin necesidad de recorrerla. ej.

READ TABLE ti_proveedores INTO wa_proveedores WITH KEY nombre='Katerine'.

El resultado de la búsqueda lo tendremos en SY-SUBRC.
Si SY-SUBRC = 0 la búsqueda ha sido positiva.
Si SY-SUBRC <> 0 no ha encontrado el registro solicitado.

Es posible una búsqueda aún más rápida con una búsqueda binaria. ej.
READ TABLE ti_proveedores INTO wa_proveedores WITH KEY nombre='Katerine' BINARY SEARCH.

Una lectura directa de un registro de la tabla la podemos realizar con: READ TABLE <intab> INDEX <num>. ej.

READ TABLE ti_proveedores INTO wa_proveedores INDEX 1.

Modificando una tabla interna

MODIFY: sentencia utilizada para modificar un registro de una tabla interna. Podemos sobreescribir el contenido de la entrada <i> con el contenido de la línea de cabecera. ej.

wa_proveedores-dni='457896'.
MODIFY ti_proveedores from wa_proveedores INDEX 1.

Dentro de un LOOP, la cláusula INDEX es opcional. Por defecto será el contenido de la variable SY-TABIX.

INSERT: inserta un registro en una posición determinada de una tabla interna con el contenido de la línea de cabecera. ej.

wa_proveedores-nombre='JULIAN'.
wa_proveedores-apellido='BOLAÑOS'.
wa_proveedores-dni='123456'.
INSERT wa_proveedores INTO ti_proveedores INDEX 2.

DELETE: sirve para borrar un registro de una tabla interna.ej.

DELETE ti_proveedores WHERE dni='123456'.

Para borrar todo el contenido de una tabla se utiliza la sentencia REFRESH. ej.

REFRESH ti_proveedores.

DESCRIBE TABLE: se utiliza para conocer cuantos registros posee una tabla interna. Se declara una variable tipo i donde se almacena el número de filas devuelto por la sentencia. ej.

DATA v_filas type i.
DESCRIBE TABLE ti_proveedores LINES v_filas.

Con la sentencia FREE liberamos el espacio en memoria que ocupa una tabla interna.


 

 

 


Sobre el autor

Publicación académica de Alberth Julian Bolanos Bravo, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP Senior

Alberth Julian Bolanos Bravo

Profesión: Analista de Sistemas Web - Colombia - Legajo: FC65L

✒️Autor de: 46 Publicaciones Académicas

🎓Egresado del módulo:

Certificación Académica de Alberth Bolanos

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "Las tablas internas" de la mano de nuestros alumnos.

SAP SemiSenior

TABLAS INTERNAS: En ABAP las tablas internas hacen la función de los ARRAYS bidimensionales de otros lenguajes de programación. El uso más frecuente de una tabla interna es almacenar en memoria los datos de una tabla de una base de datos durante la ejecución de un programa ABAP. Por lo tanto, las tablas internas son memoria dinámica, es decir, se crean en tiempo de ejecución del programa en la parte de memoria RAM asignada para este propósito, y desaparecen una vez que se ha ejecutado el bloque o programa para el que se habían creado.

Acceder a esta publicación

Creado y Compartido por: Marvin Ernesto Gómez Ayala

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


En ABAP (Advanced Business Application Programming), las tablas internas son estructuras de datos que permiten almacenar conjuntos de información de manera temporal durante la ejecución de un programa. Estas tablas internas son muy útiles para procesar y manipular datos en la memoria del programa, sin necesidad de acceder a la base de datos de manera directa. Las tablas internas son similares a los arrays o listas en otros lenguajes de programación. Permiten almacenar datos de diferentes tipos, como números, caracteres, fechas, entre otros, y pueden contener múltiples filas de datos. A diferencia de las tablas de la base de datos, las tablas internas solo existen en tiempo de ejecución y no se...

Acceder a esta publicación

Creado y Compartido por: Darling Geraldino

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Tablas internas si queremos guardar datos en la misma estructura de meoria sin necesidad de acceder continuamente a las bases de datos y poder realizar diversas operaciones con este conjunto, entonces se utilizan las tablas internas. uso tipico tablas internas: 1. para almacenar temporalmente los datos de las bases de datos para un procesamiento futuro. 2. para estructurar y formatear datos que se mostraran como salida de programas 3.para formatear datos para ser utilizados por otros servicios. como se crea una tabla interna se crea con la senticia data:begin of (nombre de la tabla) occurs (nunmero de datos a almacenar) (estructura de campos) end of (nombre de la tabla) llenado de una tabla interna: se utiliza al final la senticia append to...

Acceder a esta publicación

Creado y Compartido por: Oscar Sebastian Caicedo Carlier / Disponibilidad Laboral: PartTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

LAS TABLA INTERNAS. Si se quiere guardar una colección de registros de datos de la misma estructura en memoria, sin necesidad de acceder continuamente a la tablas bases de datos y poder realizar diversas operaciones con este conjunto de información, entonces utilizaremos tablas internas. Las TABLAS INTERNAS son un objeto de datos que permite guardar en memoria grandes cantidades de registros de datos con la misma estructura. Una tabla interna puede almacenar entre 0 a n registros de datos. Si bien al momento de declarar una tabla interna es posible especificar la cantidad de registros que puede almacenar, la verdad es que la cantidad de registros máxima está íntimamente relacionada con los límites especificados...

Acceder a esta publicación

Creado y Compartido por: Juan Alberto Peñalver Alvarez / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Tablas internas: Es un objeto de datos que permite guardar en memoria grandes cantidades de registros de datos con la misma estructura. Uso de las tablas internas: Para almacenar temporalmente los datos de las BD para procesamiento futuro. Para estructurar y formatear datos que se mostraran como salida del programa. Para formatear datos para ser utilizados por otros servicios. La cantidad de lineas definidas en las tablas internas con la palabra OCCURS no limitan el tamaño de la tabla sino la cantidad de registros que se guardaran en memoria simultaneamente, por lo general se define con 0 para trabajar con tablas con grandes registros. APPEND TO: Añade un registro a la tabla interna en la ultima posición...

Acceder a esta publicación

Creado y Compartido por: Dairy Alejandra Torrenegra Cera

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Tablas internas Es un objeto de datos que permite guardar en memoria grandes cantidades de registros de datos con la misma estructura. Usos de la tabla interna Almacenar temporalmente los datos de las bases de datos para un procesamiento futuro. Para estructurar y formatear datos que se mostrarán como salida del programa Para formatear datos para ser utilizados por otros servicios. Declaración de tablas internas: Usando la sintaxis: DATA: BEGIN OF TABLA (Definiendo el tamaño OCCURS)....Campos END OF TABLA Usando la sintaxis: DATA: TABLA TYPE TABLE OF Estructura Usando la sintaxis: DATA: TABLA LIKE STANDARD TABLE OF Estructura WITH HEADER LINE. Operaciones de tablas internas APPEND TO: Añade...

Acceder a esta publicación

Creado y Compartido por: Marvin Raul Lopez Morales / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master


Tablas Internas (arrays, vectores, listas o colecciones en otros lenguajes de programación) Son objetos de datos que permiten guardar en memoria grandes cantidades de registros de datos con la misma estructura. Pueden tener entre 0-N registros. Existe en memoria solo mientras se ejecuta el programa. Tipos de Tablas Internas ANNY TABLE INDEX TABLE STANDARD TABLE SORTER TABLE HASED TABLE En una Tabla Interna podemos Ordenar SORT Recorrer la table LOOP AT Hacer búsquedas secuenciales READ TABLE Hacer búsquedas binarias BINARY SEARCH Modificar MODIFY Insertar INSERT Borrar DELETE Borrar todo el contenido de la tabla, sin eliminarla REFRESH Inicializar cabecera CLEAR...

Acceder a esta publicación

Creado y Compartido por: Lizeth Lorena Castro Ruiz / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Junior

Tablas Internas las tablas internas se utilizaran cuando se quiere guardar una coleccion estructurada de registros sin necesidad de recurrir continuamente a la base de datos. Asi, se podra realizar operaciones con esta informacion. Las tablas internas se utilizan normalmente para almacenar temporalmente datos de la base de datos. Tambien para estructurar datos, los cuales se mostraran en pantalla. Otro uso, es el formatear datos para que otros servicios lo utilicen. Declaracion de tablas internas La sintaxis para declarar una tabla interna es: DATA: BEGIN OF tabla OCCURS n, DefinicionCampo, ...

Acceder a esta publicación

Creado y Compartido por: Jhonatan Parra

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

UNIDAD 3: DICCIONARIO DE DATOS LECCION 1: TABLAS INTERNAS 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 estructura, sin necesidad de acceder continuamente a la base de datos. USOS DE LA TABLAS INTERNAS - Almacenar temporalmente los datos de las bases de datos - Estructurar y formatear datos de salida - Formatear datos para ser utilizados por otros servicios 2| Como se declara una TI la sintaxis es: DATA: BEGIN OF <tabla> OCCURS <n>, <def.campos>, END OF <tabla>. 3| Llenado de una TI Usamos APPEND TO, para añadir un registro en la ultima posición con los valores de la work área que tengamos ...

Acceder a esta publicación

Creado y Compartido por: Hernan Cabezas

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

1. Tablas Internas: es un objeto que permite guardar en memoria una gran cantidad de datos con la mis estructura. - Para almacenar temporalmente los datos para un uso futuro. - Para estructurar y formatear datos que se muestran como salida del programa. - Formatear datos de otros servicios. 2. Declaración de tablas internas: DATA: BEGIN OF <tabla>OCCURS<n>, <Def.Campo>, ... END OF <tabla>. n: lineas en memoria mas la linea de cabecera OCCURS: cantidad de registros que se guardaran en memoria. por lo general se coloca "0" porque permite trabajar con...

Acceder a esta publicación

Creado y Compartido por: Daniel Arias Sarmiento

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!