🚀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

Menú SIstema / Status, Pestaña Datos Sistema SAP, click en aypuda de búsqueda de Versión de componentes, buscar SAP_BASIS, SAP ABA para verificar versión de SAP Netweaver

ABAP 7.0 fué orientado a declaraciones

ABAP 7.02 Dirección de habilitación de la experesión: expresiones de cadena con operador de concatenación && combinadas con cadenas

ABAP 7.4 Dirección de la orietación de la expresión real: más expresiones y más posiciones de expresión. Declaraciones en línea

- Los corchetes de una tabla interna pueden eliminar READ

ABAP 7.5- Generalidades:

- Compatible con servidor de aplicaciones ABAP 7.4

- Corre en kernel 7.45

- Solo funciona con sistemas Unicode, se verificará que el atributo unicode este tildado

- Soporta SAP HANA y otras BD.

- Facilita la explotación de HANA con nuevas optimizaciones sofisticadas centradas en la BD

- Ofrece un modelo de programación ABAP común para aplicaciones transaccionales y anlitícas

- Establece SAP FIORI como experiencia de usuario de aplicaciones cruzadas. Nueva experiencia de usuario, Fiori sigue el concepto de app similar a los que utilizamos en samrtform o tablts, se ejecutan en browser o navegador de internet.

- Es compatible con la industria 4.0 ( la actual revolución industrial, consiste en la digitalización de los procesos industriales por medio de la interacción de la inteligencia artificial con las máquinas y la optimización de recursos enfocada en la creación de efectivas metodologías comerciales ) y los escenarios big data ( volumen de datos – estructurados y no estructurados)

- Moderniza y simplica aún mpas el lenguaje ABAP

- Ofrece una expreincia de desarrollo de primera clase en Eclipse

- Proporciona herramientas de admin. de código personalizadas para una actualización y meigración simples a SAP HANA S/4HANA

DECLARACIONES EN LÍNEA (Inline Declarations)

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

Objetivo: reducir y optimizar código.

Desventaja: El código ABAP se puede volver muy complejo de seguir.

  • Declaraciones con DATA

Antes de ABAP 7.4 declarabamos y asignabamos una variable en 2 líneas

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

DATA(V_texto) = 'Hola Mudo'.

  • Loop AT INTO work_area, se puede hacer en una solo línea a parti r de ABAP 7.4

LOOP AT ti_carrier INTO data(wa_carrier).

ENLOOP.

  • Call Method: Antes de ABAP 7.4 primero declarabamos atributos, lugo lo utilizamos en la llmada de un método , ahora ya se puede hacer en una línea

cl_salv_table=>factory( IMPORTING r_salv_table = data(lo_alv_inline) CHANGING t_table = ltdata ).

lo_alv_inline->display( ).

CATCH cx_salv_mesg INTO data(lo exc_inline).

  • LOOP AT ASSIGNING: Antes de Abap 7.4 primero declarabamos un FIELD SYMBOL que luego asignamos al momento de realizar un LOOP a una tabla interna, a partir de 7.4 se puede hacer desde una sola línea.

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

ENDLOOP.

  • READ TABLE ASSIGNING: Antes de ABAP 7.4 primero declarabamos un FIELD SYMBOL que luego asignamos a momento de leer un registro de una tabla interna. Apartir de ABAP 7.4 ambos pasos se pueden hacer en 1 sola línea.

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

  • SELECT INTO TABLE: Antes de Abap 7.4 primero declarabamos unatabla interna y luego la utilizabamos para almacenar el resultado de un select, a partir de Abap 7.4 se pueden hacer ambos pasos en una sola línea.

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

  • SELECT SINGLE INTO: Antes de Abap 7.4 primero declarabamos las variables en donde se almacenarían los resultados obtenidos y luego realizamos la selección en dos partes, a partir de ABAP 7.4 podemos hacer ambos pasos en uno solo:

SELECT SINGLE carrname FROM scarr WHERE carrid EQ 'AA' INTO @data(v_carrname).

