🚀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

Unidad 2: Programación ABAP HANA Avanzada.

Lección 1: Mejoras a partir de ABAP 7.40

Audio tip 1: Las declaraciones en linea no cambian el alcance de las variables ABAP por lo tanto no es posible usar el mismo nombre de variable varias veces dentro de un método. Es recomendable continuar definiendo al comienzo de una implementación de un método las variables que deseamos utilizar en varios lugares dentro de un método extenso. Las declaraciones en linea son sumamente útiles para las variables con un contexto de uso limitado y local. Las declaraciones no pueden utilizarse en todas las situaciones en particular no es posible todavía utilizar una declaración en linea para definir el resultado de un SELECT INTO o INTO TABLE.

Audio tip 2: En el ejemplo anterior es muy evidente que utilizando el operador VALUE combinado con las declaraciones en linea necesitamos mucho menos código ABAP para inicializar una tabla interna y el código generado es ampliamente más legible en comparación a ejecutar múltiples sentencias APPEND para realizar una inicialización clásica de estructuras o generar registros en una tabla interna.


Video: "Mejoras a partir de ABAP 7.4".

En este video vamos a analizar como un programa ABAP simple cambia a partir de la implementación de declaraciones en linea, las mejoras en declaraciones con DATA, operaciones con caracteres, SELECT INTO TABLE, expresiones con tablas que son algunas de las mejoras que se pueden utilizar en ABAP a partir de la versión 7.4 para ello tenemos el programa ZABAP_TEST el cual realiza una selección de datos a la tabla ztabla_usuarios y los imprime luego por pantalla.

  • En este programa declaramos una tabla interna para almacenar el resultado de la selección de los datos.
  • Una estructura para utilizar como cabecera de la tabla interna y una variable del tipo caracter de 200 posiciones.
  • Luego realizamos el select de la tabla ztabla_usuarios y almacenamos el resultado en la tabla interna ti_usuarios.
  • Realizamos la lectura del primer registro almacenado en ti_usuarios mediante la sentencia READ TABLE INDEX
  • Luego imprimimos en pantalla un texto y el DNI
  • Realizamos un CONCATENATE de textos y valores almacenados en la estructura wa_usuarios los cuales imprimimos en la pantalla.

Programa de ejemplo:

*& Report ZABAP_TEST

*& -----------------------------*

REPORT zabap_test.

DATA: ti_usuarios LIKE STANDARD TABLE OF ztabla_usuarios,

wa_usuarios LIKE LINE OF ti_usuarios,

v_datos_salida (200) TYPE c.

START-OF-SELECTION.

SELECT * FROM ztabla_usuarios INTO TABLE ti_usuarios.

IF sy-subrc EQ 0.

READ TABLE ti_usuarios INTO wa_usuarios INDEX 1.

IF sy-subrc EQ 0.

WRITE:/ 'El DNI del usuario es: ', wa_usuarios-dni.

CONCATENATE ' El usuario cuyo nombre es: ' wa_usuarios-nombre_apellido

' vive en la dirección: ' wa_usuarios-direccion

INTO v_datos_salida SEPARATED BY space.

WRITE:/ v_datos_salida.

END IF.

Vamos a analizar ahora como queda este programa luego de aplicadas las mejoras que tenemos disponibles en ABAP a partir de la versión 7.4

En principio podemos destacar que en la nueva versión de nuestro programa no tienen declaraciones de datos antes del evento START-OF-SELECTION. Dentro de la selección de los datos de la tabla ztabla_usuarios se encuentra la declaración de la tabla interna ti_usuarios la cual almacena los registros encontrados.

En lugar de utilizar la sentencia READ TABLE INDEX utilizamos una expresión con tablas. Dentro de la sentencia WRITE utilizamos operaciones con caracteres encerrando entre llaves los objetos de datos.

En lugar de realiza la declaración de la variable v_datos_salida antes del procesamiento y luego realizar un CONCATENATE combinamos las declaraciones en línea junto con los las mejoras en operaciones con caracteres y simplificamos ambos pasos en una sola linea.

Programa de ejemplo.

*& Report ZABAP_TEST_V2

*&--------------------------------------*

REPORT zabap_test_v2.

START-OF-SELECTION.

SELECT * FROM ztabla_usuarios INTO TABLE @DATA ( ti_usuarios).

IF sy-subrc EQ 0.

DATA(wa_usuarios) = ti_usuarios [ 1 ].

IF sy-subrc EQ 0.

WRITE:/ | El DNI del usuario es: { wa_usuarios-dni } | .

DATA (v_datos_salida) = | El usuario cuyo nombre es: | & | | &

| { wa_usuarios-nombre_apellido } | & | | &

| vive en la dirección: | & | | & | { wa_usuarios-direccion } | .

WRITE: / v_datos_salida.

END IF.

END IF.

Vamos a ejecutar el programa abap ZABAP_TEST_V2 para visualizar el resultado por pantalla que arroja.

Ahora vamos a a ejecutar el programa ZABAP_TEST y vemos el resultado que arroja y finalmente podemos verificar que el resultado por pantalla que arroja es exactamente igual o el mismo programa mejorado.


 

 

 


Sobre el autor

Publicación académica de Brenda Castillo Domínguez, en su ámbito de estudios para el Máster ABAP for HANA.

SAP Expert


Brenda Castillo Domínguez

Profesión: Ingenieria en Sistemas Computacionales - Mexico - Legajo: HJ67S

✒️Autor de: 187 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Certificación Académica de Brenda Castillo