stringtranslate.com

ABAP

ABAP (Advanced Business Application Programming, originalmente Allgemeiner Berichts-Aufbereitungs-Prozessor , en alemán "procesador de preparación de informes generales" [2] ) es un lenguaje de programación de alto nivel creado por la empresa de software alemana SAP SE . Actualmente se posiciona, junto con Java , como el lenguaje para programar el servidor de aplicaciones SAP NetWeaver , que forma parte de la plataforma SAP NetWeaver para la creación de aplicaciones empresariales.

Introducción

ABAP es uno de los muchos lenguajes de cuarta generación ( 4GL ) específicos de la aplicación desarrollados por primera vez en la década de 1980. Originalmente era el lenguaje de informes para SAP R/2 , una plataforma que permitía a las grandes corporaciones crear aplicaciones comerciales de mainframe para la gestión de materiales y la contabilidad financiera y de gestión.

ABAP solía ser una abreviatura de Allgemeiner B erichts - Aufbereitungs - Prozessor , que en alemán significa "procesador de preparación de informes genéricos", pero luego [¿ cuándo? ] se renombró como Advanced Business Application Programming en inglés . ABAP fue uno de los primeros lenguajes en incluir el concepto de bases de datos lógicas (LDB), que proporciona un alto nivel de abstracción de los niveles básicos de base de datos, que admite todas las plataformas, lenguajes y unidades.

El lenguaje ABAP fue utilizado originalmente por los desarrolladores para desarrollar la plataforma SAP R/3 . También estaba previsto que lo utilizaran los clientes de SAP para mejorar las aplicaciones SAP: los clientes pueden desarrollar informes e interfaces personalizados con programación ABAP. El lenguaje estaba orientado a clientes más técnicos con experiencia en programación.

ABAP sigue siendo el lenguaje para crear programas para el sistema cliente-servidor R/3 , que SAP lanzó por primera vez en 1992. A medida que el hardware informático evolucionó durante la década de 1990, cada vez más aplicaciones y sistemas de SAP se escribieron en ABAP. En 2001, todas las funciones, salvo las más básicas, se escribieron en ABAP. En 1999, SAP lanzó una extensión orientada a objetos de ABAP llamada ABAP Objects, junto con la versión 4.6 de R/3.

La plataforma de desarrollo actual de SAP, NetWeaver, admite tanto ABAP como Java .

ABAP tiene una abstracción entre las aplicaciones empresariales, el sistema operativo y la base de datos. Esto garantiza que las aplicaciones no dependan directamente de un servidor o plataforma de base de datos específicos y que puedan trasladarse fácilmente de una plataforma a otra.

SAP Netweaver actualmente se ejecuta en UNIX ( AIX , HP-UX , Solaris , Linux ), Microsoft Windows , i5/OS en IBM System i (anteriormente iSeries, AS/400) y z/OS en IBM System z (anteriormente zSeries, S/390). Las bases de datos compatibles son HANA , SAP ASE (anteriormente Sybase), IBM Db2 , Informix , MaxDB , Oracle y Microsoft SQL Server (el soporte para Informix se discontinuó en la versión 7.00 de SAP Basis). [3]

Entorno de ejecución ABAP

Todos los programas ABAP residen dentro de la base de datos SAP. No se almacenan en archivos externos separados como los programas Java o C++. En la base de datos, todo el código ABAP existe en dos formas: código fuente, que se puede ver y editar con las herramientas ABAP Workbench; y código generado, una representación binaria comparable en cierta medida con el bytecode de Java . Los programas ABAP se ejecutan bajo el control del sistema de ejecución, que forma parte del núcleo de SAP. El sistema de ejecución es responsable de procesar las sentencias ABAP, controlar la lógica de flujo de las pantallas y responder a los eventos (como cuando un usuario hace clic en un botón de la pantalla); en este sentido, se puede considerar como una máquina virtual comparable con la VM de Java. Un componente clave del sistema de ejecución ABAP es la interfaz de base de datos, que convierte las sentencias ABAP independientes de la base de datos ("Open SQL") en sentencias entendidas por el DBMS subyacente ("Native SQL"). La interfaz de base de datos maneja toda la comunicación con la base de datos relacional en nombre de los programas ABAP; también contiene funciones adicionales como el almacenamiento en búfer de tablas y datos a los que se accede con frecuencia en la memoria local del servidor de aplicaciones.

