SENTENCIAS ABAP 7.40. Píldora I.

El propósito de esta colección de píldoras no es otro que el de dar a conocer una serie de sencillas sentencias Hana que deben sustituir a las que actualmente estamos usando (si aún no lo han hecho). La mejora de rendimiento que obtenemos en la ejecución de nuestros programas es tan evidente que NO debemos demorar su uso ni un segundo más. Comenzamos …

A partir de la versión 7.40, SAP introdujo las denominadas “Sentencias Hana”. Dichas sentencias tienen 2 propósitos fundamentales:

1) Implementar sentencias nuevas

2) Optimizar sentencias nuevas como algunas existentes para los sistemas HANA.

Hoy realizaremos un ejemplo de la nueva forma de leer en tabla interna sin necesidad de “READ TABLE”.

READ TABLE ITAB INTO WA WHERE FIELD1 = LV_FIELD1.

Hasta ahora, esta era la forma tradicional de hacer una lectura a tabla interna con un filtro. Ahora, la lectura se simplifica e incluso permite la declaración in-line (declaraciones en la misma línea de ejecución).

DATA(WA) = ITAB[ FIELD1 = LV_FIELD1 ].

Esta nueva sentencia no permite una lectura en falso, es decir, que no se obtengan registros. Si esto ocurre, obtendremos un “DUMP” que finaliza el proceso de ejecución. Para prevenirlo, es necesario capturar la excepción para evitar el dump. Hablamos de un “TRY-CATCH” con la excepción “CX_SY_ITAB_LINE_NOT_FOUND”.

TRY.
DATA(WA) = ITAB[ FIELD1 = LV_FIELD1 ].
CATCH CX_SY_ITAB_LINE_NOT_FOUND.
CLEAR: WA.
ENDTRY.

SAP recomienda el “TRY-CATCH”, aunque existe la posibilidad de saber si un registro existe y, por consiguiente, saber que la lectura siempre va a ser correcta. Hablamos de “LINE_EXISTS”.

IF LINE_EXISTS( ITAB[ FIELD1 = LV_FIELD1 ] ).
DATA(WA) = ITAB[ FIELD1 = LV_FIELD1 ].
ENDIF.

De esta manera solo se realizará la lectura si la línea existe y nunca tendremos un dump en proceso de ejecución.

 

Espero que os haya gustado y nos leemos en la siguiente!!.

PD: Si queréis que escriba sobre alguna sentencia concreta no tenéis más que pedírmelo en los comentarios del post, en nuestra plataforma SAPtribe ?.

 

SAP Developer Analyst

3 comentarios en «SENTENCIAS ABAP 7.40. Píldora I.»

Deja un comentario