ABAP On-Premise vs. SAP BTP: Comparación y casos de uso

Kategorie
ABAP-Statements
Veröffentlicht
Autor
Johannes

SAP ofrece dos plataformas principales para el desarrollo ABAP: el clásico On-Premise y el moderno SAP BTP ABAP Environment. Este artículo compara ambas opciones.

Resumen de la comparación

AspectoOn-PremiseSAP BTP
InfraestructuraPropia/Data CenterCloud SAP
MantenimientoClienteSAP
ActualizacionesManualAutomáticas
Modelo de desarrolloClásico + CloudSolo Cloud
APIsTodasSolo liberadas
CostesCAPEXOPEX
EscalabilidadManualAutomática

Diferencias técnicas

1. Modelo de desarrollo

On-Premise

" On-Premise: Acceso completo a todas las APIs
CALL FUNCTION 'BAPI_MATERIAL_GETLIST'.
SELECT * FROM mara.
CALL FUNCTION 'POPUP_TO_CONFIRM'.

SAP BTP

" BTP: Solo APIs liberadas (ABAP Cloud)
SELECT * FROM I_Product. " CDS View liberada
" BAPI_MATERIAL_GETLIST no disponible
" POPUP_TO_CONFIRM no disponible

2. Arquitectura de sistema

On-Premise

┌─────────────────────────────────────┐
│ Sistema SAP ERP │
│ ┌─────────┐ ┌─────────┐ ┌───────┐ │
│ │ Dynpro │ │ ALV │ │ BAPI │ │
│ └─────────┘ └─────────┘ └───────┘ │
│ ┌─────────────────────────────────┐│
│ │ ABAP Stack completo ││
│ └─────────────────────────────────┘│
│ ┌─────────────────────────────────┐│
│ │ Base de datos ││
│ └─────────────────────────────────┘│
└─────────────────────────────────────┘

SAP BTP

┌─────────────────────────────────────┐
│ Fiori Launchpad │
└───────────────┬─────────────────────┘
┌───────────────▼─────────────────────┐
│ OData Services │
└───────────────┬─────────────────────┘
┌───────────────▼─────────────────────┐
│ ABAP Environment (RAP) │
│ ┌─────────┐ ┌─────────┐ ┌───────┐ │
│ │ CDS │ │Behavior │ │Service│ │
│ └─────────┘ └─────────┘ └───────┘ │
└───────────────┬─────────────────────┘
┌───────────────▼─────────────────────┐
│ SAP HANA Cloud │
└─────────────────────────────────────┘

3. Ciclo de vida de desarrollo

On-Premise

DEV -> QA -> PRD (Transporte clásico)
SE09/STMS

SAP BTP

Git Repository
┌───────────────────┐
│ abapGit Push │
└───────┬───────────┘
┌───────────────────┐
│ Software │
│ Components │
└───────┬───────────┘
┌───────────────────┐
│ Pull to │
│ Target System │
└───────────────────┘

Casos de uso

Cuándo usar On-Premise

EscenarioRazón
Código legacy extensoMigración gradual
Requisitos regulatorios estrictosControl de datos
Integraciones complejas existentesBAPIs/RFCs
Modificaciones del estándarAcceso completo

Cuándo usar SAP BTP

EscenarioRazón
Nuevos desarrollos (greenfield)Clean Core
Side-by-Side ExtensionsSin impacto en ERP
Aplicaciones Fiori modernasRAP + Fiori Elements
Escalabilidad requeridaAuto-scaling
Sin infraestructura propiaSaaS

Comparación de costes

On-Premise (CAPEX)

Inversión inicial:
├── Hardware $$$$$
├── Licencias SAP $$$$
├── Instalación $$
├── Personal IT $$$
└── Mantenimiento anual $$
─────
Total primer año $$$$$$$
Años siguientes $$$

SAP BTP (OPEX)

Costes recurrentes:
├── Suscripción BTP $$
├── ABAP Environment $$
├── Usuarios (por mes) $
├── Almacenamiento $
└── Tráfico de red $
─────
Por mes $$$
Por año $$$$

Diferencias en desarrollo

Creación de objetos

On-Premise (SE80/ADT)

" Crear tabla en SE11
" Crear clase en SE24
" Crear módulo de función en SE37

SAP BTP (Solo ADT)

" Todo en ADT con DDL
" Tabla como DDL Source
" Solo clases (no FM clásicos)

Debugging

On-Premise

  • Debugger clásico (SE80)
  • ADT Debugger
  • ST05 SQL Trace
  • SAT Runtime Analysis

SAP BTP

  • Solo ADT Debugger
  • ABAP Profiler
  • SQL Trace (limitado)

Transporte

On-Premise

" Clásico
Orden de transporte -> QA -> PRD
STMS

SAP BTP

" Git-based
git commit -> Software Component -> Pull
gCTS

Migración entre plataformas

De On-Premise a BTP

  1. Análisis de compatibilidad

    " Ejecutar ATC con perfil ABAP_CLOUD
    " Identificar APIs no liberadas
  2. Refactorización

    " Antes (On-Premise)
    CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'.
    " Después (BTP compatible)
    DATA(lv_month) = EXTRACT( MONTH FROM lv_date ).
  3. Migración de datos

    • Exportar como archivo
    • APIs de migración
    • Replicación

De BTP a On-Premise

Generalmente no necesario, pero posible:

  • El código ABAP Cloud funciona en On-Premise (7.50+)
  • CDS Views son compatibles
  • Solo se necesitan ajustes mínimos

Integración entre sistemas

Llamada desde On-Premise a BTP

" On-Premise: Consumir OData de BTP
DATA(lo_client) = cl_http_client=>create_by_destination( 'BTP_SYSTEM' ).
lo_client->request->set_uri( '/sap/opu/odata/sap/ZSB_SERVICE' ).
lo_client->send( ).

Llamada desde BTP a On-Premise

" BTP: Usando Cloud Connector
DATA(lo_destination) = cl_http_destination_provider=>create_by_cloud_destination(
i_name = 'ON_PREMISE_ERP'
).
DATA(lo_client) = cl_web_http_client_manager=>create_by_http_destination( lo_destination ).

Notas importantes / Mejores prácticas

  • Nuevos proyectos: Considera SAP BTP para Clean Core.
  • Código existente: Evalúa el esfuerzo de migración con ATC.
  • Estrategia híbrida: On-Premise para core, BTP para extensiones.
  • Costes: Calcula TCO (Total Cost of Ownership) a 5 años.
  • Skills: BTP requiere conocimientos de RAP, CDS, Fiori.
  • Roadmap SAP: SAP impulsa la adopción de BTP y ABAP Cloud.
  • Usa abapGit para gestión de código en ambas plataformas.