ABAP 7.50
- Sergio Cannelli
- 27 dic 2015
- 2 Min. de lectura

ABAP (Advanced Business Application Programming) es el lenguaje principal en el que está escrito NetWeaver, que es la plataforma core sobre la que corren los componentes SAP. Open SQL, por su parte, es una abstracción del motor de base de datos usado, que se ha construido en ABAP y que permite el uso de una sintaxis uniforme independientemente de la base de datos que se esté usando.
En este artículo, vamos a repasar brevemente algunas de las 15 modificaciones que ha sufrido Open SQL en la release 7.5:
La cláusula FROM, ahora también puede ir delante de la cláusula SELECT. De usarse de esta manera, deben indicarse los FIELDS.
SELECT FROMscarr AS c
INNER JOIN spfli AS p
ON c~carrid = p~carrid
FIELDS c~carrname, p~connid, p~cityfrom, p~cityto
WHERE p~cityfrom = @cityfrom
INTO TABLE @DATA(result2).
Está disponible UNION que crea una unión entre los resultados arrojados por 2 consultas SELECT.
Más y mejores funciones: ROUND que redondea valores numéricos, CONCACT para concatenar cadenas, o REPLACE para reemplazar cadenas. Además, COALESCE puede ahora recibir hasta 255 argumentos e lugar de sólo 2.
IS [NOT] NULL puede ser usada con la condición ON.
Dentro de una expresión INSERT es posible insertar valores que sean el resultado de una subconsultaSELECT. La subconsulta debe ir entre paréntesis.
El uso de alguno de estos cambios introducidos en esta versión, activa la revisión de sintaxis en modo estricto.
Ahora dentro de las expresiones Open SQL es posible usar expresiones ABAP, que son llamadas host expressions, y que deben ser indicadas como:
… @(abap_expression ) …
Una expresión hosteada de ABAP en una expresión de Open SQL puede ser casi cualquier cosa, incluso un método. Este es un ejemplo publicado por Horst Keller:
INSERT demo_expressions FROM TABLE @( VALUE #( FOR i = 0 UNTIL i > 9 ( id = i num1 = rnd->get_next( ) num2 = rnd->get_next( ) ) ) ).
Una lista extensiva de los 15 cambios introducidos puede verse en la documentación oficial de la versión 7.50: http://help.sap.com/abapdocu_750/en/
Es interesante recordar que las aplicaciones SAP soportan un buen número de conocidas bases de datos relacionales, como Oracle, IBM DB2, MS SQL Server. Es posible pues usar desde ABAP SQL nativo de la base de datos con la que estamos trabajando, siempre que esta sea soportada. Open SQL es útil cuando estamos trabajando con diferentes BBDD, pues nos evita tener que cambiar la sintaxis cada vez que necesitemos cambiar de fuente de datos. Para entender cómo funciona, podemos pensar en una base de datos central que intermedia con el resto de bases de datos que usamos. Cuando hacemos consultas en Open SQL, el kernel de SAP transforma nuestras consultas a cada uno de los lenguajes SQL nativos de las distintas bases de datos que estamos utilizando. Open SQL sólo usa las tablas que están gestionadas por el ABAP Dictionary y su uso es obligatorio cuando estamos trabajando con más de un sistema gestor de bases de datos.