🚀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

Lección 1: Mejoras a partir de ABAP 7.40

1.- Mejoras a ABAP 7.40

Gracias a una mayor orientación hacia las expresiones, estas mejoras nos permiten escribir un código ABAP más corto y legible.

El paradigma code pushdown puede utilizarse para realizar cálculos dentro de la base de datos y (al usar los componentes contenidos en ABAP AS) la aplicación puede orquestarse utilizando considerablemente menos código de aplicación.

1.1 – Como determinamos la versión de ABAP con la que estamos trabajando?

Para saber si estamos trabajando con ABAP 7.4 o superior, debemos ingresar a un modo SAP e ir a Menú, Sistema / Status y clicar en el botón Componentes / Product Versión.

De la lista de componentes, buscamos la versión de los componentes SAP_BASIS y SAP_ABA.

De dónde venimos, donde estamos y hacia dónde vamos?

Supongamos que tenemos la tarea de generar una cadena de caracteres concatenada a partir de un valor de una columna de una tabla interna con algunos contenidos literales.

En Abap 7,0 seria así:

DATA: ti_carr TYPE TABLE OF scarr.

SELECT * FROM scarr INTO TABLE ti_carr.

DATA: wa_scarr LIKE LINE OF ti_carr.

READ TABLE ti_scarr WITH KEY carrid = ‘LH’ INTO wa_scarr.

DATA: v_output TYPE string.

CONCATENATE ‘Carrier:’ wa_scarr-carrname INTO v_output SEPARATED BY space.

Cl_demo_output=>display(v_output).

Con la versión 7.02 ABAP dio un gran paso en la dirección de habilitación de la expresión. 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.

En la version 7.02

DATA: ti_carr TYPE TABLE OF scarr.

SELECT * FROM scarr INTO TABLE ti_carr.

DATA: wa_scarr LIKE LINE OF ti_carr.

READ TABLE ti_scarr WITH KEY carrid = ‘LH’ INTO wa_scarr.

Cl_demo_output=>display( |Carrier: { wa_scarr-carrname }| ).

En la version 7.40

DATA: ti_carr TYPE TABLE OF scarr.

SELECT * FROM scarr INTO TABLE ti_carr.

READ TABLE ti_scarr WITH KEY carrid = ‘LH’ INTO DATA(wa_scarr).

Cl_demo_output=>display( |Carrier: { wa_scarr-carrname }| ).

El compilador ABAP conoce el tipo de datos necesario para la estructura wa_scarr, por lo tanto, podemos declarar la estructura en línea en una posición.

Hemos efectuado una línea menos. Pero wa_scarr_carrname sigue siendo una variable auxiliar. Si utilizamos una expresión de tabla:

DATA: ti_carr TYPE TABLE OF scarr.

SELECT * FROM scarr INTO TABLE ti_carr.

Cl_demo_output=>display( |Carrier: { ti_scarr[ carrid = ‘LH’ ]-carrname }| ).

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

En 2015 SAP lanza el servidor de aplicaciones SAP NetWeaver AS ABAP 7.5 y la nueva versión del lenguaje ABAP 7.5.

· Corre con el Kernel 7.45.

· Soporta la base de datos SAP HANA y otras BD.

· Ofrece un modelo de programación ABAP común para aplicaciones transaccionales y analíticas

· Es compatible con la industria 4.0 y los escenarios de big data.

· Ofrece una experiencia de desarrollo de primera clase en Eclipse.

2.- Declaraciones en línea. (Inline Declarations)

Lo primero que solemos hacer al crear un programa ABAP es escribir las declaraciones de datos. Declaramos las variables el inicio de las subrutinas, los métodos y los programas.

A partir de la versión ABAP 7.4 estas declaraciones de datos pueden evitarse por completo.

El objetivo de las declaraciones en línea es ayudarnos a reducir y optimizar el código de generamos.

2.1 – Declaraciones con DATA

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

DATA: v_texto TYPE string.

V_texto = ‘hola mundo’.

A partir de ABAP 7.4 podemos hacerlo en una sola línea:

DATA(v_texto) = ‘hola mundo’.

2.2 – Loop AT INTO work área.

Antes de ABAP 7.4 declarábamos una estructura o también llamada Work área para recorrer una tabla en un LOOP en dos líneas:

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:

LOOP AT ti_carrier INTO data(wa_carrier).

ENDLOOP.

2.3 – CALL METHOD

Antes de ABAP 7.4 declarábamos los atributos que utilizábamos luego en la llamada a un método en dos líneas:

“Declaración de datos sin declaración en línea.

DATA: lo_alv TYPE REF TO cl_salv_table,

lo_exc TYPE REF TO cx_salv_msg,

lt_data TYPE TABLE OF scarr.


TRY.

“Generamos la tabla del ALV

