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

 X 

✒️ABAP HANA Las mejoras a partir de ABAP 7.40

ABAP HANA Las mejoras a partir de ABAP 7.40

ABAP HANA Las mejoras a partir de ABAP 7.40

1. Las mejoras a ABAP

Junto con SAP NetWeaver 7.4 llegó el servidor de aplicaciones AS ABAP 7.4.

A partir del lanzamiento de SAP NetWeaver 7.4 se han implementado una serie de mejoras en el lenguaje de programación ABAP.

La orientación hacia las expresiones permite escribir un código más corto y legible.

El paradigma code pushdown puede utilizarse para realizar cálculos dentro de la base de datos y la aplicación puede orquestarse utilizando considerablemente menos código de aplicación.

1.1. ¿Como determinamos con cuál versión de ABAP estamos trabajando?

Vamos a menú Sistema / Status / botón Componentes (Product Version).

Buscamos la versión de los componentes SAP_BASIS y SAP_ABA para verificar la versión de ABAP con la que trabajamos.

1.2. ¿Qué es ABAP 7.50 y cuáles son sus fundamentos?

SAP lanza el servidor de aplicaciones SAP NetWeaver AS ABAP 7.5 y con él la nueva la versión del lenguaje ABAP 7.5.

Podemos mencionar las siguientes generalidades que presenta ABAP 7.5:

  • Es compatible con el servidor de aplicaciones ABAP 7.4.
  • Corre con el kernel 7.45.
  • Solo funciona con sistemas Unicode.
  • Soporta la base de datos SAP HANA y otras bases de datos.
  • Facilita la explotación de HANA con nuevas optimizaciones sofisticadas centradas en la base de datos.
  • Ofrece un modelo de programación ABAP común para aplicaciones transaccionales y analíticas.
  • Establece a SAP Fiori como experiencia de usuario.
  • Es compatible con la industria 4.0 y los escenarios de big data.
  • Moderniza y simplifica aún más el lenguaje ABAP.
  • Ofrece una experiencia de desarrollo de primera clase en Eclipse.
  • Proporciona herramientas de administración de código personalizadas para una actualización y migración simples a SAP S/4HANA.

2. Las declaraciones en línea

A partir de ABAP 7.4 llegan las declaraciones en línea.

2.1. Las declaraciones con DATA

Antes de ABAP 7.4 declarábamos y asignábamos una variable en dos líneas de la siguientes forma:

DATA: vtexto TYPE string.

v_texto = ''Hola Mundo.

A partir de ABAP 7.4 podemos hacerlo así:

DATA(v_texto) = 'Hola Mundo'.

2.2. Loop AT INTO work area

Antes de ABAP 7.4 declarábamos una work área para recorrer una tabla en un LOOP de la siguiente forma:

DATA: ti_carrier TYPE TABLE OF scarr WITH KEY carrid,

wa_carrier LIKE LINE OF ti_carrier.

LOOP AT ti_carrier INTO wa_carrier.

ENDLOOP.

A partir de ABAP 7.4 lo hacemos así:

LOOP AT ti_carrier INTO DATA(wa_carrier)

ENDLOOP.

Para hacer lo mismo con un FIELD SYMBOL es:

LOOP AT ti_bukrs ASSIGNING FIELD-SYMBOL(<wa_bukrs>).

ENDLOOP.

2.3. SELECT INTO TABLE

Antes de ABAP 7.4 primero declarábamos una tabla interna y luego utilizábamos dicha tabla para almacenar el resultado de un SELECT en dos líneas de la siguiente forma:

DATA: ti_scarr TYPE TABLE OF scarr.

SELECT * FROM scarr INTO TABLE ti_scarr.

A partir de ABAP 7.4 podemos hacer ambos pasos en una sola línea:

SELECT * FROM scarr INTO TABLE @DATA(ti_scarr).

3. Las expresiones con tablas

Uno de los cambios más significativos en tablas internas, hace referencia a que cuando una línea de la tabla no es encontrada al momento de realizar por ejemplo un READ, entonces se dispara la excepción CX_SY_ITAB_LINE_NOT_FOUND en lugar de cambiar de valor la variable SY-SUBRC.

3.1. READ TABLE INDEX

Antes de ABAP 7.4 para leer un registro puntual de una tabla interna escribíamos el siguiente código:

READ TABLE ti_carrier INTO wa_carrier INDEX 1.

A partir de ABAP 7.4 lo podemos hacer asi:

DATA(wa_carrier) = ti_carrier[ 1 ].

3.2. READ TABLE WITH KEY

Antes de ABAP 7.4 para leer un registro de una tabla interna utilizando campos claves lo hacíamos así:

READ TABLE ti_carrier WITH KEY carrid = 'LH' INTO wa_carrier.

A partir de ABAP 7.4 podemos ejecutar la siguiente línea para realizar lo mismo:

DATA(vl_nombre) = ti_carrier[ carrid = 'LH' ]-carrname.

Se producirá un dump si utilizamos una expresión en línea que haga referencia a un registro que no existe en una tabla interna. Es por ello que SAP recomienda asignar un field symbol y verificar el SY-SUBRC de la siguiente forma:

ASSIGN it_itab[ 1 ] to FIELD-SYMBOL().

if sy-subrc EQ 0.

endif.

4. Las expresiones de constructor

Las expresiones de constructor nos permiten crear e inicializar objetos ABAP, estructuras de datos y referencias de datos por medio de una expresión.

El beneficio de estas expresiones radica en la reducción de las declaraciones necesarias, así como en la compatibilidad con las declaraciones en línea.

Tradicionalmente, los objetos ABAP se pueden crear utilizando la siguiente declaración:

CREATE OBJECT lo_reporte EXPORTING iv_rec = 5.

Con ABAP 7.4 lo podemos realizar con NEW. Los parámetros para el constructor son transferidos cuando el método es llamado:

DATA(o_reporte) = NEW lcl_reporte( 1 ).

Además de los objetos, también podemos utilizar expresiones para inicializar estructuras o tablas internas. Para esto utilizaremos VALUE.

Antes de ABAP 7.4 para inicializar los campos de una estructura hacíamos lo siguiente:

ls_carr-carrid = 'LH'.

ls_carr-carrname = 'Lufthansa'.

A partir de ABAP 7.4 lo podemos hacer así:

ls_carr = VALUE #( carrid = 'LH' carrname = 'Lufthansa' ).

Si lo queremos hacer con declaración en línea debemos especificar el tipo de dato:

DATA(ls_carr) = VALUE scarr( carrid = 'LH' carrname = 'Lufthansa' ).

También se pueden inicializar tablas internas:

lt_carrier = VALUE #( ( carrid = 'AA' carrname = 'American Airlines' )

( carrid = 'HH' carrname = 'Lufthansa' ) ).


 

 

 


Sobre el autor

Publicación académica de Ricardo Daniel Tovar Barrera, en su ámbito de estudios para el Máster ABAP for HANA.

SAP Senior

Ricardo Daniel Tovar Barrera

Profesión: Consultor Abap - Mexico - Legajo: WC52Q

✒️Autor de: 15 Publicaciones Académicas

🎓Egresado de los módulos:

Certificación Académica de Ricardo Tovar