• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
SAP ABAP

Crear, Leer, Poblar, Copiar y Borrar.

By s4pcademy 


¿Qué es una tabla interna?

Las TABLAS INTERNAS se utilizan para obtener datos de una estructura fija para su uso dinámico en ABAP. Cada línea en la tabla interna tiene la misma estructura de campo. El uso principal de las tablas internas es para almacenar y formatear datos de una tabla de base de datos dentro de un programa.

¿Qué es un área de trabajo?

Las áreas de trabajo son filas de datos individuales. Deben tener el mismo formato que cualquiera de las tablas internas. Se utiliza para procesar los datos en una tabla interna línea por línea.

Diferencia entre tabla interna y área de trabajo

Una imagen dice más que mil palabras

Tipos de tablas internas

Hay dos tipos de tablas internas. Tablas internas con línea de encabezado y tablas internas sin línea de encabezado.

Tablas internas con línea de encabezado

Aquí, el sistema crea automáticamente el área de trabajo. El área de trabajo tiene el mismo tipo de datos que la tabla interna. Esta área de trabajo se llama línea de encabezado. Es aquí donde se realizan todos los cambios o cualquier acción en el contenido de la tabla. Como resultado de esto, los registros se pueden insertar directamente en la tabla o acceder directamente desde la tabla interna.

Tablas internas sin línea de encabezado

Aquí no hay un área de trabajo asociada con la tabla. El área de trabajo debe especificarse explícitamente cuando necesitamos acceder a tales tablas. Por lo tanto, estas tablas no se pueden acceder directamente.

Creación de tablas internas

Hay muchas formas de crear una tabla interna. Vamos a verlas una por una.

1.Usando la declaración TYPE

Creemos ahora una tabla interna itab utilizando la declaración TYPE. La sintaxis es Types: begin of line, columna1 type I, columna2 type I, end of line.

Ejemplo: TYPES: begin of line, empno type I, empname(20) type c, end of line.

La declaración TYPES crea una estructura line según lo definido. Para crear realmente una tabla interna itab, use el siguiente comando.
Datos itab tipo línea ocurre 10.

2. Refiriéndose a otra tabla

Puedes crear una tabla interna haciendo referencia a una tabla existente. La tabla existente podría ser una tabla SAP estándar, una tabla Z o otra tabla interna.

Sintaxis- Datos <f> <tipo> [con línea de encabezado].

Ejemplo- DATA itab TYPE line OCCURS 10 WITH HEADER LINE.

3.Refiriéndose a una estructura existente

Sintaxis- Datos <f> LIKE <struct> ocurre n [with header line].

Ejemplo- DATA itab LIKE sline OCCURS 10.

4.Creando una nueva estructura

Creemos ahora una tabla interna con una estructura propia. Aquí la tabla se crea con una línea de encabezado, por defecto.

Sintaxis – Datos: begin of <f> occurs <n>, <component declaration>, ……………………………, end of <f>.

Ejemplo – Datos: begin of itab occurs 10, columna1 tipo I, columna2(4) tipo C, columna3 como mara-ernam, Fin de itab.

Población de tablas internas

Ahora que hemos creado con éxito algunas tablas internas, veamos cómo las poblamos con algunos registros. Hay varios métodos disponibles para poblar las tablas.

1. Añadir datos línea por línea

El primer método disponible es el uso de la declaración APPEND. Usando la declaración APPEND, podemos añadir una línea de otro área de trabajo a la tabla interna o podemos añadir una línea inicial a la tabla interna.

Sintaxis – APPEND [<wa> TO / INITIAL LINE TO] <itable>.

Aquí, el área de trabajo <wa> o la línea inicial se agregan a la tabla interna <itable>.

Ejemplo: Datos: begin of itab ocurre 10, col1 tipo C, col2 tipo I, fin de itab. Anexar línea inicial a itab.

2. Usar la declaración COLLECT

COLLECT es otra forma de declaración utilizada para poblar las tablas internas.

Sintaxis- COLLECT [<wa> INTO] <itable>.

3. Usando la declaración INSERT

La declaración INSERT añade una línea/área de trabajo a la tabla interna. Puedes especificar la posición en la que se añadirá la nueva línea mediante el uso de la cláusula INDEX con la declaración INSERT.

Sintaxis INSERT [<wa> INTO / INITIAL LINE INTO] <itable> [index <idx>].

Copiar tablas internas

El contenido de una tabla interna se puede copiar a otra utilizando la declaración APPEND LINES o INSERT LINES.

Un modo más simple es usar cualquiera de las siguientes sintaxis:

MOVIMIENTO <itab1> A <itab2>.
O <itab1> = <itab2>.

Leer tablas internas

Ahora que estamos familiarizados con la creación de tablas internas y cómo poblarlas con datos, veamos cómo utilizamos o recuperamos los datos de las tablas internas.

1. Usando el bucle – Endloop

Una de las formas de acceder o leer la tabla interna es mediante el bucle LOOP-ENDLOOP.

Sintaxis LOOP AT <itable> [INTO <wa>] …………………………….. ENDLOOP.

2. Usando READ

El otro método de lectura de la tabla interna es mediante el uso de la declaración READ.

Sintaxis- LEER TABLA <itable> [INTO <wa>] ÍNDICE <idx>.

Borrado de tablas internas

Hay muchas formas de eliminar líneas de una tabla interna.

1. Eliminar líneas en un bucle

Esta es la forma más sencilla de eliminar líneas.

Sintaxis ELIMINAR <ITABLE>.

2. Eliminar líneas usando el índice

Esto se utiliza para eliminar una línea de la tabla interna en cualquier índice conocido.

Sintaxis ELIMINAR <ITABLE> INDICE <IDX>.


Diccionario de datos SAP ABAP (SE11)
Previo
Módulo de Pool en SAP ABAP
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.