Sistemas y entornos SAP

Todos los datos de SAP existen y todo el software de SAP se ejecuta en el contexto de un sistema SAP . Un sistema consta de una base de datos relacional central y uno o más servidores de aplicaciones ("instancias") que acceden a los datos y programas de esta base de datos. Un sistema SAP contiene al menos una instancia, pero puede contener más, principalmente por razones de tamaño y rendimiento. En un sistema con varias instancias, los mecanismos de equilibrio de carga garantizan que la carga se distribuya de manera uniforme entre los servidores de aplicaciones disponibles.

Las instalaciones del servidor de aplicaciones web ( paisajes ) normalmente constan de tres sistemas: uno para el desarrollo; uno para las pruebas y el control de calidad; y uno para la producción. El paisaje puede contener más sistemas (por ejemplo, sistemas separados para las pruebas unitarias y las pruebas de preproducción) o puede contener menos (por ejemplo, solo desarrollo y producción, sin control de calidad separado); sin embargo, tres es la configuración más común. Los programas ABAP se crean y se someten a pruebas en el sistema de desarrollo. Después se distribuyen a los demás sistemas del paisaje. Estas acciones se llevan a cabo bajo el control del Sistema de cambio y transporte (CTS), que es responsable del control de concurrencia (por ejemplo, evitar que dos desarrolladores cambien el mismo código al mismo tiempo), la gestión de versiones y la implementación de programas en los sistemas de control de calidad y producción.

El servidor de aplicaciones web consta de tres capas: la capa de base de datos, la capa de aplicación y la capa de presentación. Estas capas pueden ejecutarse en la misma máquina física o en máquinas diferentes. La capa de base de datos contiene la base de datos relacional y el software de base de datos. La capa de conocimiento de la "capa de aplicación" contiene la instancia o instancias del sistema. Todos los procesos de aplicación, incluidas las transacciones comerciales y el desarrollo ABAP, se ejecutan en la capa de aplicación. La capa de presentación maneja la interacción con los usuarios del sistema. El acceso en línea a los servidores de aplicaciones ABAP puede realizarse a través de una interfaz gráfica propietaria, que se denomina "GUI de SAP", o a través de un navegador web.

Capas de software

El software ABAP se implementa en componentes de software. Algunos ejemplos son:

Actas

Una transacción en la terminología SAP es la ejecución de un programa. La forma normal de ejecutar código ABAP en el sistema SAP es ingresando un código de transacción (por ejemplo, VA01 es el código de transacción para "Crear orden de venta"). Los códigos de transacción comunes (códigos T) utilizados por el desarrollador ABAP son SE38, SE09, SE10, SE24, SE11, SE16N, SE80, SE37, ST22, etc. [4] [5] Las transacciones se pueden llamar a través de menús definidos por el sistema o específicos del usuario, basados ​​en roles. También se pueden iniciar ingresando el código de transacción directamente en un campo de comando, que está presente en cada pantalla SAP. Las transacciones también se pueden invocar programáticamente por medio de las instrucciones ABAP CALL TRANSACTION y LEAVE TO TRANSACTION. La noción general de una transacción se denomina Unidad lógica de trabajo (LUW) en la terminología SAP.

Tipos de programas ABAP

Al igual que en otros lenguajes de programación, un programa ABAP es una unidad ejecutable o una biblioteca, que proporciona código reutilizable a otros programas y no es ejecutable de forma independiente.

ABAP distingue dos tipos de programas ejecutables:

Los informes siguen un modelo de programación relativamente simple en el que el usuario introduce opcionalmente un conjunto de parámetros (por ejemplo, una selección de un subconjunto de datos) y el programa utiliza los parámetros de entrada para generar un informe en forma de lista interactiva. El término "informe" puede ser un tanto engañoso, ya que los informes también pueden diseñarse para modificar datos; la razón por la que estos programas se denominan informes es la naturaleza "orientada a listas" del resultado que generan.

Los grupos de módulos definen patrones más complejos de interacción del usuario mediante una colección de pantallas. El término "pantalla" se refiere a la imagen física real que ve el usuario. Cada pantalla también tiene una "lógica de flujo", que se refiere al código ABAP invocado implícitamente por las pantallas, que se divide en una sección "PBO" (Proceso antes de la salida) y "PAI" (Proceso después de la entrada). En la documentación de SAP, el término "dynpro" (programa dinámico) se refiere a la combinación de la pantalla y su lógica de flujo.

