Una Tabla Internaes una tabla que se crea de forma temporal dentro de la memoria RAM de SAP.
Por una parte, tenemos las Bases de Datos Principales de SAP, donde se guardan los datos de transacciones, y en una tabla interna es donde se recogen los datos de esta BBDD Principal y se guarda para su uso en esta tabla interna.
También se puede rellenar de datos proporcionados por nosotros, no tiene por qué ser necesariamente de datos de la BBDD, pero esta solo dura mientras se ejecuta el programa, eliminándose al finalizar.
Al igual que una tabla de un Excel, la tabla debe tener una cabecera para poder acceder a los datos dentro de esta.
Ejemplo con DATA:
Volvemos a acceder en la transacción se38.
Si no te acuerdas como se accede, visita el 1er post, donde se explican los pasos:
http://abapprogramacion.blogspot.com.es/2017/08/declarar-variables-en-abap4.html
http://abapprogramacion.blogspot.com.es/2017/08/declarar-variables-en-abap4.html
REPORT ZCLASE_002.
DATA: BEGIN OF ti_persona OCCURS 0, “Inicias una Tabla Interna (TI)
“con CABECERA
Nombre(20) TYPE c, “Declaras los Campos de la TI
Apellido(20) TYPE c,
Edad(4) TYPE I,
Fecha TYPE D,
END OF ti_persona. “Finalizas la TI
ti_persona-Nombre = ‘MJesus’. “Rellenas con datos los campos de la TI
ti_persona-Apellido = ‘Suarez’.
ti_persona-Edad = 38.
ti_persona-Fecha = sy-datum.
APPEND ti_persona. “Grabas los datos introducidos en la TI
ti_persona-Nombre = ‘Pepe. “Rellenas con datos los campos de la TI
ti_persona-Apellido = ‘Lopez.
ti_persona-Edad = 25.
ti_persona-Fecha = sy-datum.
APPEND ti_persona. “Grabas los datos introducidos en la TI
LOOP AT ti_persona. “Recorres la TI y ves los datos de los campos
WRITE: / ti_persona-Nombre, ti_persona-Apellido,
ti_persona-Edad, ti_persona-Fecha.
ENDLOOP.
OCCURS 0 significa que la tabla va a ocupar ilimitados registros, con línea de cabecera. Debajo declaramos las cabeceras.
Tras declarar la tabla, introducimos datos en los campos.
Al final recorremos la tabla y presentamos por pantalla los datos.
Otra forma de hacerlo:
REPORT ZCLASE_002.
DATA: BEGIN OF ti_persona, “Inicias una Tabla Interna (TI)
“sin CABECERA
“sin CABECERA
Nombre(20) TYPE c, “Declaras los Campos de la TI
Apellido(20) TYPE c,
Edad(4) TYPE I,
Fecha TYPE D,
END OF ti_persona. “Finalizas la TI
DATA: ti_persona LIKE TABLE OF ti_persona WITH HEADER LINE.
“Le declaras la cabecera
“Le declaras la cabecera
ti_persona-Nombre = ‘MJesus’. “Rellenas con datos los campos de la TI
ti_persona-Apellido = ‘Suarez’.
ti_persona-Edad = 38.
ti_persona-Fecha = sy-datum.
APPEND ti_persona. “Grabas los datos introducidos en la TI
ti_persona-Nombre = ‘Pepe. “Rellenas con datos los campos de la TI
ti_persona-Apellido = ‘Lopez.
ti_persona-Edad = 25.
ti_persona-Fecha = sy-datum.
APPEND ti_persona. “Grabas los datos introducidos en la TI
LOOP AT ti_persona. “Recorres la TI y ves los datos de los campos
WRITE: / ti_persona-Nombre, ti_persona-Apellido,
ti_persona-Edad, ti_persona-Fecha.
ENDLOOP.
Comentarios
Publicar un comentario
Si te ha gustado, haz un comentario, ..., GRACIAS