ABAP - ABAP
Paradigma | Orientado a objetos , estructurado , imperativo |
---|---|
Diseñada por | SAP SE |
Apareció por primera vez | 1983 |
Lanzamiento estable | 7.55 / 2 de septiembre de 2020
|
Disciplina de mecanografía | Estático , fuerte , seguro , nominativo |
SO | Multiplataforma |
Sitio web | scn |
Implementaciones importantes | |
SAP R / 2 , SAP R / 3 , SAP S / 4HANA | |
Influenciado por | |
Objective-C , COBOL , SQL |
ABAP (Advanced Business Application Programming, originalmente Allgemeiner Berichts-Aufbereitungs-Prozessor , alemán para "procesador de preparación de informes generales") 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 es parte de la plataforma SAP NetWeaver para la construcción de aplicaciones comerciales.
Introducción
ABAP es uno de los muchos lenguajes de cuarta generación específicos de aplicaciones ( 4GL ) 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 establece la integración entre software independiente.
ABAP solía ser una abreviatura de A llgemeiner B erichts- A ufbereitungs- P rozessor , alemán para "procesador de preparación del informe genérico", pero más tarde se renombró al Inglés A dvanced B usiness A plicación P ROGRAMACIÓN . 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 la base de datos, que admite todas las plataformas, idiomas y unidades.
Los desarrolladores utilizaron originalmente el lenguaje ABAP para desarrollar la plataforma SAP R / 3 . También estaba destinado a ser utilizado por los clientes de SAP para mejorar las aplicaciones de SAP: los clientes pueden desarrollar informes e interfaces personalizados con la programación ABAP. El lenguaje estaba dirigido 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 de la computadora 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, 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 con ABAP y Java .
ABAP tiene una abstracción entre las aplicaciones comerciales, el sistema operativo y la base de datos. Esto asegura que las aplicaciones no dependan directamente de un servidor o plataforma de base de datos específicos y que se puedan migrar fácilmente de una plataforma a otra.
SAP Netweaver se ejecuta actualmente en UNIX ( AIX , HP-UX , Solaris , Linux ), Microsoft Windows , i5 / OS en IBM System i (anteriormente iSeries, AS / 400) yz / OS en IBM System z (anteriormente zSeries, S / 390). Las bases de datos admitidas son HANA , SAP ASE (anteriormente Sybase), IBM DB2 , Informix , MaxDB , Oracle y Microsoft SQL Server (la compatibilidad con Informix se suspendió en la versión 7.00 de SAP Basis).
Entorno de tiempo de ejecución ABAP
Todos los programas ABAP residen dentro de la base de datos de SAP. No se almacenan en archivos externos separados como 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 algo comparable con el código de bytes de Java . Los programas ABAP se ejecutan bajo el control del sistema de tiempo de ejecución, que es parte del kernel de SAP. El sistema de tiempo de ejecución es responsable de procesar las declaraciones 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 pantalla); en este sentido, puede verse como una máquina virtual comparable con la máquina virtual Java. Un componente clave del sistema de tiempo de ejecución ABAP es la interfaz de base de datos, que convierte las declaraciones ABAP independientes de la base de datos ("SQL abierto") en declaraciones comprendidas por el DBMS subyacente ("SQL nativo"). La interfaz de la base de datos maneja toda la comunicación con la base de datos relacional en nombre de los programas ABAP; También contiene características 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.
Paisajes y sistemas 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 una o más 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 uniformemente entre los servidores de aplicaciones disponibles.
Las instalaciones del servidor de aplicaciones web ( paisajes ) suelen constar de tres sistemas: uno para el desarrollo; uno para pruebas y aseguramiento de la calidad; y uno para producción. El paisaje puede contener más sistemas (por ejemplo, sistemas separados para pruebas unitarias y pruebas de preproducción) o puede contener menos (por ejemplo, solo desarrollo y producción, sin QA separado); sin embargo, tres es la configuración más común. 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 paisaje. Estas acciones se llevan a cabo bajo el control del Sistema de Cambio y Transporte (CTS), que es responsable del control de concurrencia (p. Ej., Evitar que dos desarrolladores cambien el mismo código al mismo tiempo), la administración de versiones y la implementación de programas en QA y sistemas de 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 o en diferentes máquinas físicas. La capa de la base de datos contiene la base de datos relacional y el software de la base de datos. El 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 de 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 patentada, que se denomina "SAP GUI", o mediante un navegador web.
Capas de software
El software ABAP se implementa en componentes de software. Ejemplos de estos son:
- SAP_BASIS es la capa base técnica requerida que se requiere en todos los sistemas ABAP.
- SAP_ABA contiene funcionalidades que se requieren para todo tipo de aplicaciones comerciales, como la gestión de socios comerciales y direcciones.
- SAP_UI proporciona la funcionalidad para crear aplicaciones SAP UI5.
- BBPCRM es un ejemplo de una aplicación empresarial, en este caso la aplicación CRM
- SAP ABAP es un lenguaje de programación ERP.
Actas
Una transacción en la terminología de SAP es la ejecución de un programa. La forma normal de ejecutar el 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"). Las transacciones se pueden llamar a través de menús basados en roles definidos por el sistema o específicos del usuario. También se pueden iniciar ingresando el código de transacción directamente en un campo de comando, que está presente en cada pantalla de SAP. Las transacciones también se pueden invocar mediante programación mediante 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 de SAP; la forma abreviada de código de transacción es T-code .
Tipos de programas ABAP
Como 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:
- Informes
- Grupos de módulos
Los informes siguen un modelo de programación relativamente simple mediante el cual un usuario ingresa opcionalmente un conjunto de parámetros (por ejemplo, una selección sobre un subconjunto de datos) y el programa luego usa los parámetros de entrada para producir un informe en forma de lista interactiva. El término "informe" puede ser algo 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" de la salida que producen.
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 implícitamente invocado 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:
- INCLUYE módulos
- Piscinas de subrutina
- Grupos de funciones
- Clases de objetos
- Interfaces
- Piscinas de tipo
Un módulo INCLUDE se incluye en el momento de la generación en la unidad de llamada; a menudo se utiliza para subdividir programas grandes.
Los grupos de subrutinas contienen subrutinas ABAP (bloques de código encerrados por declaraciones FORM / ENDFORM e invocados con PERFORM).
Los grupos de funciones son bibliotecas de módulos de funciones autónomos (incluidos en FUNCTION / ENDFUNCTION e invocados con CALL FUNCTION).
Las clases de objetos y las interfaces son similares a las clases y las interfaces de Java; el primero define un conjunto de métodos y atributos, el segundo contiene definiciones de método "vacías", para las cuales cualquier clase que implemente la interfaz debe proporcionar código explícito.
Los grupos de tipos definen colecciones de tipos de datos y constantes.
Los programas ABAP se componen de oraciones (declaraciones) individuales. La primera palabra de una declaración se llama 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 desee. Con palabras clave, adiciones y operandos, el sistema de tiempo de ejecución de ABAP no distingue entre mayúsculas y minúsculas.
Las declaraciones pueden extenderse más allá de una línea. Puede tener varias declaraciones 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
Hay dos formas posibles de desarrollar ABAP. La disponibilidad depende del lanzamiento del sistema ABAP.
Banco de trabajo ABAP
El ABAP Workbench es parte del sistema de ABAP y se accede a través de SAP GUI . Contiene diferentes herramientas para editar programas. Los 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, grupos de inclusiones y de subrutinas (SE38)
- Diccionario ABAP para procesar definiciones de tablas de bases de datos y recuperar tipos globales (SE11)
- Menu Painter 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 para diseñar pantallas y lógica de flujo (SE51)
- Generador de funciones para módulos de funciones (SE37)
- Generador de clases para clases e interfaces de objetos ABAP (SE24)
El navegador de objetos (SE80 transacción) proporciona una interfaz única integrada en estas diversas herramientas.
Herramientas de desarrollo ABAP
Las herramientas de desarrollo ABAP ( ADT ), conocidas formalmente como "ABAP en Eclipse", es un conjunto de complementos para que la plataforma Eclipse desarrolle ABAP.
En este escenario, el desarrollador de ABAP instala las herramientas necesarias en su computadora y trabaja localmente, mientras que se realiza una sincronización continua con el backend.
Diccionario ABAP
El Diccionario ABAP contiene todos los metadatos sobre los datos en el sistema SAP. Está estrechamente vinculado con ABAP Workbench en el sentido de 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 mediante el Navegador de objetos SE80 dentro de ABAP Workbench) para mostrar y mantener estos metadatos.
Cuando se cambia un objeto de diccionario, un programa que hace referencia al objeto cambiado automáticamente hará referencia a la nueva versión la próxima vez que se ejecute el programa. Dado que se interpreta ABAP, no es necesario volver a compilar programas que hagan referencia a objetos de diccionario modificados.
A continuación, se incluye 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 1 a 1 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". Hay dos tipos de tablas no transparentes: las tablas "agrupadas" existen como entidades independientes en el Diccionario ABAP, pero están agrupadas en tablas físicas grandes ("agrupaciones") en el nivel de la base de datos. Las tablas agrupadas suelen ser tablas pequeñas que contienen, por ejemplo, datos de configuración. Las tablas "agrupadas" se agrupan físicamente en "agrupaciones" según sus claves primarias; por ejemplo, suponga que una tabla agrupada H contiene datos de "encabezado" sobre facturas de ventas, mientras que otra tabla agrupada D contiene las partidas de la factura. Cada fila de H se agruparía físicamente con las filas relacionadas de D dentro de una "tabla de grupo" en la base de datos. Este tipo de agrupación en clústeres, que está diseñado para mejorar el rendimiento, también existe como funcionalidad nativa en algunos, aunque no en todos, los sistemas de bases de datos relacionales.
- Los índices brindan acceso acelerado a los datos de la tabla para las condiciones de selección que se usan con frecuencia. Cada tabla de SAP tiene un "índice principal", que se crea implícitamente junto con la tabla y se utiliza para hacer cumplir la singularidad de la clave principal. Se pueden definir índices adicionales (únicos o no únicos); estos se denominan "índices secundarios".
- Las vistas tienen el mismo propósito que en la base de datos subyacente: definen subconjuntos de columnas (y / o filas) a partir de una o, utilizando una condición de combinación, varias tablas. Dado que las vistas son tablas virtuales (se refieren a datos de otras tablas), no ocupan una cantidad sustancial de espacio.
- Las estructuras son tipos de datos complejos que constan de varios campos (comparables a la estructura en C / C ++).
- Los elementos de datos proporcionan el contenido semántico de una tabla o un campo de estructura. Por ejemplo, decenas de tablas y estructuras pueden contener un campo que indique el precio (de un producto terminado, materia prima, recurso, ...). Todos estos campos pueden 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 defina el precio como un campo numérico con dos decimales. Los dominios también pueden llevar contenido semántico al proporcionar una lista de valores posibles. Por ejemplo, un dominio "BOOLEANO" podría definir un campo de tipo "carácter" con longitud 1 y no distingue entre mayúsculas y minúsculas, pero también restringiría los valores posibles a "T" (verdadero) o "F" (falso).
- Las ayudas de búsqueda (sucesoras de los "códigos de coincidencia" ahora obsoletos) proporcionan estrategias de búsqueda avanzadas cuando un usuario desea ver los posibles valores de un campo de datos. El tiempo de ejecución de ABAP proporciona asistencia implícita (enumerando todos los valores para el campo, por ejemplo, todos los números de clientes existentes) pero las ayudas de búsqueda se pueden utilizar para refinar esta funcionalidad, por ejemplo, proporcionando 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 cuando se cambian los datos.
Sintaxis ABAP
Esta breve descripción de la sintaxis ABAP comienza con el omnipresente programa " Hola mundo ".
Hola Mundo
REPORT TEST.
WRITE 'Hello World'.
Este ejemplo contiene dos declaraciones: REPORT
y WRITE
. El programa muestra una lista en la pantalla. En este caso, la lista consta de una sola línea "Hola mundo". El REPORT
comunicado indica que este programa es un informe. Este programa podría ser un grupo de módulos después de reemplazar la REPORT
instrucción con PROGRAM
.
Declaraciones encadenadas
Los enunciados consecutivos con una primera parte idéntica (más a la izquierda) se pueden combinar en un enunciado "encadenado" utilizando el operador de cadena :
. La parte común de las declaraciones se escribe a la izquierda de los dos puntos, las partes diferentes se escriben a la derecha de los dos puntos y se separan por comas. El operador de dos puntos se adjunta directamente al token anterior, sin un espacio (lo mismo se aplica a las comas en la lista de tokens en, como se puede ver en los ejemplos a continuación).
El encadenamiento se usa a menudo en WRITE
declaraciones. WRITE
acepta solo un argumento, por lo que si, por ejemplo, quisiera mostrar tres campos de una estructura llamada FLIGHTINFO, tendría que codificar:
WRITE FLIGHTINFO-CITYFROM.
WRITE FLIGHTINFO-CITYTO.
WRITE FLIGHTINFO-AIRPTO.
Encadenar las declaraciones da como resultado una forma más legible e intuitiva:
WRITE: FLIGHTINFO-CITYFROM, FLIGHTINFO-CITYTO, FLIGHTINFO-AIRPTO.
En una declaración en cadena, la primera parte (antes de los dos puntos) no se limita solo al nombre de la declaración. La parte común completa de las declaraciones consecutivas se puede colocar antes de los dos puntos. Ejemplo:
REPLACE 'A' WITH 'B' INTO LASTNAME.
REPLACE 'A' WITH 'B' INTO FIRSTNAME.
REPLACE 'A' WITH 'B' INTO CITYNAME.
podría reescribirse en forma encadenada como:
REPLACE 'A' WITH 'B' INTO: LASTNAME, FIRSTNAME, CITYNAME.
Comentarios
ABAP tiene 2 formas de definir texto como comentario :
- Un asterisco (*) en la columna más a la izquierda de una línea hace que toda la línea sea un comentario
- Una comilla doble (") en cualquier parte de una línea convierte el resto de esa línea en un comentario
Ejemplo:
***************************************
** Program: BOOKINGS **
** Author: Joe Byte, 07-Jul-2007 **
***************************************
REPORT BOOKINGS.
* Read flight bookings from the database
SELECT * FROM FLIGHTINFO
WHERE CLASS = 'Y' "Y = economy
OR CLASS = 'C'. "C = business
(...)
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 ay 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 declaraciones específicas del lenguaje y proporcionan la mayor parte de la funcionalidad a través de bibliotecas, ABAP contiene una gran cantidad de declaraciones integradas. Estas declaraciones utilizaban tradicionalmente estructuras en forma de oraciones y evitaban los símbolos, lo que hacía que los programas ABAP fueran relativamente prolijos. Sin embargo, en versiones más recientes del lenguaje ABAP, es posible un estilo más terso.
Un ejemplo de sintaxis basada en declaraciones (cuya sintaxis se origina en COBOL) versus sintaxis basada en expresiones (como en C / Java):
ADD TAX TO PRICE.
* is equivalent to
PRICE = PRICE + TAX .
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. Además, las clases de objetos y las interfaces se pueden utilizar como tipos.
Los tipos de datos integrados son:
Escribe | Descripción |
---|---|
I | Entero |
PAG | Decimal empaquetado |
F | Punto flotante |
norte | Carácter numérico |
C | Personaje |
D | Fecha |
T | Tiempo |
X | Hexadecimal (byte sin formato) |
CUERDA | Cuerda de longitud variable |
XSTRING | Matriz de bytes sin formato de longitud variable |
Las variables o constantes de fecha (tipo D) contienen el número de días desde el 1 de enero del 1 d.C. Las variables de tiempo o constantes (tipo T) contienen el número de segundos desde la medianoche. Una característica especial de ambos tipos es que se puede acceder a ellos como enteros y como cadenas de caracteres (con formato interno "AAAAMMDD" para fechas y "hhmmss" para horas), que se pueden utilizar 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):
DATA LAST_EOM TYPE D. "last end-of-month date
* Start from today's date
LAST_EOM = SY-DATUM.
* Set characters 6 and 7 (0-relative) of the YYYYMMDD string to "01",
* giving the first day of the current month
LAST_EOM+6(2) = '01'.
* Subtract one day
LAST_EOM = LAST_EOM - 1.
WRITE: 'Last day of previous month was', LAST_EOM.
Todas las variables ABAP deben declararse explícitamente para poder utilizarse. Se pueden declarar con declaraciones individuales y escritura explícita o, desde ABAP 7.40, en línea con escritura inferida .
Declaración escrita 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 ubicación es una convención y no una regla de sintaxis impuesta. La declaración consta del nombre, tipo, longitud (cuando corresponda), modificadores adicionales (por ejemplo, el número de decimales implícitos para un campo decimal empaquetado) y, opcionalmente, un valor inicial:
* Primitive types:
DATA: COUNTER TYPE I,
VALIDITY TYPE I VALUE 60,
TAXRATE(3) TYPE P DECIMALS 1,
LASTNAME(20) TYPE C,
DESCRIPTION TYPE STRING.
* Dictionary types:
DATA: ORIGIN TYPE COUNTRY.
* Internal table:
DATA: T_FLIGHTS TYPE TABLE OF FLIGHTINFO,
T_LOOKUP TYPE HASHED TABLE OF FLT_LOOKUP.
* Objects:
DATA: BOOKING TYPE REF TO CL_FLT_BOOKING.
Observe el uso de los dos puntos para encadenar sentencias DATA consecutivas.
Declaración en línea
Desde ABAP 7.40, las variables se pueden declarar en línea con la siguiente sintaxis:
DATA(variable_name) = 'VALUE'.
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 declaraciones 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 función conocida como "Objetos ABAP". 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 declaraciones y unidades de modularización existentes en programas que usan ABAP Objects, y también se pueden usar ABAP Objects en programas ABAP existentes. La verificación de sintaxis es más fuerte en los programas de objetos ABAP y algunas formas sintácticas (generalmente las más antiguas) de ciertas declaraciones no están permitidas.
Los objetos forman una cápsula que combina el personaje con el comportamiento respectivo. Los objetos deben permitir a los programadores mapear un problema real y su solución de software propuesta de forma individualizada. Los objetos típicos en un entorno empresarial son, por ejemplo, 'Cliente', 'Pedido' o 'Factura'. Desde la versión 3.1 en adelante, el Business Object Repository (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 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 los objetos ABAP. Esta documentación presenta una selección de términos que se utilizan universalmente en la orientación a objetos y también se encuentran en Objetos ABAP. En las secciones siguientes, se analiza 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 orientación a objetos.
- Los objetos son instancias de clases. Contienen datos y prestan servicios. Los datos forman los atributos del objeto. Los servicios se conocen como métodos (también conocidos como operaciones o funciones). Normalmente, los métodos operan con datos privados (los atributos o el estado del objeto), que solo son visibles para los métodos del objeto. Por lo tanto, los atributos de un objeto no pueden ser cambiados directamente por el usuario, sino solo por los métodos del objeto. Esto garantiza la coherencia interna del objeto.
- Las clases describen objetos. Desde un punto de vista técnico, los objetos son instancias en tiempo de ejecución de una clase. En teoría, se puede crear cualquier número de objetos 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 pueden usarse para identificar y señalar 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, invisible fuera del propio objeto.
- Herencia: una clase existente se puede usar 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 agregar otros nuevos.
- Polimorfismo: los métodos idénticos (con nombres idénticos) se comportan de manera diferente en diferentes clases. En los objetos ABAP, el polimorfismo se implementa redefiniendo métodos durante la herencia y utilizando construcciones llamadas interfaces.
Vistas de CDS
Los servicios de datos básicos de 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 vistas y tablas de bases de datos existentes definidas en el Diccionario ABAP, lo que hace posible optimizar las aplicaciones basadas en Open SQL. Esto es particularmente claro cuando un AS ABAP usa 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 utilizando 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 con estos lenguajes se integran en ABAP Dictionary y también se gestionan aquí.
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 diferentes editores.
Características
SAP NW ABAP | Uniones SQL | Operaciones de conjuntos SQL | SELECCIONAR cláusulas |
---|---|---|---|
7.40 SP05 |
|
|
|
7.40 SP08 | |||
7,50 | |||
7.51 |
|
SAP NW ABAP | Literales | Operadores aritméticos | Expresiones condicionales |
---|---|---|---|
7.40 SP05 |
|
|
|
7.40 SP08 |
|
||
7,50 | |||
7.51 |
|
SAP NW ABAP | Funciones agregadas | Funciones numéricas | Funciones de cadena |
---|---|---|---|
7.40 SP05 |
|
|
|
7.40 SP08 |
|
|
|
7,50 |
|
||
7.51 |
|
|
|
SAP NW ABAP | Funciones de cadena de bytes | Funciones de fecha y hora | Otras funciones |
---|---|---|---|
7.40 SP05 |
|
||
7.40 SP08 |
|
||
7,50 |
|
|
|
7.51 |
|
|
SAP NW ABAP | Expresiones condicionales (CASE) | Extensibilidad | Asociaciones (no administradas) |
---|---|---|---|
7.40 SP05 |
|
|
|
7.40 SP08 |
|
|
|
7,50 |
|
|
|
7.51 |
|
|
|
SAP NW ABAP | Variables de sesión | Parámetros de entrada | Otro |
---|---|---|---|
7.40 SP05 |
|
||
7.40 SP08 |
|
||
7,50 |
|
|
|
7.51 |
|
|
Tablas internas en ABAP
Las tablas internas son una característica importante del lenguaje ABAP. Una tabla interna se define de manera similar a un vector de estructuras en C ++ o un vector de objetos en Java. La principal diferencia con estos lenguajes es que ABAP proporciona una colección de declaraciones 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.
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 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 en relació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.
* First define structured type
TYPES: BEGIN OF t_vbrk,
VBELN TYPE VBRK-VBELN,
ZUONR TYPE VBRK-ZUONR,
END OF t_vbrk.
* Now define internal table of our defined type t_vbrk
DATA : gt_vbrk TYPE STANDARD TABLE OF t_vbrk,
gt_vbrk_2 TYPE STANDARD TABLE OF t_vbrk. "easy to define more tables
* If needed, define structure (line of internal table)
* Definition with type or with reference to internal table:
DATA : gs_vbrk TYPE t_vbrk,
gs_vbrk_2 LIKE LINE OF gt_vbrk_2.
* You can also define table type if needed
TYPES tt_vbrk TYPE STANDARD TABLE OF t_vbrk.
Historia
La siguiente lista solo ofrece una descripción general aproximada de algunos hitos importantes en la historia del lenguaje ABAP. Para obtener más detalles, consulte ABAP: cambios específicos de la versión .
Versión | Fecha de lanzamiento | Cambios principales |
---|---|---|
4.6C | Mayo de 2000 |
|
6,40 | 2004 | |
7.0 | 2006 |
|
7.02 |
|
|
7,40 | 2012-11-29 |
|
7.40 SP05 | diciembre 2013 |
|
7.40 SP08 | Septiembre de 2014 |
|
7,50 | Noviembre de 2015 |
|
7.51 | Octubre de 2016 |
|
7.52 | Septiembre de 2017 |
|
7.54 | Septiembre de 2019 |
|
7.55 | Septiembre de 2020 |
|
Ver también
Referencias
enlaces externos
- ABAP - Documentación de palabras clave
- Portal de ayuda de SAP
- Debates, blogs, documentos y videos de desarrollo ABAP en la red comunitaria SAP (SCN)