Los tipos de programas no ejecutables son:

Los programas ABAP se componen de oraciones individuales (declaraciones). La primera palabra de una declaración se denomina palabra clave ABAP. Cada declaración termina con un punto. Las palabras siempre deben estar separadas por al menos un espacio. Las declaraciones se pueden sangrar como se desee. Con palabras clave, adiciones y operandos, el sistema de ejecución ABAP no distingue entre mayúsculas y minúsculas.

Las sentencias pueden extenderse más allá de una línea. Puede tener varias sentencias en una sola línea (aunque no se recomienda). Las líneas que comienzan con un asterisco * en la primera columna son reconocidas como líneas de comentario por el sistema de tiempo de ejecución ABAP y se ignoran. Las comillas dobles (") indican que el resto de una línea es un comentario.

Entorno de desarrollo

Existen dos formas posibles de desarrollar en ABAP. La disponibilidad depende de la versión del sistema ABAP.

Banco de trabajo ABAP

El Workbench ABAP es parte del sistema ABAP y se accede a él a través de SAP GUI . Contiene diferentes herramientas para editar programas. Las más importantes son (los códigos de transacción se muestran entre paréntesis):

El Navegador de objetos (transacción SE80) proporciona una única interfaz integrada en estas diversas herramientas.

Herramientas de desarrollo ABAP

Las herramientas de desarrollo ABAP ( ADT ), formalmente conocidas como "ABAP en Eclipse", son un conjunto de complementos para el IDE de Eclipse para desarrollar objetos ABAP. [6]

En este escenario, el desarrollador ABAP instala las herramientas necesarias en su computadora y trabaja localmente, mientras se realiza una sincronización continua con el backend.

Diccionario ABAP

El diccionario ABAP contiene todos los metadatos sobre los datos del sistema SAP. Está estrechamente vinculado con el Workbench ABAP, ya que cualquier referencia a los datos (por ejemplo, una tabla, una vista o un tipo de datos) se obtendrá del diccionario. Los desarrolladores utilizan las transacciones del diccionario ABAP (directamente o a través del Navegador de objetos SE80 dentro del Workbench ABAP) para visualizar y mantener estos metadatos.

Cuando se modifica un objeto de diccionario, un programa que hace referencia al objeto modificado hará referencia automáticamente a la nueva versión la próxima vez que se ejecute el programa. Como ABAP es interpretado, no es necesario volver a compilar los programas que hacen referencia a objetos de diccionario modificados.

A continuación se presenta una breve descripción de los tipos más importantes de objetos de diccionario:

Sintaxis ABAP

Esta breve descripción de la sintaxis ABAP comienza con el omnipresente "Hola" .

Hola Mundo

INFORME DE PRUEBA . ESCRIBE '¡Hola, mundo!' .  

Este ejemplo contiene dos instrucciones: REPORTy WRITE. El programa muestra una lista en la pantalla. En este caso, la lista consta de una sola línea: "¡Hola, mundo!". La REPORTinstrucción indica que este programa es un informe. Este programa podría ser un grupo de módulos después de reemplazar la REPORTinstrucción por PROGRAM.

Declaraciones encadenadas

Las sentencias consecutivas con una primera parte idéntica (la más a la izquierda) se pueden combinar en una sentencia "encadenada" utilizando el operador de cadena :. La parte común de las sentencias se escribe a la izquierda de los dos puntos, las partes diferentes se escriben a la derecha de los dos puntos y se separan con comas. El operador de dos puntos se adjunta directamente al token precedente, sin un espacio (lo mismo se aplica a las comas en la lista de tokens, como se puede ver en los ejemplos a continuación).

El encadenamiento se utiliza a menudo en WRITEdeclaraciones. WRITEacepta solo un argumento, por lo que si, por ejemplo, desea mostrar tres campos de una estructura llamada FLIGHTINFO, deberá codificar:

ESCRIBIR INFORMACIÓN DEL VUELO - CIUDADDESDE . ESCRIBIR INFORMACIÓN DEL VUELO - CIUDADA . ESCRIBIR INFORMACIÓN DEL VUELO - AEROPUERTO .   

Al encadenar las declaraciones se obtiene un formato más legible e intuitivo:

ESCRIBE : INFORMACIÓN DEL VUELO - CIUDAD DESDE , INFORMACIÓN DEL VUELO - CIUDADHACIA , INFORMACIÓN DEL VUELO - AEROPUERTO .   

En una declaración en cadena, la primera parte (antes de los dos puntos) no se limita únicamente al nombre de la declaración. La parte común completa de las declaraciones consecutivas se puede colocar antes de los dos puntos. Ejemplo:

REEMPLAZAR 'A' CON 'B' EN EL APELLIDO . REEMPLAZAR 'A' CON 'B' EN EL NOMBRE . REEMPLAZAR 'A' CON 'B' EN EL NOMBRE DE LA CIUDAD .               

Podría reescribirse en forma encadenada como:

REEMPLAZA 'A' CON 'B' EN : APELLIDO , NOMBRE , NOMBRE DE CIUDAD .       

Comentarios

ABAP tiene dos formas de definir texto como comentario :

Ejemplo:

**************************************** ** Programa: RESERVAS ** ** Autor: Joe Byte, 07-Jul-2007 ** ******************************************INFORME DE RESERVAS . * Leer reservas de vuelos de la base de datos SELECT * FROM FLIGHTINFO WHERE CLASS = 'Y' "Y = económica OR CLASS = 'C' . "C = ejecutiva (...)             

Espacios

El código en ABAP es sensible a los espacios en blanco.

x = a + b ( c ).  

asigna a la variable x la subcadena de la variable a, empezando por b con la longitud definida por la variable c.

x = a + b ( c ).      

asigna a la variable x la suma de la variable a y el resultado de la llamada al método b con el parámetro c.

Declaraciones ABAP

A diferencia de lenguajes como C/C++ o Java, que definen un conjunto limitado de sentencias específicas del lenguaje y proporcionan la mayor parte de la funcionalidad a través de bibliotecas, ABAP contiene una gran cantidad de sentencias integradas. Estas sentencias tradicionalmente utilizaban estructuras similares a oraciones y evitaban los símbolos, lo que hacía que los programas ABAP fueran relativamente verbosos. Sin embargo, en versiones más recientes del lenguaje ABAP, es posible un estilo más conciso. [7]

Un ejemplo de sintaxis basada en declaraciones (cuya sintaxis se origina en COBOL) versus sintaxis basada en expresiones (como en C/Java):

AGREGAR IMPUESTO AL PRECIO . * es equivalente a PRECIO = PRECIO + IMPUESTO .        

Tipos de datos y variables

ABAP proporciona un conjunto de tipos de datos integrados. Además, cada estructura, tabla, vista o elemento de datos definido en el Diccionario ABAP se puede utilizar para escribir una variable. Asimismo, las clases de objetos y las interfaces se pueden utilizar como tipos.

Los tipos de datos incorporados son:

Las variables o constantes de fecha (tipo D) contienen el número de días transcurridos desde el 1 de enero del año 1 d. C. Las variables o constantes de hora (tipo T) contienen el número de segundos transcurridos desde la medianoche. Una característica especial de ambos tipos es que se puede acceder a ellas tanto como números enteros como como cadenas de caracteres (con formato interno "AAAAMMDD" para fechas y "hhmmss" para horas), que se pueden utilizar para el manejo de fecha y hora. Por ejemplo, el fragmento de código siguiente calcula el último día del mes anterior (nota: SY-DATUM es una variable definida por el sistema que contiene la fecha actual):

DATOS LAST_EOM TIPO D . "última fecha de fin de mes   * Comienza desde la fecha de hoy LAST_EOM = SY - DATUM . * Establece los caracteres 6 y 7 (relativo a 0) de la cadena AAAAMMDD en "01", * dando como resultado el primer día del mes actual LAST_EOM + 6 ( 2 ) = '01' . * Resta un día LAST_EOM = LAST_EOM - 1 .            ESCRIBIR : 'El último día del mes anterior fue' , LAST_EOM .  

Todas las variables ABAP deben declararse explícitamente para poder utilizarse. Pueden declararse con instrucciones individuales y tipificación explícita o, desde ABAP 7.40, en línea con tipificación inferida .

Declaración tipificada explícitamente

Normalmente, todas las declaraciones se colocan en la parte superior del módulo de código (programa, subrutina, función) antes de la primera declaración ejecutable; esta colocación es una convención y no una regla de sintaxis obligatoria. La declaración consta del nombre, el tipo, la longitud (cuando corresponda), modificadores adicionales (por ejemplo, la cantidad de decimales implícitas para un campo decimal empaquetado) y, opcionalmente, un valor inicial:

* Tipos primitivos: DATOS : TIPO DE CONTADOR I , TIPO DE VALIDEZ I VALOR 60 , TASA DE IMPUESTO ( 3 ) TIPO P DECIMALES 1 , APELLIDO ( 20 ) TIPO C , TIPO DE DESCRIPCIÓN CADENA .              * Tipos de diccionario: DATOS : TIPO DE ORIGEN PAÍS .  * Tabla interna: DATOS : T_VUELOS TIPO TABLA DE FLIGHTINFO , T_LOOKUP TIPO TABLA HASH DE FLT_LOOKUP .      * Objetos: DATOS : TIPO DE RESERVA REF A CL_FLT_BOOKING .   

Observe el uso de dos puntos para encadenar declaraciones DATA consecutivas.

Declaración en línea

Desde ABAP 7.40, [8] las variables se pueden declarar en línea con la siguiente sintaxis:

DATOS ( nombre_variable ) = 'VALOR' .  

Para este tipo de declaración debe ser posible inferir el tipo estáticamente, por ejemplo, mediante la firma del método o la estructura de la tabla de la base de datos.

Esta sintaxis también es posible en sentencias OpenSQL:

SELECCIONAR * DE ekko en @ DATOS ( lt_ekko ) DONDE ebeln EQ @ lv_ebeln .         

Objetos ABAP

El lenguaje ABAP soporta la programación orientada a objetos , a través de una característica conocida como “Objetos ABAP”. [9] Esto ayuda a simplificar las aplicaciones y hacerlas más controlables.

Los objetos ABAP son totalmente compatibles con el lenguaje existente, por lo que se pueden utilizar sentencias y unidades de modularización existentes en programas que utilizan objetos ABAP, y también se pueden utilizar objetos ABAP en programas ABAP existentes. La comprobación de sintaxis es más estricta en los programas con objetos ABAP, y algunas formas sintácticas (normalmente las más antiguas) de determinadas sentencias no están permitidas.

Los objetos forman una cápsula que combina el carácter con el comportamiento respectivo. Los objetos deberían permitir a los programadores mapear un problema real y su solución de software propuesta de forma individual. Los objetos típicos en un entorno empresarial son, por ejemplo, "Cliente", "Pedido" o "Factura". A partir de la versión 3.1, el Repositorio de objetos empresariales (BOR) de SAP Web Application Server ABAP contiene ejemplos de dichos objetos. El modelo de objetos BOR se integrará en los objetos ABAP en la próxima versión migrando los tipos de objetos BOR a la biblioteca de clases ABAP. Una introducción completa a la orientación a objetos en su conjunto iría mucho más allá de los límites de esta introducción a los objetos ABAP. Esta documentación presenta una selección de términos que se utilizan universalmente en la orientación a objetos y que también aparecen en los objetos ABAP. En las secciones siguientes, se continúa discutiendo con más detalle cómo se utilizan estos términos en los objetos ABAP. El final de esta sección contiene una lista de lecturas adicionales, con una selección de títulos sobre la orientación a objetos.

En la programación orientada a objetos, los objetos normalmente tienen las siguientes propiedades:

Vistas de CDS

Los servicios de datos básicos ABAP (ABAP CDS) son la implementación del concepto general de CDS para AS ABAP. ABAP CDS permite definir modelos de datos semánticos en la base de datos central del servidor de aplicaciones. En AS ABAP, estos modelos se pueden definir independientemente del sistema de base de datos. Las entidades de estos modelos proporcionan funciones de acceso mejoradas en comparación con las tablas y vistas de bases de datos existentes definidas en el diccionario ABAP, lo que permite optimizar las aplicaciones basadas en Open SQL. Esto es particularmente evidente cuando un AS ABAP utiliza una base de datos SAP HANA, ya que sus características en memoria se pueden implementar de manera óptima.

Los modelos de datos se definen mediante el lenguaje de definición de datos (DDL) y el lenguaje de control de datos (DCL) proporcionados en ABAP CDS en la sintaxis ABAP CDS. Los objetos definidos mediante estos lenguajes se integran en el diccionario ABAP y se gestionan también allí.

El código fuente de CDS solo se puede programar en las herramientas de desarrollo ABAP (ADT) basadas en Eclipse. El lenguaje de definición de datos (DDL) y el lenguaje de control de datos (DCL) utilizan editores diferentes. [10]

Características

[11]

Tablas internas en ABAP

Las tablas internas son una característica importante del lenguaje ABAP. Una tabla interna se define de forma similar a un vector de estructuras en C++ o a un vector de objetos en Java. La principal diferencia con estos lenguajes es que ABAP proporciona una colección de instrucciones para acceder y manipular fácilmente el contenido de las tablas internas. Tenga en cuenta que ABAP no admite matrices; la única forma de definir un objeto de datos de varios elementos es utilizar una tabla interna. [ cita requerida ]

Las tablas internas son una forma de almacenar conjuntos de datos variables de una estructura fija en la memoria de trabajo de ABAP y proporcionan la funcionalidad de matrices dinámicas. Los datos se almacenan fila por fila, donde cada fila tiene la misma estructura.

Las tablas internas se utilizan preferentemente para almacenar y dar formato al contenido de las tablas de bases de datos desde dentro de un programa. Además, las tablas internas en conexión con las estructuras son un medio importante para definir estructuras de datos complejas en un programa ABAP.

El siguiente ejemplo define una tabla interna con dos campos con el formato de la tabla de base de datos VBRK.

* Primero defina el tipo estructurado TIPOS : COMIENZO DE t_vbrk , TIPO VBELN VBRK - VBELN , TIPO ZUONR VBRK - ZUONR , FIN DE t_vbrk .        * Ahora defina la tabla interna de nuestro tipo definido t_vbrk DATOS : gt_vbrk TIPO TABLA ESTÁNDAR DE t_vbrk , gt_vbrk_2 TIPO TABLA ESTÁNDAR DE t_vbrk . "es fácil definir más tablas        * Si es necesario, definir la estructura (línea de la tabla interna) * Definición con tipo o con referencia a la tabla interna: DATOS : gs_vbrk TIPO t_vbrk , gs_vbrk_2 COMO LÍNEA DE gt_vbrk_2 .      * También puede definir el tipo de tabla si es necesario TIPOS tt_vbrk TIPO TABLA ESTÁNDAR DE t_vbrk .   

Historia

La siguiente lista solo ofrece una descripción general de algunos hitos importantes en la historia del lenguaje ABAP. Para obtener más detalles, consulte ABAP: cambios específicos de la versión.

Véase también

Referencias

  1. ^ "Cambios en las versiones 7.5x". help.sap.com . Archivado desde el original el 2020-10-24 . Consultado el 2024-09-03 .
  2. ^ ""Historial ABAP". SAP-technical.com". Archivado desde el original el 2017-11-15 . Consultado el 2010-08-09 .
  3. ^ "Matriz de disponibilidad de productos - PAM". scn.sap.com . 28 de septiembre de 2016. Archivado desde el original el 28 de septiembre de 2016 . Consultado el 3 de septiembre de 2024 .
  4. ^ "Lista de códigos de transacción". Portal de ayuda de SAP . Consultado el 9 de septiembre de 2023 .
  5. ^ "Lista completa de códigos de transacción en S4/HANA - docsfortec.com". docsfortec.com . Archivado desde el original el 2024-05-14 . Consultado el 2024-05-14 .
  6. ^ "Comience a utilizar las herramientas de desarrollo ABAP para SAP NetWeaver | Blogs de SAP". 19 de junio de 2012. Archivado desde el original el 28 de junio de 2015 . Consultado el 15 de junio de 2015 .
  7. ^ "Ejemplo de un programa ABAP con muchas expresiones". Archivado desde el original el 19 de junio de 2015. Consultado el 19 de junio de 2015 .
  8. ^ "DATOS - Declaración en línea". help.sap.com .
  9. ^ "Clases", SAP NetWeaver 7.0 , archivado desde el original el 28 de noviembre de 2009 , consultado el 10 de agosto de 2009
  10. ^ "Documentación de palabras clave ABAP". Archivado desde el original el 2019-07-11 . Consultado el 2019-07-11 .
  11. ^ "Matriz de características ABAP de Core Data Services (CDS) | Blogs de SAP". 2 de febrero de 2015. Archivado desde el original el 11 de julio de 2019. Consultado el 11 de julio de 2019 .

Enlaces externos