![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️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 ABAP HANA Las mejoras a partir de ABAP 7.40](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/466.jpg)
1. Las mejoras a ABAP
A partir del lanzamiento del sistema SAP NetWeaver 7.4 se han implementado una seri de mejoras en el lenguaje de programación ABAP. Gracias a una mayor orientación hacia las expresiones, estas mejoras nos permiten escribir un código ABAP más corto y más legible. El paradigma code pushdown puede utilizar 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 ¿Cómo determinamos con cúal versión de ABAP estamos trabajando?
Sistema / Status / Componentes (product versión) / SAP_BASIS y SAP_ABA.
1.2 ¿De dónde venimos, dónde estamos y hacia dónde vamos?
A partir de la versión 7.0 ABAP fue orientado a declaraciones. Con la versión 7.02, ABAP dio el primer gran paso en la dirección de habilitación de la expresión. Muchas nuevas funciones incorporadas, expresiones de cadena con operador de concatenación && combinadas con cadenas y la capacidad de escribir expresiones en muchas posiciones de operandos, abrieron un nuevo ámbito de programación ABAP.
1.3 ¿Qué es ABAP 7.50 y cuáles son sus fundamentos?
ABAP continúo evolucionando hasta que, en octubre de 2015, SAP lanza el servidor de aplicaciones SAP NetWeaver AS ABAP 7.5 y con él la nueva versión del lenguaje ABAP 7.5.
- Es compatible con el servidor de aplicaciones ABAP 7.4.
- Corre con el kernel 7.45.
- Solo funciona con sistemas Unicode, es decir, al momento de comprobar la sintaxis se verificará que el atributo Unicode este tildado.
- 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 ABPA común para aplicaciones transaccionales y analíticas
- Establece a SAP Fiori como experiencia de usuarios de aplicaciones cruzadas.
- 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
2.1 Las declaraciones con DATA
2.2 Loop AT INTO work area
2.3 CALL METHOD
2.4 LOOP AT ASSIGNING
2.5 READ TABLE ASSIGNING
2.6 SELECT INTO TABLE
2.7 SELECT SINGLE INTO
3 Las expresiones con tablas
3.1 READ TABLE INDEX
3.2 READ TABLE WITH KEY
DATA(lv_nombre) = ti_carrier[ carrid = 'LH' ]-carrname.
3.3 ¿Existe el registro?
IF line_exists( ti_carrier[ carrid = 'AA' ] ).
3.4 Obtenemos el índice de una tabla
DATA(lv_index) = line_index( lt_scarr[ carrid = 'AA' ] ).
Se recomienda asignar un field symbol y chequear el SY-SUBRC de la siguiente forma:
ASSIGN lt_tab[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.
DATA(o_reporte) = NEW lcl_reporte( 1 ).
Además de los objetos, también podemos utilizar expresiones para inicializar estructuras o tablas internas. En este caso utilizaremos el operador VALUE.
ls_scarr = VALUE #( carrid = 'LH' carrname = 'Lufthansa' ).
DATA(ls_scarr) = VALUE scarr( carrid = 'LH' carrname = 'Lufthansa' ).
DATA lt_carrier TYPE TABLE OF scarr.
lt_carrier = VALUE #( ( carrid = 'AA' carrname = 'American Airlines' ) ( carrid = 'LH' carrname = 'Lufthansa' ) ).
Otro operador muy utilizado es el operador REF, que es una alternativa orientada a la expresión, el cual utilizamos para generar una referencia de datos junto con la sentencia GET REFERENCE.
TRY.
DATA(lo_result_set) = cl_sql_connection=>get_connection()->create_statement()->execute_query( lv_statement ).
lo_result_set->set_param_table( ref #( lt_result ) ).
Cuando utilizamos expresiones de constructor, no debemos pasar por alto las consideraciones de tiempo de ejecución y la elegancia del código.
5. El operador CORRESPONDING
wa_line2 = CORRESPONDING #( wa_line1 ).
El contenido de wa_line1 se moverá a wa_line2 si hay un campo que lleve el mismo nombre y el mismo tipo de datos. Los campos que no sean iguales o no coincidan entre ambas estructuras serán inicializados.
Para asignar a una estructura el contenido de otra estructura o workarea, sin previamente inicializar el contenido de la estructura destino.
wa_line2 = CORRESPONDING #( BASE ( wa_line2 ) wa_line1 ).
Si teníamos tres estructuras para asignar a una estructura el contenido de otra estructura o workarea, sin previamente inicializar el contenido de la estructura destino.
DATA(wa_line3) = CORRESPONDING line2( BASE ( wa_line2 ) wa_line1 ).
6. Las operaciones con caracteres
Dentro de una cadena de caracteres podemos encerrar entre llaves {} los siguientes objetos y expresiones.
- Objetos de datos
- Expresiones de cálculo
- Expresiones de constructores
- Expresiones de tablas
- Funciones predefinidas
- Métodos funcionales y encadenamiento de métodos
DATA(lv_string) = |El código de retorno es: { sy-subrc }|.
DATA(lv_output) = |Hola| & | | & |mundo|.
 
 
 
Sobre el autor
Publicación académica de Oscar Iván Eugenio Trejo, en su ámbito de estudios para el Máster ABAP for HANA.
Oscar Iván Eugenio Trejo
Profesión: Desarrollador Abap - Mexico - Legajo: TQ13F
✒️Autor de: 12 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: PartTime