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