cl_salv_table=>factory( IMPORTING r_salv_table = lo_alv

CHANGING t_table = lt_data ).

“Mostramos el ALV

lo_alv->display().

CATCH cx_salv_msg INTO lo_exc.

MESSAGE lo_exc TYPE ‘I’ DISPLAY LIKE ‘E’.

ENDTRY.

A partir de ABAP 7.4

TRY.

“Generamos la tabla del ALV

cl_salv_table=>factory( IMPORTING r_salv_table = data(lo_alv_inline)

CHANGING t_table = lt_data ).

“Mostramos el ALV

lo_alv_inline->display().

CATCH cx_salv_msg INTO data(lo_exc_inline).

MESSAGE lo_exc TYPE ‘I’ DISPLAY LIKE ‘E’.

ENDTRY.

2.4 – LOOP AT ASSIGNING

Antes de ABAP 7,4 declarábamos un FIELD SYMBOL que luego asignamos al momento de realizar un LOOP a una tabla interna de modo de almacenar cada registro de la tabla en dos líneas:

FIELD-SYMBOLS: <wa_bukrs> TYPE bukrs.

LOOP AT ti_bukrs ASSIGNING <wa_bukrs>.

ENDLOOP.

A partir de ABAP 7.4

DATA: ti_bukrs TYPE STANDAR TABLE OF bukrs.

LOOP AT ti_bukrs ASSINING field-symbol(<wa_bukrs>).

ENDLOOP.

2.5 – READ TABLE ASSINING

Antes de ABAP 7.4 primero declarábamos un FIELD SYMBOL que luego asignábamos al momento de leer un registro de una tabla interna.

DATA: ti_matnr TYPE STANDARD TABLE OF matnr.

READ TABLE ti_matnr ASSIGNING <wa_matnr> INDEX 3.

A partir de ABAP 7.4

READ TABLE ti_matnr ASSIGNING field-symbol(<wa_matnr>) INDEX 3.

2.6 – 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:

DATA: ti_carr TYPE TABLE OF scarr.

SELECT * FROM scarr INTO TABLE ti_scarr.

A partir de ABAP 7.4

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

2.7 – SELECT SINGLE INTO

Antes de ABAP 7.4 al momento de realizar un SELECT SINGLE INTO, primero declarábamos las variables en donde se van a almacenar los resultados obtenidos en la selección y luego realizamos la selección:

DATA: v_carrname LIKE scarr_carrname.

SELECT SINGLE carrname

FROM scarr

INTO v_carrname

WHERE carrid EQ ‘AA’.

A partir de ABAP 7.4

SELECT SINGLE carrname

FROM scarr

WHERE carrid EQ ‘AA’

INTO @data(v_carrname)

NOTA: Las declaraciones en línea no cambian el alcance de las variables ABAP. Por lo cual 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 línea 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 línea para definir el resultado de un SELECT INTO o INTO TABLE.

3.- Expresiones con Tablas

En lo que se refiere al manejo de tablas, los cambios a partir de ABAP 7.4 son muchos.

Uno de los más significativos 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 el valor de la variable del sistema SY-SUBRC tal como se hacía hasta ahora.

3.1 – READ TABLE INDEX

Antes de ABAP 7.4 para leer un registro puntual de una tabla interna:

DATA: ti_carrier TYPE TABLE OF scarr,

wa_carrier LIKE LINE OF ti_carrier.

READ TABLE ti_carrier INTO wa_carrier INDEX 1.

A partir de ABAP 7.4

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 escribíamos:

DATA: ti_carrier TYPE TABLE OF scarr WITH KEY carrid,

wa_carrier LIKE LINE OF lt_carrier.

READ TABLE ti_carrier WITH KEY carrid = ‘LH’ INTO wa_carrier.

A partir de ABAP 7.4

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

3.3 – Existe el registro?

Antes de ABAP 7.4 para determinar si existe el registro de una tabla interna podíamos ejecutar el siguiente código:

SELECT *

FROM scarr

INTO TABLE ti_carrier.

READ TABLE ti_carrier WITH KEY carrid = ‘AA’ TRANSPORTING NO FIELDS.

IF sy-subrc = 0.

ENDDIF.

A partir de ABAP 7.4

IF line_exist( ti_carrier[carrid = ‘AA’] ).

ENDIF

3.4 – Obtenemos el índice de una tabla

Antes de ABAP 7.4 para determinar el índice de una tabla interna:

DATA: ti_scarr TYPE SORTED TABLE OF scarr WITH UNIQUE KEY carrid,

v_idex TYPE i.

SELECT *

FROM scarr

INTO TABLE ti_scarr.

READ TABLE ti_scarr WITH TABLE KEY carrid = ‘AA

TRANSPORTING NO FIELDS.

IF sy-subrx = 0.

v_idex = sy-tabix.

ENDIF.

