ABAP 7.4 – Inline Declarations Quick Start

ABAP 7.4

En esta serie de publicaciones busco recopilar las principales funcionalidades que se han incorporado al lenguaje de programación ABAP 7.4 . No obstante, hay muchas mejoras al lenguaje que veremos poco a poco en diversas entradas. Además, como muchos ya sabrán, ya estamos en la versión 7.5 de ABAP, pero es a partir de esta versión que se incorpora un nuevo tipo de sentencias. Es decir, hay nuevas prácticas para programar en ABAP que cada vez se alejan más de la programación estructural y se enfocan a la orientación a objetos.

ABAP inline declaration

Traducidas al español como declaraciones en línea, estas nos permiten sintetizar la forma en que declaramos la variables en ABAP. Anteriormente, necesitábamos de la sentencia «DATA» acompañada del tipo de dato para definir una variable para posteriormente hacer la asignación de un valor. Ahora, podemos sintetizar estos pasos y declarar la variable junto con la asignación, obteniendo de forma automática el tipo de dato en nuestra variable. A continuación, un ejemplo de una «inline declaration abap».

ABAP < 7.4

DATA gv_number TYPE i.

gv_number = 10.

ABAP 7.4

DATA(gv_number) = 10.

Cómo puedes ver, esta nueva forma de trabajar con variables es muy útil al momento de sintetizar el código fuente. Además, podemos hacer las declaraciones en otro tipo de eventos o instrucciones. Por ejemplo:

ABAP 7.4 Loop declaración en línea

Podemos declarar una variable al momento de empezar a iterar una tabla interna con la sentencia LOOP. Ciertamente, sólo es necesario colocar la palabra reservada «DATA» antes de la estructura que estará almacenando la fila y en automático se creará la misma con los campos que contenga la tabla. Ejemplo:

New ABAP Syntax

LOOP AT lt_table INTO DATA(ls_structure).
 Sentencias ABAP 
ENDLOOP.

De igual forma podemos crear una declaración en línea con un Field Symbol, únicamente respetando la forma en que este tipo de variables se declara. Ejemplo:

LOOP AT lt_table ASSIGNING FIELD-SYMBOL(<fs>).
 Código ABAP 
ENDLOOP.

ABAP Read Table

De la misma manera podemos utilizar la declaración en línea para la sentencia READ TABLE. A continuación, haré la ABAP inline declaration con un Field Symbol.

READ TABLE lt_table ASSIGNING FIELD-SYMBOL(<fs>) INDEX 1. 

ABAP 7.4 SELECT

El último ejemplo que vamos a ver en este post, es cómo hacer este tipo de declaraciones al momento de seleccionar información directamente de la base de datos. Ciertamente, lo que es diferente en este escenario es el símbolo de arroba, este debe preceder a la palabra reservada DATA. Ejemplo:

SELECT * 
  FROM table
   INTO TABLE @DATA(itab) 
        WHERE field = @lv_field.

Como mencioné al principio de este post, esto es sólo un comienzo rápido en las nuevas versiones de ABAP. Sin embargo, en futuras publicaciones continuaremos ahondando en la nueva sintaxis de este lenguaje de programación de SAP.

Documentación Oficial SAP

ABAP Keyword Documentation