
Comparto material encontrado;espero les sea útil:
Reseña Histórica de las Versiones ABAP: Avances, Ventajas y Desventajas
1. ABAP/4 (Década de 1980 - SAP R/2 y R/3)
Contexto:
ABAP nació como un lenguaje de reportes en los años 80, con SAP R/2. Luego se consolidó en SAP R/3 en los 90 como ABAP/4 (cuarta generación).
Ventajas:
-
Enfocado a procesos de negocio.
-
Integración nativa con SAP R/3.
-
Fuerte en procesamiento de datos.
Desventajas:
2. ABAP Objects (Introducido con SAP R/3 4.6C – Año 2000)
Contexto:
Inicio de la orientación a objetos en ABAP.
Ventajas:
-
Modularidad y reutilización del código.
-
Mejora en diseño de software.
-
Compatible con versiones anteriores.
Desventajas:
3. ABAP 7.0 (SAP NetWeaver 2004s – Año 2006)
Contexto:
Nuevas funcionalidades técnicas como Web Dynpro ABAP y mejoras en el entorno de desarrollo.
Ventajas:
Desventajas:
4. ABAP 7.4 (SAP NetWeaver 7.4 – 2013)
Contexto:
Optimización para SAP HANA.
Ventajas:
-
Nuevas expresiones inline (DATA, LOOP AT, etc.).
-
Soporte para operaciones en base de datos optimizadas (Open SQL).
-
Uso eficiente de la base de datos HANA (code push-down).
Desventajas:
5. ABAP 7.5 / 7.51 (2015-2016)
Contexto:
Preparación para SAP S/4HANA. Nuevos lenguajes como CDS, AMDP.
Ventajas:
-
Core Data Services (CDS): vistas enriquecidas y semánticas.
-
AMDP (ABAP Managed Database Procedures): lógica en la BD.
-
ABAP más funcional y moderno.
Desventajas:
6. ABAP RESTful Application Programming Model (RAP) – Desde 7.52 / ABAP en la nube (Steampunk)
Contexto:
ABAP adaptado a la nube y Fiori. Modelo basado en servicios y REST.
Ventajas:
-
Desarrollo moderno para aplicaciones Fiori/UI5.
-
Arquitectura limpia y desacoplada.
-
APIs REST, servicios OData integrados.
Desventajas:
-
Requiere dominio del stack completo (CDS, BDEF, RAP).
-
Solo disponible en SAP BTP o S/4HANA 1909+.
Resumen Evolutivo
Versión Enfoque Principal Ventajas Desventajas
| ABAP/4 |
Reportes y procesos |
Estabilidad, integración |
Anticuado, poco modular |
| ABAP OO |
Orientación a objetos |
Reutilización, diseño |
Curva de aprendizaje |
| 7.0 |
Interfaces y web |
Web Dynpro, modularidad |
Complejo, poco intuitivo |
| 7.4 |
Optimización HANA |
Inline, SQL moderno |
Requiere nuevo mindset |
| 7.5+ |
CDS, AMDP, Fiori |
Potente, modular, moderno |
Complejo, más técnico |
| RAP |
Nube, REST, Fiori |
Eficiencia, arquitectura limpia |
Complejo, exclusivo de nuevas versiones |
Vamos a entrar más en la evolución de ABAP desde el punto de vista de la programación pura, comparando las mejoras técnicas y de sintaxis que fueron apareciendo entre versiones. Verás cómo ABAP pasó de ser un lenguaje bastante estructurado y limitado, a algo mucho más moderno y eficiente.
Evolución de ABAP en cuanto a la programación
🔹
1. ABAP clásico (antes de 4.6C)
Características:
-
Estructurado, no orientado a objetos.
-
Uso intensivo de FORM...ENDFORM y PERFORM.
-
Sintaxis muy "verbosa" (mucha escritura para hacer cosas simples).
Ejemplo clásico:
READ TABLE lt_data INTO ls_data WITH KEY id = lv_id.
IF sy-subrc = 0.
WRITE: ls_data-name.
ENDIF.
2. ABAP Objects (desde 4.6C)
Mejoras:
-
Introducción de CLASS, METHODS, INHERITANCE, INTERFACES.
-
Mejora en la estructura del código (más limpio, reutilizable).
-
Programación orientada a eventos.
Ejemplo:
CLASS lcl_demo DEFINITION.
PUBLIC SECTION.
METHODS: show_name IMPORTING iv_name TYPE string.
ENDCLASS.
CLASS lcl_demo IMPLEMENTATION.
METHOD show_name.
WRITE: iv_name.
ENDMETHOD.
ENDCLASS.
3. ABAP 7.0 a 7.4 (NetWeaver 2004s – 2013)
Mejoras de programación:
-
Expresiones inline para variables y estructuras.
-
Nuevas sentencias como COND, REDUCE, FILTER.
-
Open SQL extendido (mayor legibilidad y eficiencia).
Ejemplo de mejoras:
DATA(ls_data) = VALUE ty_data( id = 100 name = 'Juan' ).
LOOP AT lt_data INTO DATA(ls_row) WHERE name = 'Juan'.
WRITE: ls_row-id.
ENDLOOP.
4. ABAP 7.5 y superiores
Mejoras clave:
-
Declaraciones ultra-compactas (DATA(...), VALUE, CORRESPONDING).
-
Nuevas funciones de tabla internas (FILTER, SORT, REDUCE, GROUP BY).
-
LET...IN para expresiones condicionales más limpias.
Ejemplo
- DATA(result) = REDUCE i( INIT sum = 0 FOR ls IN lt_sales NEXT sum = sum + ls-amount ).}
5. ABAP RAP (RESTful Application Programming Model)
Grandes avances:
-
Modelo basado en anotaciones (@UI, @OData.publish: true).
-
Desarrollo declarativo con CDS + BDEF (Behavior Definition).
-
Separación lógica: definición, implementación y presentación.
Fragmento RAP:
@UI.lineItem: [{ position: 10, label: 'Name' }]
define view entity ZI_Customer as select from zcustomer {
key id,
name,
email
}
Resumen Comparativo:
Versión
Estilo de Programación
Mejora Clave
Nivel de Modernización
| ABAP clásico |
Procedural, estructurado |
Uso de PERFORM, manejo manual de errores |
Bajo |
| ABAP OO |
Orientado a objetos |
Clases, métodos, eventos |
Medio |
| ABAP 7.4 |
Más expresivo y limpio |
Inline, funciones nuevas, SQL optimizado |
Alto |
| ABAP 7.5+ |
Funcional y compacto |
VALUE, REDUCE, FILTER, LET...IN |
Muy alto |
| ABAP RAP |
Declarativo y moderno |
CDS, comportamiento, OData, Fiori |
Avanzado |