A partir de ABAP 7.4

DATA(v_index) = line_index( ti_scarr[ carrid = ‘AA’ ] ) .

NOTA: Se producirá un DUMP (error en tiempo de ejecución) su utilizamos una expresión en línea que haga referencia a un registro que no existe en una tabla interna.

Se recomienda asignar un field symbol y chequear el SY-SUBRC de la siguiente manera:

ASSING it_tab[1] to FIELD-SYMBOL().

IF sy-subrc EQ 0.

ENDIF

4.- 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 las expresiones radica en la reducción de las declaraciones necesarias, así como en la compatibilidad con las declaraciones en línea. (Inline Declarations).

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

*-----------------------------

* Class lcl_report DEFINITION

*-----------------------------

CLASS lcl_reporte DEFINITION.

PUBLIC SECTION.

METHODS:

constructor IMPORTING iv_rec TYPE i,

seleccionar_datos,

imprimir_dados.

PRIVATE SECTION.

DATA: v_rec TYPE i.

ENDCLASS.

*--------------------------------

* Class lcl_report IMPLEMENTATION

*--------------------------------

CLASS lcl_reporte IMPLEMENTATION.

METHOD constructor.

WRITE: / ‘-------‘.

WRITE: / ‘Nuevo objeto’, iv_rec.

v_rec = iv_rec.

ENDMETHOD. “Constructor

METHOD seleccionar_datos.

WRITE: / ‘ Seleccionando datos’, v_rec.

ENDMETHOD. “ Seleccionar datos

METHOD imprimir datos.

WRITE: / ‘ Imprimiendo datos’, v_rec.

ENDMETHOD. “ imprimir datos

ENDCLASS.

START-OF-SELECION.

DATA: lo_reporte TYPE REF TO lcl_reporte.

CREATE OBJECT lo_reporte EXPORTING iv_rec = 5.

constructor IMPORTING iv_rec TYPE i,

seleccionar_datos,

imprimir_dados.

PRIVATE SECTION.

DATA: v_rec TYPE i.

ENDCLASS.

Para crear la instancia de un objeto, podemos utilizar el operador NEW, el cual nos permite declarar una instancia de un objeto directamente en línea.

Los parámetros para el constructor son transferidos cuando el método es llamado.

Data(o_reporte) = NEW lcl_reporte (1).

Antes de ABAP 7.4 para inicializar los campos de una estructura o workarea, ejecutábamos el siguiente código:

DATA: ls_carr TYPE scarr.


 

 

 


Sobre el autor

Publicación académica de Juan Hernández, en su ámbito de estudios para el Máster ABAP for HANA.

SAP Master


Juan Hernández

Profesión: Programador Informático - España - Legajo: XQ15K

✒️Autor de: 125 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: PartTime

Certificación Académica de Juan Hernández

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "Las mejoras a partir de ABAP 7.40" de la mano de nuestros alumnos.

SAP SemiSenior

Mejoras a partir del sistema SAP NetWeawer 7.4: Se han implementado mejoras en ABAP. Con SAP NetWeawer 7.40 llegó el servidor de aplicacions ABAP AS ABAP 7.40. En octubre del 2015 llega el SAP NetWeawer AS ABAP 7.5 y con él la nueva versión del leguaje ABAP 7.5. Estas mejoras permiten escribir un código más corto y más legible. Gracias a los corchetes y a las declaracions en línia, podemos optimitzar nuestro código ABAP. ABAP 7.5 solo funciona con sistemas Unicode. Funciona con la BD SAP HANA y otras BD. A partir de la versión ABAP 7.4, las declaracions de datos pueden evitarse por completo aunque en algunos casos es mejor dejarlas para evitar que el código ABAP se vuelva...

Acceder a esta publicación

Creado y Compartido por: Maximiliano Belgrado / Disponibilidad Laboral: PartTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

Unidad 2: Lección 1 Las mejoras a partir de ABAP 7.4 1. Las mejoras a ABAP A partir del lanzamiento del sistema SAP NetWeaver 7.4 se han implementado mejoras en el lenguaje de programación ABAP Junto con SAP Netweaver 7.4 llegó el servidor de aplicaciones ABAP AS ABAP 7.4 Permitir escribir un código ABAP más corto y más legible 1.1 Determinar cuál versión ABAP se tiene Buscar la opción Sistema / Status, ir a Componentes y en la lista buscar los que digan SAP_BASIS y SAP_ABA 1.2 Que es ABAP 7.5 y cuáles son sus fundamentos? En 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 Generalidades...

Acceder a esta publicación