* Las declaraciones en línea son útiles para varibles con un contexto de uso limitado y local, no se puede utilizar para definir un resultado de un SELECT INTO o SELECT INTO TABLE.

EXPRESIONES CON TABLAS

A momento de hacer un READ se dsipara la excepción CX_SY_ITAB_LINE_NOT_FOUN en lugar de cambiar el valor de la variable SY_SUBRC.

  • READ TABLE INDEX: A partir de ABAP 7.4 se puede ejecutar la siguiente línea de código:

data(wa_carrier) = ti_carrier[ 1 ].

  • READ TABLE WITH KEY: A partir de ABAP 7.4 se puede ejecutar la siguiente línea de código:

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

  • ¿Existe algún registro?. La siguiente instrucción se puede substituir:

READ TABLE ti_carrier WITH KEY carrid = 'AA' TRANSPORTING NO FIELDS. IF sy-subrc EQ 0. ENDIF.

Por:

IF line_exists( ti_carrier[ carrid = 'AA'] ). ENDIF.

  • Obtener índice de una tabla. A partr de ABAP 7.4 se puede ejecutar a sig. línea de códifgo:

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

* Se producirá un dump si utilizamos una expresión que haga referencia a un registro que no existe en una tabla intena., se recomienda chequear con el SY-SUBRC

ASSIGN it_tab[ 1 ] to FIELD-SYMBOL( ). IF sy-subrc EQ 0. ENDIF.

EXPRESIONES DE CONSTRUCTOR.

Las expresiones de constructor permiten crear e inicializar objetos ABAP, el beneficio de estas expresiones radica en la reducción de las declaraciones necesarias, así como la compatibilidad de las declaraciones en línea.

  • El operador NEW, permite declarar una instancia de un objeto directamente en línea.

data(o_reporte) = NEW lcl_reporte( 1 ).

  • El operador VALUE: inicializar estructuras o tablas internas

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

operador VALUE combinado con declaración en línea:

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

Inicializar campos de una tabla interna y evitar varios APPEND

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

(carrid = 'LH' carrname = 'Luftansa' ) ).

  • Operador REF: se utiliza para generar una referencia de datos con la sentencia GET REFERENCE

lo_result_set->set_param_table( ref #(lt_result) ).

  • Operador CONV (conversiones) y operador CAST (conversiones de tipo).

CORRESPONDING

A partir de ABAP 7.4 se puede ejecutar la sig línea de código:

wa_linea2 = CORRESPONDING #( wa_linea1 ). - los campos q no sean igules serán inicializados

wa_linea2 = CORRESPONDING #( BASE ( wa_linea2 ) wa_linea1 ). - Deja los valores de wa_linea2 y sobreesribe los que encuentra en wa_linea1

DATA(wa_linea3) = CORRESPONDING linea2 ( BASE ( wa_linea2 ) wa_linea1 ). - Dónde wa_linea3 se basa en wa_linea2 pero se sobreescribe con wa_linea1

OPERACIONES CON CARÁCTERES.

A partir de ABAP 7.4 la cadena de carácteres esta rodeada por un pipe al inicio y un pipe al final.

|hola.|

Dentro de unacadena de carácteres podemos encerra 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.

v_string = |El código de restorno es: { sy-subrc } |.

En lugar ABAP CONCATENATE SAPARTED BY SPACE se puede usar:

DATA(vl_output) = |Hola| & | | & |Mundo|.


 

 

 


Sobre el autor

Publicación académica de Lucero Miriam Tapia Cruz, en su ámbito de estudios para el Máster ABAP for HANA.

SAP SemiSenior

Lucero Miriam Tapia Cruz

Profesión: Abap Sr. Ceritificado / Abap Crm - Mexico - Legajo: FD25L

✒️Autor de: 13 Publicaciones Académicas

🎓Egresado del módulo:

Disponibilidad Laboral: FullTime

Presentación:

disponibilidad laboral fulltime

Certificación Académica de Lucero Tapia