Módulo 3: Desarrollo Avanzado y Extensiones ABAP
Integración y Extensibilidad en el Core de SAP
Este módulo se enfoca en técnicas avanzadas de programación ABAP para integrar SAP con sistemas externos y extender la funcionalidad estándar de SAP sin modificar el código original. Exploraremos BAPIs, BADIs, Enhancement Spots, y la interacción con tecnologías web como Web Dynpro ABAP y OData Services.
BAPIs (Business Application Programming Interfaces)
Las BAPIs son interfaces estándar y estables que permiten a sistemas externos o módulos de SAP comunicarse y ejecutar procesos de negocio en SAP. Son parte integral del Business Object Repository (BOR) de SAP.
- Uso: Integración con sistemas non-SAP, desarrollo de aplicaciones personalizadas, automatización de procesos.
- Características: Proporcionan un contrato de interfaz bien definido, son liberadas por SAP y su compatibilidad se mantiene en las actualizaciones.
- Transacción:
BAPIpara explorar las BAPIs disponibles.
* Ejemplo conceptual de llamada a una BAPI
DATA: ls_header TYPE bapi_salesorder_create_header_in,
ls_return TYPE bapiret2,
lt_return TYPE TABLE OF bapiret2.
ls_header-doc_type = 'OR'.
ls_header-sales_org = '1000'.
" ... rellenar otros campos necesarios ...
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
order_header_in = ls_header
IMPORTING
return = ls_return
TABLES
return_table = lt_return.
IF ls_return-type CA 'EA'. "Error o Abort
MESSAGE ls_return-message TYPE 'E'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
MESSAGE 'Pedido de venta creado con éxito' TYPE 'S'.
ENDIF.
BADIs (Business Add-Ins)
Los BADIs son un tipo de Enhancement Spot que permiten a los clientes y partners añadir su propia lógica de negocio al código estándar de SAP sin modificarlo directamente. Son implementados usando la tecnología de clases y métodos de ABAP OO.
- Uso: Extender funcionalidades estándar, validar datos, modificar comportamientos.
- Características: Orientados a objetos, múltiples implementaciones posibles (según la definición del BADI).
- Transacciones:
SE18(definiciones),SE19(implementaciones).
Enhancement Spots
Son puntos predefinidos por SAP en su código estándar donde se puede “enganchar” (plug-in) lógica personalizada. Incluyen:
- BADIs: Vistos anteriormente.
- Source Code Plugs: Pequeños bloques de código ABAP insertados directamente en puntos específicos.
- Function Module Exits/Screen Exits/Menu Exits: Mecanismos de extensión más antiguos.
Web Dynpro ABAP
Es una tecnología basada en servidor de SAP para desarrollar aplicaciones web interactivas que se ejecutan en un navegador web. Permite crear interfaces de usuario ricas y complejas con un modelo de programación basado en eventos.
- Uso: Aplicaciones web que requieren una alta integración con el backend SAP y funcionalidades empresariales complejas.
- Componentes: Vistas, ventanas, controladores, modelos de contexto.
- Transacción:
SE80(Object Navigator) para el desarrollo.
OData Services para SAP Fiori/UI5
Los OData Services son un protocolo estándar basado en REST para construir y consumir APIs de datos. Son fundamentales para exponer datos de backend de SAP a aplicaciones modernas como SAP Fiori y SAPUI5.
- Uso: Conectar el frontend Fiori/UI5 con el backend de SAP S/4HANA.
- Características: Basado en
HTTP,ATOM/JSON, yURI conventions. Permite operacionesCRUD(Create, Read, Update, Delete) sobre recursos. - Implementación: Se pueden generar a partir de CDS Views o implementarse manualmente a través de
Service Builder (SEGW).
Conclusión
Este módulo ha explorado técnicas avanzadas para extender y integrar SAP S/4HANA. Desde las robustas interfaces BAPI para la integración de sistemas, hasta los mecanismos de extensión como BADIs y Enhancement Spots para personalizar la lógica de negocio. Además, has aprendido sobre las tecnologías web ABAP como Web Dynpro ABAP y la importancia de los OData Services para el desarrollo de aplicaciones modernas con Fiori/UI5, sentando las bases para el Módulo 4.