Creado y Compartido por: Alejandra Soto Guerrero

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Las mejoras en abap a partir del sistema SAP NetWeaver 7.4, se han implementado una serie de mejoras en el lenguaje de programación ABAP. Junto con SAP NetWeaver 7.0 llegó el servidor de aplicaciones ABAP AS ABAP 7.40. El AS ABAP 7.40 es el sucesor de AS ABAP 7.31 (también conocido como AS ABAP 7.03) que es el sucesor de AS ABAP 7.02 que se basa en AS ABAP 7.0. Gracias a una mayor orientación hacia las expresiones, estas mejoras nos permiten escribir un código ABAP corto y más legible. En el contexto del desarrollo de ABAP en SAP HANA, las opciones asociadas con las expresiones hacen posible reducir el código ABAP a la intención esencial. El paradigma code pushdown puede utilizarse para...

Acceder a esta publicación

Creado y Compartido por: Yair Miguel Ramirez Martinez / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

Mejoras a partir de la versión 7.4. Código más orientado a las expresiones, las mejoras permiten escribir un código más corto y legible. SAP HANA. Code pushdown. Aplicaciones de técnicas de procesamiento de datos en la capa de base de datos. Cada aplicación solo flujo de procesamiento y tratar datos. Mejoras ABAP 7.5 Declaraciones en línea. Declarar tipos de datos para una estructura en una linea de posición. Expresiones en tablas. Utilizando READ con instrucciones en línea. Expresiones de constructor. Crear una Instancia de OBJETOS con NEW. Operador REF para referencia objetos. Operador CORRESPONDING. Optimizado para ser utilizado en 1 linea. Operaciones con caracteres....

Acceder a esta publicación

Creado y Compartido por: Maria Sanchez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

Mejoras a partir de ABAP 7.40 AS ABAP 7.40 que es un servidor de aplicaciones sucesor de AS ABAP 7.31. Una de las mejoras es escribir un código ABAP más corto y más legible. Es decir que en vez de declarar un dato al inicio de nuestro programa ABAP ahora podemos declarar el dato mientras lo estamos usando en un metodo, rutina, consulta, loop, etc, a esto se le llama declaración en línea. Usar el paradigma code pushdown realiza los cálculos dentro de la base de datos. ¿Qué es ABAP 7.50 y cuales son sus funciones? Sap lanza el servidor de aplicaciones SAP NetWeaber AS ABAP 7.5 con la versión de lenguaje ABAP 7.5 en octubre del 2015. compatible con las versión ABAP...

Acceder a esta publicación

Creado y Compartido por: Diego Fernando Delgado Ortiz / Disponibilidad Laboral: PartTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master


Mejoras ABAP Con la liberación de SAP NetWeaver 7.4 que en conjunto con el servidor de aplicaciones ABAP (AS ABAP 7.40), trajo consigo mejoras en el lenguaje ABAP. En su mayoría hacía la expresiones mas cortas y legibles (en sus declaraciones), que en su conjunto con el nuevo paradigma code pushdown la aplicación puede orquestaste usando menos código. Se emplea declaraciones en linea, es decir simplificando por mucho declaraciones e instrucciones en menos lineas de código, ej. podemos ya no usar read table en lo futuro. Con las ultimas versiones de AS ABAP 7.4 son el kernel para tener muchas ventajas en las declaraciones de la misma manera: -Facilita la explotación de HANA con nuevas optimizaciones...

Acceder a esta publicación

Creado y Compartido por: Javier Montero Quintal

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

Mejoras a partir de ABAP 7.4 1. Mejoras a ABAP Desde ABAP 7.4 se han implementado una serie de mejoras al lenguaje ABAP. Posee una mayor orientación hacia las expresiones. Esto permite escribir código ABAP más corto y más legible. El paradigma code pushdown puede utilizarse para realizar cálculos dentro de la base de datos y (al usar los componentes contenidos en el ABAP AS) la aplicación puede orquestarse utilizando menos código de aplicación. 1.1 Para determinar la versión de ABAP que se está utilizando Ir al menú Sistema / Status. Luego clic en el botón "Componentes" (Product Version). Se busca la versión o RElease de los componentes SAP_BASIS...

Acceder a esta publicación

Creado y Compartido por: Raul Alejandro Nuñez Valdes / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


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...

Acceder a esta publicación

Creado y Compartido por: Brenda Castillo Domínguez / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Mejoras a partir de ABAP 7.40 Mejoras a ABAP Desarrollo de ABAP en SAP HANA, las opciones asociadas con las expresiones hacen posible reducir el codigo ABAP a la internsión personal. El paradigma code pushdown puede utilizarse para realizar calculos dentro de la base de que datos, la aplicación puede orquestarse utilizando considerablemente menos codigo de aplicación. Que es ABAP 7.50 y cuales son sus fundamentos? Es compatible con el servidor de aplicaciones 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...

Acceder a esta publicación

Creado y Compartido por: Marvin Raul Lopez Morales / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

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...

Acceder a esta publicación

Creado y Compartido por: Ricardo Daniel Tovar Barrera

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!