Articulo de referencia

ABAP

{{Cite web |title=Changes in Releases 7.5x |url=https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/index.htm?file=abennews-75.htm |url-status=live |archive-url=http...

ABAP (Advanced Business Application Programming, originalmente Allgemeiner Berichts-Aufbereitungs-Prozessor , que en alemán significa "procesador general de preparación de informes" [ 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 SAP NetWeaver Application Server , 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 para aplicaciones, 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 empresariales para mainframes destinadas a la gestión de materiales y la contabilidad financiera y de gestión.

ABAP era originalmente un acrónimo de Allgemeiner Berichts - Aufbereitungs - Prozessor ("procesador genérico de preparación de informes" en alemán), pero más tarde se renombró como Advanced Business Application Programming ( ABAP ) . 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 del nivel básico de la base de datos, y que admite todas las plataformas, lenguajes y unidades.

El lenguaje ABAP fue utilizado originalmente por desarrolladores para crear la plataforma SAP R/3 . También se concibió para que los clientes de SAP lo usaran para mejorar sus aplicaciones, permitiéndoles desarrollar informes e interfaces personalizadas mediante programación ABAP. El lenguaje estaba dirigido a usuarios con un perfil técnico y 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. Para 2001, todas las funciones, excepto las más básicas, estaban escritas en ABAP. En 1999, SAP lanzó una extensión orientada a objetos para ABAP llamada ABAP Objects, junto con la versión 4.6 de R/3.

La plataforma de desarrollo actual de SAP, NetWeaver, es compatible tanto con ABAP como con Java .

ABAP ofrece 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 migrarse 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 (la compatibilidad con Informix se interrumpió en la versión 7.00 de SAP Basis). [ 3 ]

Entorno de ejecución ABAP

Todos los programas ABAP residen en 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 visualizar y editar con las herramientas de ABAP Workbench; y código generado, una representación binaria comparable al 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 se encarga de procesar las sentencias ABAP, controlar la lógica de flujo de las pantallas y responder a eventos (como cuando un usuario hace clic en un botón de la pantalla); en este sentido, puede considerarse una máquina virtual comparable a la máquina virtual 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 comprendidas por el sistema de gestión de bases de datos subyacente ("Native SQL"). La interfaz de base de datos gestiona toda la comunicación con la base de datos relacional en nombre de los programas ABAP; además, incluye funciones adicionales como el almacenamiento en búfer de tablas y datos de acceso frecuente en la memoria local del servidor de aplicaciones.

Sistemas y entornos SAP

Todos los datos y el software de SAP se ejecutan dentro 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 dicha base de datos. Un sistema SAP contiene al menos una instancia, pero puede contener más, principalmente por motivos de dimensionamiento y rendimiento. En un sistema con múltiples instancias, los mecanismos de balanceo de carga garantizan que la carga se distribuya uniformemente entre los servidores de aplicaciones disponibles.

Las instalaciones del servidor de aplicaciones web ( entornos ) suelen constar de tres sistemas: uno para desarrollo, otro para pruebas y control de calidad, y otro para producción. El entorno puede contener más sistemas (por ejemplo, sistemas separados para pruebas unitarias y pruebas de preproducción) o menos (por ejemplo, solo desarrollo y producción, sin control de calidad independiente); sin embargo, la configuración más común es de tres sistemas. Los programas ABAP se crean y se someten a las primeras pruebas en el sistema de desarrollo. Posteriormente, se distribuyen a los demás sistemas del entorno. Estas acciones se realizan bajo el control del Sistema de Cambios y Transportes (CTS), que se encarga del control de concurrencia (por ejemplo, impedir que dos desarrolladores modifiquen el mismo código simultáneamente), la gestión de versiones y el despliegue 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 aplicación contiene la instancia o instancias del sistema. Todos los procesos de la aplicación, incluidas las transacciones comerciales y el desarrollo ABAP, se ejecutan en la capa de aplicación. La capa de presentación gestiona 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, denominada "SAP GUI", o a través de un navegador web .

Capas de software

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

  • SAP_BASIS es la capa base técnica que se requiere en todo sistema ABAP.
  • SAP_ABA contiene las funcionalidades necesarias para todo tipo de aplicaciones empresariales, como la gestión de socios comerciales y direcciones.
  • SAP_UI proporciona la funcionalidad para crear aplicaciones SAP UI5.
  • BBPCRM es un ejemplo de aplicación empresarial, en este caso la aplicación CRM.

Actas

Una transacción en la terminología de SAP es la ejecución de un programa. La forma habitual de ejecutar código ABAP en el sistema SAP es introduciendo un código de transacción (por ejemplo, VA01 es el código de transacción para "Crear pedido de ventas"). Los códigos de transacción (T-codes) comunes utilizados por los desarrolladores 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 introduciendo el código de transacción directamente en un campo de comandos, que está presente en todas las pantallas de SAP. Las transacciones también se pueden invocar programáticamente mediante las sentencias ABAP CALL TRANSACTIONy La noción general de una transacción se denomina Unidad Lógica de Trabajo (LUW) en la terminología de SAP.LEAVETOTRANSACTION.

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 se puede ejecutar de forma independiente.

ABAP distingue dos tipos de programas ejecutables:

  • Informes
  • grupos de módulos

Los informes siguen un modelo de programación relativamente sencillo: el usuario introduce opcionalmente un conjunto de parámetros (por ejemplo, una selección sobre un subconjunto de datos) y el programa utiliza estos parámetros para generar un informe en forma de lista interactiva. El término «informe» puede resultar algo confuso, ya que también pueden diseñarse para modificar datos; la razón por la que estos programas se denominan informes es la naturaleza de lista de la información que generan.

Los módulos definen patrones de interacción de usuario más complejos mediante una colección de pantallas. El término «pantalla» se refiere a la imagen física 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, dividido en una sección «PBO» (Procesamiento antes de la salida) y una sección «PAI» (Procesamiento 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:

  • Módulos INCLUDE : estos se incluyen en la unidad que los llama durante la generación; a menudo se utilizan para subdividir programas grandes.
  • Grupos de subrutinas : estos contienen subrutinas ABAP (bloques de código encerrados entre sentencias FORM/ENDFORM e invocados con PERFORM).
  • Grupos de funciones : se trata de bibliotecas de módulos de funciones autónomos (encerrados entre FUNCTION/ENDFUNCTION e invocados con CALL FUNCTION).
  • Clases de objetos : son similares a las clases e interfaces de Java; las primeras definen un conjunto de métodos y atributos, mientras que las segundas contienen definiciones de métodos "vacíos", para los cuales cualquier clase que implemente la interfaz debe proporcionar código explícito.
  • Interfaces – Igual que las clases de objetos
  • Grupos de tipos : definen colecciones de tipos de datos y constantes.

Los programas ABAP se componen de sentencias individuales. La primera palabra de una sentencia se denomina palabra clave ABAP. Cada sentencia termina con un punto. Las palabras deben estar separadas por al menos un espacio. Las sentencias pueden tener la sangría que se desee. El sistema de ejecución ABAP no distingue entre mayúsculas y minúsculas en el caso de las palabras clave, las sumas y los operandos.

Las instrucciones pueden extenderse más allá de una línea. Se pueden incluir varias instrucciones 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 ejecución ABAP y se ignoran. Las comillas dobles (") indican que el resto de la 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.

Entorno de trabajo ABAP

El ABAP Workbench forma 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):

  • Editor ABAP para escribir y editar informes, grupos de módulos, includes y grupos de subrutinas (SE38)
  • Diccionario ABAP para el procesamiento de definiciones de tablas de base de datos y la recuperación de tipos globales (SE11)
  • Diseñador de menús para diseñar la interfaz de usuario ( barra de menú , barra de herramientas estándar , barra de herramientas de la aplicación, asignación de teclas de función ) (SE41)
  • Screen Painter , un generador de pantallas para diseñar pantallas y lógica de flujo (SE51)
  • Generador de funciones para módulos de función (SE37)
  • Generador de clases para clases e interfaces de objetos ABAP (SE24)

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

Herramientas de desarrollo ABAP

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

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

Diccionario ABAP

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

Cuando se modifica un objeto del diccionario, un programa que haga referencia a dicho objeto hará referencia automáticamente a la nueva versión la próxima vez que se ejecute. Dado que ABAP es un lenguaje interpretado, no es necesario recompilar los programas que hacen referencia a objetos del diccionario modificados.

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

  • Las tablas son contenedores de datos que existen en la base de datos relacional subyacente. En la mayoría de los casos, existe una relación uno a uno entre la definición de una tabla en el Diccionario ABAP y la definición de esa misma tabla en la base de datos (mismo nombre, mismas columnas). Estas tablas se conocen como "transparentes". Existen dos tipos de tablas no transparentes: las tablas "agrupadas" existen como entidades independientes en el Diccionario ABAP, pero se agrupan en grandes tablas físicas ("grupos") a nivel de base de datos. Las tablas agrupadas suelen ser tablas pequeñas que contienen, por ejemplo, datos de configuración. Las tablas "agrupadas en clúster" se agrupan físicamente en "clústeres" según sus claves primarias; por ejemplo, supongamos que una tabla agrupada H contiene datos de "encabezado" sobre facturas de venta, mientras que otra tabla agrupada D contiene las líneas de factura. Cada fila de H se agruparía físicamente con las filas relacionadas de D dentro de una "tabla de clúster" en la base de datos. Este tipo de agrupación en clústeres, diseñada para mejorar el rendimiento, también existe como funcionalidad nativa en algunos sistemas de bases de datos relacionales, aunque no en todos.
  • Los índices proporcionan un acceso más rápido a los datos de las tablas para las condiciones de selección más utilizadas. Cada tabla de SAP tiene un índice primario, que se crea implícitamente junto con la tabla y se utiliza para garantizar la unicidad de la clave primaria. Se pueden definir índices adicionales (únicos o no únicos); estos se denominan índices secundarios.
  • Las vistas tienen la misma función que en la base de datos subyacente: definen subconjuntos de columnas (y/o filas) de una o, mediante una condición de unión, de varias tablas. Dado que las vistas son tablas virtuales (hacen referencia a datos de otras tablas), no ocupan mucho espacio.
  • Las estructuras son tipos de datos complejos que constan de múltiples campos (comparables a las estructuras en C/C++).
  • Los elementos de datos proporcionan el contenido semántico para un campo de tabla o estructura. Por ejemplo, docenas de tablas y estructuras podrían contener un campo que indique el precio (de un producto terminado, materia prima, recurso, etc.). Todos estos campos podrían tener el mismo elemento de datos "PRECIO".
  • Los dominios definen las características estructurales de un elemento de datos. Por ejemplo, el elemento de datos PRECIO podría tener un dominio asignado que lo defina como un campo numérico con dos decimales. Los dominios también pueden contener información semántica al proporcionar una lista de valores posibles. Por ejemplo, un dominio "BOOLEAN" podría definir un campo de tipo "carácter" con una longitud de 1 y que no distinga entre mayúsculas y minúsculas, pero que además restringiría los valores posibles a "V" (verdadero) o "F" (falso).
  • Las ayudas de búsqueda (sucesoras de los ahora obsoletos "códigos de coincidencia") proporcionan estrategias de búsqueda avanzadas cuando un usuario desea ver los posibles valores de un campo de datos. El entorno de ejecución ABAP ofrece asistencia implícita (al mostrar todos los valores del campo, por ejemplo, todos los números de cliente existentes), pero las ayudas de búsqueda pueden utilizarse para refinar esta funcionalidad, por ejemplo, permitiendo búsquedas de clientes por ubicación geográfica, calificación crediticia, etc.
  • Los objetos de bloqueo implementan el bloqueo a nivel de aplicación al modificar los datos.

Sintaxis ABAP

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

Hola Mundo

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

Este ejemplo contiene dos instrucciones: REPORTy WRITE. El programa muestra una lista en la pantalla. En este caso, la lista consta de la única 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 con PROGRAM.

Declaraciones encadenadas

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

El encadenamiento se usa a menudo en WRITElas sentencias. WRITEAcepta solo un argumento, por lo que si, por ejemplo, quisiera mostrar tres campos de una estructura llamada FLIGHTINFO, tendría que codificar:

ESCRIBIR INFORMACIÓN DE VUELO - CIUDAD DE ORIGEN . ESCRIBIR INFORMACIÓN DE VUELO - CIUDAD DE DESTINO . ESCRIBIR INFORMACIÓN DE VUELO - AEROPUERTO DE DESTINO .

Al encadenar las instrucciones se obtiene una forma más legible e intuitiva:

ESCRIBIR : INFORMACIÓN DE VUELO - CIUDAD DE ORIGEN , INFORMACIÓN DE VUELO - CIUDAD DE ORIGEN , INFORMACIÓN DE VUELO - AEROPUERTO .

En una instrucción encadenada, la primera parte (antes de los dos puntos) no se limita solo al nombre de la instrucción. Toda la parte común de las instrucciones consecutivas puede colocarse antes de los dos puntos. Ejemplo:

REEMPLAZAR 'A' POR 'B' EN APELLIDO . REEMPLAZAR 'A' POR 'B' EN NOMBRE . REEMPLAZAR 'A' POR 'B' EN CIUDAD .

podría reescribirse en forma encadenada como:

REEMPLAZAR 'A' POR 'B' EN : APELLIDO , NOMBRE , CIUDAD .

Comentarios

ABAP tiene dos formas de definir un texto como comentario :

  • Un asterisco (*) en la columna más a la izquierda de una línea convierte toda la línea en un comentario.
  • Una comilla doble ("") en cualquier parte de una línea convierte el resto de esa línea en un comentario.

Ejemplo:

*************************************** ** Programa: RESERVAS ** ** Autor: Joe Byte, 07-jul-2007 ** ***************************************REPORTAR RESERVAS .* Leer reservas de vuelos de la base de datos SELECT * FROM FLIGHTINFO WHERE CLASS = 'Y' "Y = clase económica OR CLASS = 'C' . "C = clase 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, comenzando desde 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 instrucciones específicas y proporcionan la mayor parte de la funcionalidad mediante bibliotecas, ABAP contiene una gran cantidad de instrucciones integradas. Estas instrucciones tradicionalmente utilizaban estructuras similares a oraciones y evitaban los símbolos, lo que hacía que los programas ABAP fueran relativamente extensos. Sin embargo, en versiones más recientes del lenguaje ABAP, es posible un estilo más conciso. [ 7 ]

Un ejemplo de sintaxis basada en sentencias (cuya sintaxis tiene su origen en COBOL) frente a la sintaxis basada en expresiones (como en C/Java):

AÑADIR 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, cualquier estructura, tabla, vista o elemento de datos definido en el Diccionario ABAP puede utilizarse para tipificar una variable. Asimismo, las clases de objetos y las interfaces pueden utilizarse como tipos.

Los tipos de datos integrados 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 tiempo (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 cadenas de caracteres (con formato interno "AAAAMMDD" para fechas y "hhmmss" para horas), lo que permite su uso para el manejo de fechas y horas. Por ejemplo, el siguiente fragmento de código 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 (relativos a 0) de la cadena YYYYMMDD a "01", * dando 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 mediante sentencias individuales con tipado explícito o, desde ABAP 7.40, en línea con tipado inferido .

Declaración con tipado explícito

Normalmente, todas las declaraciones se colocan al principio del módulo de código (programa, subrutina, función) antes de la primera instrucción ejecutable; esta ubicació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, el número de decimales implícitos 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 IMPUESTOS ( 3 ) TIPO P DECIMALES 1 , APELLIDO ( 20 ) TIPO C , DESCRIPCIÓN TIPO CADENA .* Tipos de diccionario: DATOS : ORIGEN TIPO PAÍS .* Tabla interna: DATA : T_FLIGHTS TYPE TABLE OF FLIGHTINFO , T_LOOKUP TYPE HASHED TABLE OF FLT_LOOKUP .* Objetos: DATOS : TIPO DE RESERVA REF A CL_FLT_BOOKING .

Observe el uso de los dos puntos para encadenar sentencias 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 de forma estática, 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 las sentencias OpenSQL:

SELECT * FROM ekko into @ DATA ( lt_ekko ) WHERE ebeln EQ @ lv_ebeln .

Objetos ABAP

El lenguaje ABAP admite 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.

ABAP Objects es totalmente compatible con el lenguaje existente, por lo que se pueden usar sentencias y unidades de modularización existentes en programas que utilizan ABAP Objects, y también se puede usar ABAP Objects en programas ABAP existentes. La verificación de sintaxis es más estricta en los programas ABAP Objects, y algunas formas sintácticas (generalmente las más antiguas) de ciertas sentencias no están permitidas.

Los objetos forman una cápsula que combina el carácter con el comportamiento correspondiente. Los objetos deben permitir a los programadores relacionar un problema real con su solución de software propuesta de forma unívoca. 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 de Negocio (BOR) de SAP Web Application Server ABAP incluye ejemplos de dichos objetos. El modelo de objetos BOR se integrará en ABAP Objects en la próxima versión mediante la migración de 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 ABAP Objects. Esta documentación presenta una selección de términos de uso universal en la orientación a objetos, que también aparecen en ABAP Objects. En secciones posteriores, se analiza con mayor detalle cómo se utilizan estos términos en ABAP Objects. Al final de esta sección se incluye una lista de lecturas recomendadas, con una selección de títulos sobre orientación a objetos.

  • Los objetos son instancias de clases. Contienen datos y proporcionan servicios. Los datos conforman los atributos del objeto. Los servicios se conocen como métodos (también llamados operaciones o funciones). Por lo general, los métodos operan sobre datos privados (los atributos o el estado del objeto), que solo son visibles para los propios métodos del objeto. Por lo tanto, los atributos de un objeto no pueden ser modificados directamente por el usuario, sino únicamente por los métodos del objeto. Esto garantiza la consistencia interna del objeto.
  • Las clases describen objetos. Desde un punto de vista técnico, los objetos son instancias de una clase que se ejecutan en tiempo real. En teoría, se pueden crear tantos objetos como se desee basados ​​en una sola clase. Cada instancia (objeto) de una clase tiene una identidad única y su propio conjunto de valores para sus atributos.
  • Las referencias a objetos son direcciones únicas que se pueden usar para identificar y apuntar a objetos en un programa. Las referencias a objetos permiten acceder a los atributos y métodos de un objeto.

En la programación orientada a objetos, los objetos suelen tener las siguientes propiedades:

  • Encapsulación: Los objetos restringen la visibilidad de sus recursos (atributos y métodos) a otros usuarios. Cada objeto tiene una interfaz que determina cómo otros objetos pueden interactuar con él. La implementación del objeto está encapsulada, es decir, es invisible fuera del propio objeto.
  • Herencia: Se puede utilizar una clase existente para derivar una nueva clase. Las clases derivadas heredan los datos y métodos de la superclase. Sin embargo, pueden sobrescribir los métodos existentes y también añadir otros nuevos.
  • Polimorfismo: Los métodos idénticos (con el mismo nombre) se comportan de manera diferente en distintas clases. En ABAP Objects, el polimorfismo se implementa redefiniendo los métodos durante la herencia y utilizando construcciones llamadas interfaces.

Vistas de CDS

Los Servicios de Datos Centrales de ABAP (ABAP CDS) implementan el 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 ofrecen funciones de acceso mejoradas en comparación con las tablas y vistas de base de datos existentes definidas en el Diccionario ABAP, lo que permite optimizar las aplicaciones basadas en Open SQL. Esto resulta especialmente evidente cuando AS ABAP utiliza una base de datos SAP HANA, ya que sus características en memoria se pueden implementar de forma ó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, utilizando la sintaxis de ABAP CDS. Los objetos definidos con 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 un conjunto de instrucciones para acceder y manipular fácilmente el contenido de las tablas internas. Cabe destacar que ABAP no admite matrices; la única forma de definir un objeto de datos con múltiples elementos es mediante una tabla interna. [ 12 ]

Las tablas internas permiten almacenar conjuntos de datos variables de estructura fija en la memoria de trabajo de ABAP, y ofrecen la funcionalidad de los arreglos dinámicos. Los datos se almacenan fila por fila, donde cada fila tiene la misma estructura.

Las tablas internas se utilizan preferiblemente para almacenar y formatear el contenido de las tablas de la base de datos desde dentro de un programa. Además, las tablas internas, junto con las estructuras, constituyen 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 tabla de base de datos VBRK.

* Primero defina el tipo estructurado TYPES : BEGIN OF t_vbrk , VBELN TYPE VBRK - VBELN , ZUONR TYPE VBRK - ZUONR , END OF t_vbrk .* Ahora defina la tabla interna de nuestro tipo definido t_vbrk DATA : gt_vbrk TYPE STANDARD TABLE OF t_vbrk , gt_vbrk_2 TYPE STANDARD TABLE OF t_vbrk . "Es fácil definir más tablas* Si es necesario, defina la estructura (línea de tabla interna) * Definición con tipo o con referencia a tabla interna: DATA : gs_vbrk TYPE t_vbrk , gs_vbrk_2 LIKE LINE OF gt_vbrk_2 .* También puede definir el tipo de tabla si es necesario TYPES tt_vbrk TYPE STANDARD TABLE OF t_vbrk .

Historia

La siguiente lista ofrece una visión general de algunos hitos importantes en la historia del lenguaje ABAP. Para 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 del original el 24/10/2020 . Consultado el 03/09/2024 .
  2. ""Historia de ABAP". SAP-technical.com " . Archivado del original el 15-04-2011 . Recuperado el 09-08-2010 .
  3. "Matriz de disponibilidad de productos - PAM" . scn.sap.com . 28/09/2016. Archivado del original el 28/09/2016 . Consultado el 03/09/2024 .
  4. "Lista de códigos de transacción" . Portal de ayuda de SAP . Consultado el 09/09/2023 .
  5. "Lista completa de códigos de transacción en S4/HANA - docsfortec.com" . docsfortec.com . Archivado del original el 14 de mayo de 2024. Consultado el 14 de mayo de 2024 .
  6. "Primeros pasos con las herramientas de desarrollo ABAP para SAP NetWeaver | Blogs de SAP" . 19 de junio de 2012. Archivado del original el 28 de junio de 2015. Consultado el 15 de junio de 2015 .
  7. "Ejemplo de un programa ABAP con muchas expresiones" . Archivado del original el 19/06/2015 . Consultado el 19/06/2015 .
  8. "DATOS - Declaración en línea" . help.sap.com .
  9. "Clases" , SAP NetWeaver 7.0 , archivado del original el 28 de noviembre de 2009 , recuperado el 10 de agosto de 2009.
  10. "Documentación de palabras clave ABAP" . Archivado del original el 11 de julio de 2019. Consultado el 11 de julio de 2019 .
  11. "Matriz de características ABAP de Core Data Services (CDS) | Blogs de SAP" . 2 de febrero de 2015. Archivado del original el 11 de julio de 2019. Consultado el 11 de julio de 2019 .
  12. "Tablas internas" . SAP.
  13. http://scn.sap.com/community/abap/blog/2013/07/22/abap-news-for-release-740
  14. https://blogs.sap.com/2014/02/06/abap-news-for-release-740-sp05/
  15. https://blogs.sap.com/2014/02/06/abap-news-for-release-740-sp05/
  16. https://blogs.sap.com/2015/11/27/abap-language-news-for-release-750/
  17. https://blogs.sap.com/2016/11/04/abap-news-for-release-7.51/
  18. https://blogs.sap.com/2017/09/20/abap-news-for-release-7.52-virtual-sorting-of-internal-tables/
  19. https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/abennews-754.htm
  20. https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/abennews-755.htm
  21. https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/abennews-756.htm
  22. https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/abennews-757.htm
  23. https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/abennews-758.htm
  • ABAP — Documentación de palabras clave
  • Portal de ayuda de SAP
  • Debates, blogs, documentos y vídeos sobre desarrollo ABAP en la red de la comunidad SAP (SCN).