Blog

Notas técnicas, sin marketing

ABAP Cloud, S/4HANA y el ecosistema SAP moderno, contados desde proyecto.

    #SAP Integration Suite#SAP API Management#SAP BTP

    SAP Integration Suite: activar el runtime de API Management

    API Management activado en SAP Integration Suite, pero sin Configure > APIs. Por qué falta el runtime y cómo activarlo en un trial y en un tenant productivo.

    23 oct 2026

    #SAP CAP#MCP#Agentes de IA

    SAP CAP y MCP: autenticación y roles con @requires y @restrict

    Cómo restringir por rol qué consulta y qué escribe un agente de IA en un servicio SAP CAP publicado por MCP, y los tres huecos que aparecieron al probarlo.

    23 oct 2026

    #SAP BTP#SAP Build Work Zone#Cloud Identity Services

    SAP Build Work Zone advanced: configurar CIS e IPS en BTP

    Cómo habilitar SAP Build Work Zone, advanced edition en SAP BTP con autenticación SAML 2.0 y aprovisionamiento automático de usuarios y grupos con Identity Provisioning.

    23 oct 2026

    #SAP Mobile Services#XSUAA#IAS

    El único ajuste de SAP Mobile Services que no puedes cambiar

    Al crear una aplicación en SAP Mobile Services eliges entre XSUAA e IAS, y esa elección no se puede cambiar. Qué implica cada opción y cuándo elegir IAS.

    20 oct 2026

    #SAP S/4HANA#SAP Fiori#Key User Extensibility

    Habilitar Extensibility (Key User) en SAP S/4HANA 2025

    Pasos para habilitar las apps de extensibilidad key user en SAP S/4HANA 2025: nota SAP, ATO, catálogo SAP_BASIS_BC_EXT, nodos ICF, servicios OData y rol.

    17 oct 2026

    #SAP GUI#SAP GUI for Java#macOS

    SAP GUI for Java en macOS: conexión SNC y certificados

    Conexión SNC con SAP GUI for Java en un Mac: cómo adaptar la configuración pensada para Windows y hacer que macOS confíe en el certificado del servidor.

    17 oct 2026

    #SAP CAP#MCP#Agentes de IA

    SAP CAP y MCP: escritura controlada con acciones CDS

    Cómo dejar que un agente de IA modifique datos de un servicio SAP CAP por MCP con una acción CDS, qué controla cada capa y qué fallos aparecieron al probarlo.

    14 oct 2026

    #SAP MDK#SAP Mobile Services#VS Code

    SAP MDK en VS Code: una alternativa mejor a BAS

    Cómo montar en un VS Code local el entorno para desarrollar aplicaciones con SAP MDK sin Business Application Studio, y trabajar en ellas con agentes de IA.

    14 oct 2026

    #SAP GUI#SAP GUI for Java#macOS

    SAP GUI for Java en macOS: instalación y primera conexión

    SAP GUI for Java 8.10 en un Mac con procesador M: el Java que ya trae, las tres formas de conectarse y por qué la pestaña Sistema no sirve con solo un host.

    9 oct 2026

    #SAP API Management#SAP Integration Suite#TLS

    SAP API Management: así cambian los cifrados TLS

    SAP API Management retira dos cipher suites TLS 1.2 para conexiones inbound. Cómo afecta a tus integraciones y qué revisar antes de octubre de 2026.

    8 oct 2026

    #SAP Document AI#SAP BAIP#Score de confianza

    SAP Document AI: cuando el score de confianza no es confiable

    Matching de materiales con SAP Document AI en pedidos multiproveedor: por qué el score de confianza no sirvió para decidir y qué solución sí funcionó.

    8 oct 2026

    #SAP CAP#MCP#Agentes de IA

    SAP CAP como servidor MCP: una anotación y tres sorpresas

    Cómo exponer un servicio SAP CAP como servidor MCP con el plugin @cap-js/mcp, qué herramientas recibe el agente de IA y qué límites aparecen al probarlo.

    7 oct 2026

    #SAP RAP#ABAP Cloud#SAP BTP

    SAP RAP de cero a experto: serie gratuita de ABAP Cloud

    Serie gratuita de YouTube sobre SAP RAP con ABAP Cloud: más de 6 horas de vídeo en español, desde la cuenta trial de SAP BTP hasta la Behavior Definition.

    6 oct 2026

    #Máster Fiori SAPUI5#SAP BTP#Business Application Studio

    Desarrollo SAP Fiori con IA: monta tu entorno profesional

    Clase 1 del Máster en Fiori SAPUI5, con el vídeo completo: SAP BTP trial, Business Application Studio, VS Code, TypeScript y asistentes de IA con MCP.

    1 oct 2026

    #SAP S/4HANA#Journal Entry#Ledger

    Ledger o SourceLedger en S/4HANA: filtrar ledgers de extensión

    Un asiento ocupa 4 filas en ACDOCA y 8 en I_JournalEntryItem. Cómo filtrar Ledger y SourceLedger para no perder ni multiplicar importes, con resultados medidos.

    1 oct 2026

    #SAP Document AI#SAP BAIP#Schemas y plantillas

    ¿Qué es SAP Document AI? El vocabulario de la serie

    Ciclo de vida de un documento, schemas, plantillas, métodos de extracción, score de confianza y lo que hay que montar en SAP BAIP para usar SAP Document AI.

    1 oct 2026

    #SAP S/4HANA#Journal Entry#ABAP CDS

    S/4HANA sin ACDOCA: las vistas CDS liberadas del Journal Entry

    SAP marca ACDOCA como no liberable y propone tres vistas CDS liberadas como sucesoras. Cuál usar para partidas, saldos, cabecera y análisis, y con qué límites.

    30 sept 2026

    #ABAP SQL#CDS#HANA

    Paginación en ABAP SQL: offset frente a keyset, medidos

    Por qué OFFSET se degrada con la profundidad de la página y keyset mantiene un coste constante: curva medida sobre 2,4 millones de filas y criterio de elección.

    29 sept 2026

    #Carrera#SAP#ABAP Cloud

    Salarios de consultor SAP en 2026: lo que nadie te cuenta

    Por qué las cifras de salario consultor SAP que ves en LinkedIn no sirven para decidir nada, y qué factores mueven de verdad el número: especialización, país y si trabajas por cuenta propia o para una consultora.

    23 sept 2026

    #ABAP#RAP#ABAP Cloud

    Tu primer objeto de negocio con RAP, paso a paso

    Una tabla, una vista de interfaz y una behavior definition managed, en un solo recorrido de principio a fin: tu primer objeto de negocio RAP, paso a paso.

    21 sept 2026

    #SAP BTP#Consultoría#CIO

    ¿Cuándo contratar consultoría SAP BTP externa (y cuándo no)?

    Consultoría SAP BTP: cuándo conviene traer ayuda externa senior, qué preguntar antes de firmar, y cuándo el problema se resuelve mejor por dentro.

    17 sept 2026

    #ABAP#Clean Core#S/4HANA

    Clean Core para developers: extender S/4HANA sin romper el core

    Modificar el standard no es gratis: se paga en cada upgrade. Guía práctica para elegir, como developer, el camino de extensión Clean Core correcto.

    15 sept 2026

    #ABAP Cloud#Carrera#RAP

    Lo que un consultor funcional debería entender de ABAP Cloud

    No necesitas programar para defender bien un proyecto SAP. Lo mínimo de ABAP Cloud que un consultor funcional necesita para no depender del criterio ajeno.

    11 sept 2026

    #ABAP#ABAP Cloud#ABAP RAP

    De ABAP procedural a ABAP Cloud: checklist de migración

    Migrar a ABAP Cloud no es traducir sintaxis: cambia el acceso a datos, la lógica de negocio y cómo se modela con RAP. Checklist paso a paso, con ejemplos reales.

    9 sept 2026

    #ABAP#ABAP Cloud#ABAP CDS

    ¿Por qué tu CDS view está mal estructurada?

    Cómo estructurar una CDS view en capas Basic, Composite y Consumption, y por qué mezclarlas rompe tus apps Fiori y tus informes.

    7 sept 2026

    #ABAP#ABAP Cloud#Carrera

    ABAP Cloud no es Cobol: para desarrolladores que vienen de fuera

    Aprender ABAP viniendo de Java no es empezar de cero. Mira el código que se escribe hoy en S/4HANA y por qué el mercado lo paga.

    2 sept 2026

    #ABAP#RAP#EML

    EML: manipular entidades de negocio en RAP sin un solo SELECT

    En la Behavior Pool no se usa SELECT ni COMMIT: se usa el Entity Manipulation Language. READ ENTITIES, MODIFY ENTITIES y las claves técnicas %tky, con el código real.

    13 ago 2026

    #ABAP#RAP#Seguridad

    Autorizaciones en RAP: global vs instancia sin morir en el intento

    Bloquear una operación para todos es una cosa; bloquearla según el contenido del registro es otra muy distinta. Los dos niveles de autorización de RAP y cuándo necesitas cada uno.

    12 ago 2026

    #ABAP#RAP#ABAP Cloud

    Validaciones y determinaciones en RAP: dónde vive cada regla de negocio

    Una validación veta el guardado; una determinación rellena un campo sola. Confundirlas es meter lógica en el sitio equivocado. Cuándo usar cada una, con la behavior definition real.

    10 ago 2026

    #ABAP#RAP#Fiori

    Draft en RAP: el borrador que evita que tus usuarios pierdan el trabajo

    El modo Draft deja guardar a medias sin ensuciar la base de datos. Cómo se activa en la behavior definition, qué acciones exige y por qué necesita el total ETag.

    8 ago 2026

    #ABAP#RAP#ABAP Cloud

    El modelo de datos de un business object RAP: persistencia activa, draft y auditoría

    En ABAP Cloud ya no defines tablas en modo gráfico: las escribes con anotaciones. Las columnas de auditoría, el UUID y la tabla draft que el framework RAP espera, con el DDL real.

    5 ago 2026

    #ABAP#RAP#ABAP Cloud

    Managed vs Unmanaged en RAP: cuándo dejar que el framework persista por ti

    El escenario managed te regala create, update y delete; el unmanaged te obliga a escribirlos. Cuándo usar cada uno en el RESTful ABAP Programming Model, con la behavior definition real.

    4 ago 2026

    #BTP#Cloud Foundry#XSUAA

    VCAP_SERVICES: por qué tus credenciales nunca van en el código

    En Cloud Foundry las credenciales de HANA o XSUAA no se escriben: se inyectan. El service binding las pone en la variable de entorno VCAP_SERVICES en tiempo de ejecución. Entenderlo cambia cómo diseñas la app.

    2 ago 2026

    #BTP#Cloud Foundry#CLI

    cf CLI de verdad: push, bind y logs, las tres que usas cada día

    La cf CLI tiene decenas de comandos, pero el 90% de tu trabajo diario cabe en tres verbos: desplegar, enlazar servicios y leer logs. Con la sintaxis real y los flags que importan.

    31 jul 2026

    #BTP#Cloud Foundry#MTA

    mta.yaml: por qué la unidad de despliegue no es la app, es el MTA

    Una Multi-Target Application empaqueta servicio, base de datos y UI en un solo artefacto versionado. Desplegar app por app con cf push es cómodo hasta que tienes tres módulos que dependen entre sí.

    30 jul 2026

    #BTP#Cloud Foundry#Arquitectura

    El modelo de Cloud Foundry: orgs, spaces y apps sin misterio

    Antes de escribir un cf push tienes que entender la jerarquía: cuenta global, subcuenta, organización, espacio y aplicación. Quien la ignora acaba con cuotas mal repartidas y despliegues en el sitio equivocado.

    27 jul 2026

    #BTP#Cloud Foundry#CAP

    Desplegar una app CAP full-stack en Cloud Foundry, de punta a punta

    Junta todo: proyecto CAP con HANA y XSUAA, build del MTA, login en CF y despliegue. El recorrido completo desde File New Project hasta la app respondiendo con su token, con los comandos reales.

    25 jul 2026

    #BTP#Cloud Foundry#Buildpacks

    Buildpacks y staging: qué pasa entre tu cf push y una app corriendo

    Entre el cf push y la app en verde hay una fase que casi nadie mira: el staging. El buildpack detecta tu lenguaje, instala el runtime y monta el droplet. Cuando falla el arranque, casi siempre falla aquí.

    23 jul 2026

    #BTP#Administración#Conectividad

    Destinations y Cloud Connector: conectar BTP sin abrir el firewall

    El puente entre la nube de BTP y tus sistemas on-premise no es abrir puertos. Es Cloud Connector más destinations bien tipados. Lo desmontamos con las propiedades reales.

    20 jul 2026

    #BTP#Administración#Seguridad

    Role collections, role templates y usuarios sombra en SAP BTP

    El modelo de autorizaciones de BTP no es un checkbox. Plantillas de rol, colecciones y usuarios sombra: entenderlo bien es la diferencia entre un acceso auditable y un caos de permisos.

    19 jul 2026

    #BTP#Administración#Entitlements

    Entitlements y cuotas en SAP BTP: el presupuesto que no se desborda

    Derechos de servicio y derechos de cuota. Es donde de verdad se controla el gasto en BTP. Repartir mal aquí es firmar una factura sorpresa a fin de mes.

    17 jul 2026

    #BTP#Administración#Gobernanza

    La jerarquía de cuentas en SAP BTP: gobernanza desde el día 1

    Global account, directorios, subcuentas. No es un organigrama decorativo: es la frontera de facturación, seguridad y regiones. Quien la improvisa, la paga en cada auditoría.

    15 jul 2026

    #BTP#Administración#Servicios

    Subscriptions vs service instances en SAP BTP: no son lo mismo

    Aplicaciones que se suscriben y servicios que se instancian. Confundirlos lleva a plan de servicio equivocado, cuota mal gastada y una arquitectura que no escala. Lo aclaramos.

    12 jul 2026

    #BTP#Administración#CLI

    Administrar SAP BTP desde la terminal: btp CLI y cf CLI

    El Cockpit esta bien para explorar. Para gobernar de verdad, automatizar y auditar, necesitas la linea de comandos. btp CLI para la cuenta, cf CLI para el runtime.

    11 jul 2026

    #SAP CAP#Node.js#CDS

    Handlers en CAP: escribe menos JavaScript, no más

    El runtime genérico de CAP ya resuelve el CRUD. Los handlers en Node.js son para la lógica que el modelo no puede expresar: acciones, funciones y validaciones. Con un cancelOrder real.

    9 jul 2026

    #ABAP#Clean Core#RAP

    Released APIs: consumir el estándar sin acoplarte a lo que no debes

    Consumir una API liberada de SAP está bien; consumirla mal te acopla al core igual que una modificación. La diferencia está en el patrón de acceso. Guía práctica en ABAP Cloud.

    9 jul 2026

    #ABAP#CDS#VDM

    CDS bien estructuradas: la capa VDM que no te avergüenza en tres años

    Basic, Composite, Consumption. El Virtual Data Model no es burocracia: es lo que separa un modelo que escala de un plato de espaguetis. Con ejemplo de código ABAP CDS real.

    8 jul 2026

    #SAP CAP#CDS#CDL

    El modelo CDS en CAP: entidades y servicios que no se pisan

    En CAP el modelo de datos vive en db y los servicios en srv, y esa separación no es capricho: es lo que te deja cambiar el esquema sin tocar la API. Con schema.cds y catalog-service.cds reales.

    7 jul 2026

    #ABAP#Clean Core#S/4HANA

    Clean Core sin humo: qué significa de verdad en ABAP Cloud

    Clean Core no es una etiqueta de marketing ni prohibir modificaciones. Es una disciplina de extensibilidad basada en APIs liberadas y puntos de extensión estables. Lo desmontamos con ejemplos.

    7 jul 2026

    #SAP CAP#XSUAA#BTP

    Autorización en CAP con XSUAA: cuando una anotación se vuelve permiso

    En CAP la seguridad se declara en el modelo con @requires y @restrict, no se programa en cada handler. Cómo XSUAA convierte roles en scopes y el xs-security.json que lo ata todo.

    6 jul 2026

    #SAP CAP#S/4HANA#OData

    Servicios remotos en CAP: consumir S/4HANA sin copiarte el ERP

    Importar un servicio OData externo, proyectarlo como si fuera propio y delegar la query al backend. Cómo CAP integra S/4HANA sin replicar datos, con cds import y una proyección real.

    3 jul 2026

    #SAP CAP#BTP#MTA

    Desplegar CAP en BTP: del cds watch al mta.yaml sin sustos

    En local corre con SQLite en memoria. En BTP necesitas HANA, un contenedor HDI y un mta.yaml que ate los módulos. Lo que cambia entre tu portátil y Cloud Foundry, sin humo.

    1 jul 2026

    #SAP CAP#RAP#BTP

    CAP vs RAP: no es religión, es dónde vive tu lógica de negocio

    CAP corre en Node.js o Java sobre BTP; RAP corre en ABAP dentro de S/4HANA. La elección no es de gusto: depende de dónde están tus datos y tu equipo. Sin bandos.

    29 jun 2026

    #Fiori Elements#Fiori#OData

    Qué son los Fiori Elements y por qué deberías usarlos

    Fiori Elements no es un framework más: es cambiar código UI5 escrito a mano por anotaciones sobre el servicio OData. Menos JavaScript, más metadatos, UX consistente. Con ejemplo real de anotaciones CDS.

    26 jun 2026

    #Fiori Elements#Fiori#OData

    Floorplans de Fiori Elements: List Report, Object Page, Worklist y Analytical

    No todos los patrones sirven para todo. Cuándo elegir List Report Object Page, cuándo un Worklist y cuándo una List Report analítica. Con el arranque real del asistente en Business Application Studio.

    25 jun 2026

    #Fiori Elements#Fiori#VS Code

    Fiori tools en VS Code: el tooling que hace productivo Fiori Elements

    Las anotaciones son el lenguaje, pero sin buen tooling escribirlas a mano es un suplicio. Los Fiori tools (asistente, guided development, cds watch) convierten metadatos en productividad. Con el flujo real de arranque.

    23 jun 2026

    #Fiori Elements#Fiori#Clean Core

    Extension points en Fiori Elements: cuándo está justificado salir del carril

    Fiori Elements te da mucho gratis, pero a veces necesitas algo que la plantilla no cubre. Los extension points son la salida controlada. Cuándo usarlos, cuándo no, y por qué las metadata extensions son la primera opción.

    21 jun 2026

    #Fiori Elements#Fiori#RAP

    Draft y acciones en Fiori Elements: cuando la pantalla hace algo más que mostrar

    El borrador y las acciones son lo que convierte una app de solo lectura en una aplicación de negocio. Cómo el draft de RAP y las acciones enlazadas a métodos ABAP se declaran, no se programan a mano.

    18 jun 2026

    #Fiori Elements#Fiori#OData

    Anotaciones UI: lineItem, facets y headerInfo, el lenguaje de Fiori Elements

    La pantalla de una app Fiori Elements se dibuja con anotaciones, no con XML. LineItem para la tabla, HeaderInfo para la cabecera, Facets para organizar el detalle. Con anotaciones CDS reales.

    17 jun 2026

    #SAPUI5#Fiori#TypeScript

    TypeScript en SAPUI5: del @ts-nocheck a tipos que te avisan antes de romper

    Los proyectos UI5 llevan años simulando tipos con JSDoc. TypeScript los hace de verdad: eventos tipados, imports ES6 y errores en tiempo de compilación. Cómo dar el salto sin reescribir la app entera.

    15 jun 2026

    #SAPUI5#Fiori#Routing

    Routing en SAPUI5: navegación con URL, no con setVisible

    Rutas, patrones y parámetros en el manifest, y un router que sincroniza el hash con la vista. Cómo pasar de una lista a un detalle sin ocultar controles a mano, con navegación de regreso que respeta el historial.

    13 jun 2026

    #SAPUI5#Fiori#manifest

    El manifest.json: la única fuente de verdad de tu app UI5

    Modelos, rutas, dependencias, i18n y versión mínima de UI5 declarados en un solo fichero. Deja de instanciar modelos a mano en el componente y describe la app en el descriptor. Con JSON real.

    12 jun 2026

    #SAPUI5#Fiori#Async

    sap.ui.define y carga asíncrona: el fin de las variables globales en UI5

    AMD, dependencias explícitas, async:true y ComponentSupport en lugar de scripts inline. Por qué sap.ui.require sustituye a los globales y cómo esto encaja con la CSP. Con código real de bootstrap.

    9 jun 2026

    #SAPUI5#Fiori#Data Binding

    Data binding en SAPUI5: deja de mover datos a mano

    JSONModel para lo local, ODataModel para el backend, y un binding que refresca la UI solo. Property, aggregation, expression y formateadores personalizados, con código real de una lista de facturas.

    7 jun 2026

    #SAPUI5#Fiori#MVC

    Arquitectura MVC en SAPUI5: por qué el controlador no es el cubo de basura

    Vista, modelo y controlador tienen fronteras claras. Cuando las respetas, la app se mantiene sola; cuando no, el controlador acaba con 800 líneas de todo. Lo vemos con código XML y JavaScript real.

    5 jun 2026

    #ABAP#ABAP Cloud#Clean Core

    Wrappers para código legacy: consumir lo viejo sin contaminar lo nuevo

    No puedes reescribir veinte años de ABAP clásico de golpe, pero tampoco puedes dejar que ensucie tu capa cloud. La estrategia de wrappers y el Tier 2 son el puente. Con patrón y código real.

    2 jun 2026

    #ABAP#ABAP Cloud#ABAP SQL

    ABAP SQL en ABAP Cloud: qué cambia respecto al clásico (y por qué es mejor)

    En ABAP Cloud el SQL sigue siendo SQL, pero el lenguaje te quita las muletas: nada de acceso directo a tablas del core, nada de CLIENT SPECIFIED a lo loco, WHERE siempre. Repasamos los cambios con código real.

    1 jun 2026

    #ABAP#ABAP Cloud#Clean Core

    La usage list: cómo saber, en frío, si una clase está liberada

    Antes de llamar a un objeto estándar en ABAP Cloud, la pregunta no es si existe, sino si está liberado para tu uso. Te enseñamos a comprobarlo de verdad: contract check, usage list y estado de release.

    30 may 2026

    #ABAP#ABAP Cloud#Clean Core

    Los tres niveles de extensibilidad en ABAP Cloud: elige antes de programar

    Key user, developer, side-by-side. Antes de escribir la primera línea, decide en qué nivel vive tu extensión. Elegir mal no es un detalle: condena el código al próximo upgrade. Con árbol de decisión y ejemplo.

    28 may 2026

    #ABAP#ATC#Code Inspector

    ATC: qué es y por qué jubila al Code Inspector

    El ABAP Test Cockpit no es un Code Inspector con otro nombre. Es un motor de calidad integrado en ADT, con exenciones gobernadas y ejecución masiva sobre paquetes y transportes. Lo explicamos sin humo.

    25 may 2026

    #ABAP#ATC#CI

    ATC en CI: que la calidad no dependa de la memoria de nadie

    Ejecución en background, Result Browser y la puerta de calidad en la liberación de transportes convierten al ATC en un control continuo. Así se lleva la calidad al pipeline, no al final del sprint.

    24 may 2026

    #ABAP#ATC#prioridades

    Rojos, amarillos y azules: cómo priorizar hallazgos del ATC sin ahogarte

    Un ATC con tres mil findings no es información: es ruido. Prioridades, agrupaciones y baseline convierten esa lista imposible en una cola de trabajo real. Con criterio, no con fuerza bruta.

    22 may 2026

    #ABAP#ATC#ABAP Cloud

    ATC como radar de readiness a ABAP Cloud

    Antes de migrar a ABAP Cloud, la variante ABAP_CLOUD_READINESS te dice exactamente qué de tu código sobrevive y qué no. Es el mapa que convierte una migración a ciegas en un plan.

    20 may 2026

    #ABAP#ATC#exemptions

    ATC en el flujo: exenciones y pragmas sin barrer bajo la alfombra

    Pragmas, pseudocomentarios y exemptions son las tres formas de decirle al ATC que un hallazgo es intencionado. Usadas bien, mantienen limpio el flujo. Usadas mal, esconden bombas. La diferencia.

    19 may 2026

    #ABAP#ATC#variantes

    Check variants y baseline: el ATC no mide igual para todos

    ABAP_CLOUD_DEVELOPMENT_DEFAULT, ABAP_CLOUD_READINESS, ABAP_CLOUD_DEVELOPMENT_PARTNER. Elegir variante y fijar una baseline es lo que separa un ATC útil de un mar de warnings que nadie lee.

    16 may 2026

    #ABAP#abapGit#git

    Mover código entre sistemas con abapGit, sin STMS de por medio

    abapGit puede llevar tu desarrollo de un sistema a otro sin una sola orden de transporte. Es potente y peligroso a partes iguales. Aquí está cómo funciona, cuándo tiene sentido y dónde NO deberías usarlo.

    14 may 2026

    #ABAP#abapGit#git

    abapGit: qué es y por qué deberías versionar tu ABAP de una vez

    abapGit es un cliente Git escrito en ABAP que corre dentro del propio sistema. No es un capricho de la comunidad: es la forma de sacar tu código del ostracismo del transporte y ponerlo bajo control de versiones real.

    12 may 2026

    #ABAP#abapGit#git

    Repos online vs offline en abapGit: cuándo conecta y cuándo no

    abapGit tiene dos modos de repositorio: online, atado a un GitHub remoto, y offline, un ZIP que llevas a mano. No son lo mismo ni sirven para lo mismo. Elegir mal te cuesta un flujo de trabajo entero.

    9 may 2026

    #ABAP#abapGit#git

    abapGit en producción: buenas prácticas y los errores que verás sí o sí

    Objetos no soportados, dependencias fantasma, tokens caducados, master language mal fijado. abapGit funciona de maravilla hasta que te muerde uno de estos. Aquí está la lista de lo que sale mal y cómo evitarlo.

    8 may 2026

    #ABAP#abapGit#git

    Flujo de trabajo en abapGit: staging, commit, push, pull y ramas sin dramas

    El ciclo diario de abapGit no es magia: es git add, git commit y git push traducidos a ADT. Aquí está el flujo real, con la vista Staging, los mensajes de commit que sirven y por qué las ramas te salvan.

    6 may 2026

    #ABAP#abapGit#git

    El .abapgit.xml y el mapeo de paquetes: la pieza que casi nadie mira

    Ese fichero pequeño en la raíz del repo decide cómo se traducen los paquetes ABAP a carpetas y viceversa. Folder logic FULL o PREFIX, master language, starting folder. Aquí está lo que hace y por qué importa.

    4 may 2026

    #ABAP#Web Services#SOAMANAGER

    SOAMANAGER y la configuración de endpoints: la transacción que separa definir un servicio de publicarlo

    Activar la definición de un servicio no lo hace accesible. SOAMANAGER genera el WSDL y el binding; y el fichero hosts, ese gran olvidado, puede tumbar un servicio impecable. Guía sin humo del despliegue SOAP.

    1 may 2026

    #ABAP#Web Services#Security

    Seguridad en Web Services ABAP: usuarios de comunicación, perfiles de autenticación y el error de usar un diálogo

    Un servicio expuesto sin usuario de comunicación y sin perfil de seguridad es una puerta abierta al ERP. Repasamos los cuatro perfiles de SAP, por qué el usuario tipo C existe y qué rol darle sin pasarte.

    30 abr 2026

    #ABAP#Web Services#SOAP

    Errores y faults en Web Services ABAP: el SOAP Fault, el código HTTP y por qué un 200 no significa que fue bien

    El envelope SOAP tiene un cuarto elemento que casi nadie usa: el fault. En REST el error viaja en el código HTTP. Gestionar bien ambos es lo que separa una integración robusta de una que falla en silencio.

    28 abr 2026

    #ABAP#Web Services#Consumer

    Consumir un servicio externo desde ABAP: consumer proxy, puerto lógico y cuándo bajar a HTTP

    Dos formas de llamar a un servicio desde SAP: el proxy generado por wizard con su puerto lógico, o CL_HTTP_CLIENT a pelo. Cuándo usar cada una y por qué el puerto lógico es la pieza que todos olvidan.

    26 abr 2026

    #ABAP#Web Services#SOAP

    Crear un Web Service Provider en ABAP: de la BAPI al servicio publicado sin humo

    RFC, BAPI o clase proxy: tres puertas para exponer lógica SAP como servicio SOAP. Te enseñamos cuál elegir, el flujo real con Enterprise Service y SOAMANAGER, y el error de formato que rompe integraciones.

    25 abr 2026

    #ABAP#Web Services#SOAP

    SOAP vs REST en ABAP: cuándo cada uno y por qué el debate suele estar mal planteado

    SOAP no es viejo ni REST es moderno: son un protocolo y un patrón. En ABAP conviven, y elegir bien te ahorra WSDLs innecesarios o parsers escritos a mano. Con ejemplos reales de payload.

    22 abr 2026

    #ABAP#OData#SAP Gateway

    SEGW frente a CDS: el SAP Gateway no ha muerto, ha cambiado de sitio

    El modelo clásico del SAP Gateway con SEGW, clases MPC y DPC, sigue vivo en muchos sistemas. El enfoque CDS moderno es más limpio, pero no siempre es el que toca. Cuándo cada uno, sin dogma.

    20 abr 2026

    #ABAP#OData#CDS

    OData desde CDS: @OData.publish o Service Definition, no es lo mismo

    Publicar un servicio OData desde una vista CDS con una sola anotación es tentador. Pero @OData.publish y el par Service Definition + Service Binding resuelven problemas distintos. Cuándo usar cada uno, con código real.

    18 abr 2026

    #ABAP#OData#rendimiento

    Rendimiento en OData: $filter, $select y paginación o el servicio se arrastra

    Un servicio OData que devuelve todas las columnas de todas las filas es una bomba de relojería. $select recorta lo ancho, $filter recorta lo alto y la paginación evita traer el mundo. Las tres teclas del rendimiento, con ejemplos reales.

    15 abr 2026

    #ABAP#OData#expand

    $expand y navegación en OData: una llamada, no diez

    Traer un cliente y después, en otra petición, sus pedidos, es el patrón que mata el rendimiento de una app Fiori. $expand y las navegaciones por asociación resuelven en una sola llamada lo que muchos hacen en N. Con detalle real.

    14 abr 2026

    #ABAP#OData#CRUD

    CRUD y Function Imports en OData: cuando el CRUD no basta

    Create, Read, Update, Delete cubren el 90 por ciento de un servicio OData. El otro 10 por ciento son acciones que no son ni crear ni leer: ahí entran los Function Imports. Cómo distinguirlos y no meter lógica donde no toca.

    12 abr 2026

    #ABAP#OData#SAP Gateway

    OData V2 o V4 en ABAP: cuál elegir sin engañarte

    V2 lleva una década en producción; V4 es el futuro y lo que pide Fiori moderno. Cuándo va cada uno, qué te aporta V4 de verdad y por qué migrar por moda es un error. Con ejemplo real de proyecto SEGW.

    10 abr 2026

    #ABAP#HANA#ABAP SQL

    Las reglas de oro del SELECT en HANA: nada de SELECT * ni bucles anidados

    HANA es rápida, pero no perdona el SELECT dentro de un LOOP ni el SELECT *. Las cinco reglas que separan un acceso a datos que vuela de uno que arrastra todo el sistema.

    7 abr 2026

    #ABAP#HANA#rendimiento

    Analizar rendimiento en HANA: mide con ST05, SQLM, SAT, ATC y SWLT

    Optimizar sin medir es superstición. Un recorrido honesto por las herramientas que HANA y ABAP te dan para encontrar el SQL lento de verdad: cada una sirve para algo distinto.

    6 abr 2026

    #ABAP#HANA#code-pushdown

    Code pushdown en la práctica: qué empujar y hasta dónde

    El pushdown no es magia del optimizador: es una decisión tuya. CASE, funciones SQL, WITH, UNION y hints. Repasamos qué se puede empujar a HANA con ABAP SQL y cuándo NO deberías.

    4 abr 2026

    #ABAP#HANA#code-to-data

    Code-to-data: deja de traer la base de datos al ABAP

    El paradigma code-to-data no es una moda de HANA: es admitir que mover millones de filas al servidor de aplicaciones para sumarlas en un LOOP fue siempre un error. Lo explicamos con ejemplos reales.

    2 abr 2026

    #ABAP#HANA#CDS

    CDS Table Functions: cuando una vista CDS no basta y necesitas SQLScript

    Las Table Functions unen lo mejor de CDS y AMDP: modelas como una entidad CDS pero la implementas en SQLScript. Cuándo usarlas, cómo se cablean las dos piezas y el truco de los SELECT-OPTIONS.

    1 abr 2026

    #ABAP#HANA#AMDP

    AMDP: SQLScript dentro de una clase ABAP (sin usuario de base de datos)

    Las ABAP Managed Database Procedures te dejan escribir SQLScript de HANA como un método de clase, transportado como código ABAP. Cuándo tiene sentido, cómo se declara y por qué no es la primera opción.

    29 mar 2026

    #ABAP#CDS#parametros

    Parámetros en CDS: deja de clonar la misma vista doce veces

    Una vista con el año y la sociedad hardcodeados en el WHERE no es reutilizable, ensucia el plan cache y te obliga a mantener copias. Los parámetros tipados resuelven las tres cosas. Con DDL real y la trampa de la recompilación.

    27 mar 2026

    #ABAP#CDS#asociaciones

    Asociaciones vs joins en CDS: el detalle que cambia el plan de HANA

    Un JOIN siempre se ejecuta; una asociación solo cuando alguien navega. En vistas reutilizadas eso reduce entre un 30 y un 80 por ciento la transferencia. Con DDL real y la trampa de la cardinalidad.

    25 mar 2026

    #ABAP#CDS#anotaciones

    Las seis anotaciones de CDS que deberías declarar siempre (y una que puede mentirte)

    compareFilter, authorizationCheck, clientHandling, preserveKey. No son adorno: su ausencia cuesta entre un 15 y un 30 por ciento en vistas con joins, y una de ellas mal puesta devuelve resultados incorrectos sin avisar.

    22 mar 2026

    #ABAP#CDS#rendimiento

    Rendimiento en CDS: la lógica va donde están los datos, no al revés

    El LOOP con SELECT SINGLE dentro era normal en ECC. En S/4HANA es el pecado capital. Code pushdown, por qué el join nativo gana a FOR ALL ENTRIES y la función de string que convierte 1 segundo en 60.

    21 mar 2026

    #ABAP#CDS#anotaciones

    Anotaciones analíticas y semánticas: la CDS que Fiori y SAC entienden solas

    Un decimal sin @Semantics es solo un número. Con las anotaciones correctas, Fiori formatea la moneda, SAC convierte divisas y el drill-down temporal funciona sin una línea de código de UI. Con DDL real de cubo y dimensión.

    19 mar 2026

    #ABAP#Web Dynpro#MVC

    El patrón MVC de Web Dynpro ABAP: por qué separar no es opcional

    Modelo, Vista, Controlador. Web Dynpro no te sugiere MVC: te lo impone. Entender esa arquitectura es la diferencia entre una app que sobrevive al mantenimiento y un dynpro clásico disfrazado de web.

    17 mar 2026

    #ABAP#Web Dynpro#FPM

    Floorplan Manager frente a Web Dynpro clásico: cuándo estandarizar y cuándo migrar

    FPM no reemplaza a Web Dynpro: lo estandariza. UIBB, floorplans y configuración frente a vistas hechas a mano. Y la pregunta incómoda: cuándo tiene sentido seguir en WD y cuándo saltar a Fiori.

    14 mar 2026

    #ABAP#Web Dynpro#Componentes

    Componentes reutilizables en Web Dynpro: component usage sin acoplamiento

    Reutilizar un componente Web Dynpro no es copiar y pegar. Es declarar el uso, instanciar el component usage y mapear contextos. Bien hecho, escala; mal hecho, acopla todo con todo.

    13 mar 2026

    #ABAP#Web Dynpro#Navegacion

    Eventos, acciones y navegación en Web Dynpro: el flujo que hay que ver

    De un clic a un cambio de vista. Acciones, plugs de entrada y salida, enlaces de navegación y el modelo de fase. Si entiendes este flujo, dejas de programar a ciegas.

    11 mar 2026

    #ABAP#Web Dynpro#Controladores

    Controladores y componentes en Web Dynpro: quien manda y quien expone

    Controlador de vista, controlador global, controlador de interfaz. Entender los tres tipos y los metodos hook es lo que separa a quien copia snippets de quien disena componentes reutilizables.

    9 mar 2026

    #ABAP#Web Dynpro#Context

    El context de Web Dynpro: nodos, atributos y binding sin dramas

    El context es la memoria de tu aplicación Web Dynpro. Nodos, cardinalidad y binding automático. Domina esto y la mitad de los bugs de una app WD desaparecen antes de nacer.

    8 mar 2026

    #ABAP#ALV#fieldcatalog

    Catálogo de campos, layout y variantes: lo que sostiene el ALV

    Columnas, textos, visibilidad, layout y variantes que el usuario guarda. Con SALV se hace con objetos tipados, no con estructuras planas. Cierre de la serie ALV con código ABAP real.

    5 mar 2026

    #ABAP#ALV#editable

    ALV editable: edición y validación sin dramas

    Cuando el usuario escribe en la celda, empieza tu responsabilidad. data_changed para validar, F4 para ayudas, y persistir con user command. El grid editable con código ABAP real.

    3 mar 2026

    #ABAP#ALV#toolbar

    Toolbar y funciones propias en ALV: botones que hacen tu trabajo

    La barra estándar es solo el principio. Con SALV añades funciones propias con add_function; con ALV Grid, botones en el evento toolbar. Vemos ambos caminos con código ABAP real.

    1 mar 2026

    #ABAP#ALV#eventos

    Eventos y hotspots en ALV: cuando el listado empieza a responder

    Hotspot, double-click, user command. La interacción en ALV Grid va por eventos y handlers, no por callbacks sueltos. Vemos el patrón con SET HANDLER y código ABAP real de un evento hotspot.

    26 feb 2026

    #ABAP#ALV#SALV

    Un ALV en diez líneas con CL_SALV_TABLE

    El listado más rápido que puedes escribir en ABAP clásico: factory, display y poco más. Vemos el mínimo real con CL_SALV_TABLE, en pantalla completa y dentro de un container, con código ABAP real.

    25 feb 2026

    #ABAP#ALV#SALV

    SALV vs REUSE_ALV: por qué CL_SALV_TABLE es el camino

    El zoo de funciones REUSE_ALV_* funciona, pero envejece mal. Comparamos la familia clásica con CL_SALV_TABLE y explicamos por qué la clase es el estándar moderno. Con código ABAP real.

    23 feb 2026

    #ABAP#ABAP SQL#Seguridad

    Host expressions y la @: tu primera defensa contra la inyección en ABAP SQL

    Variables host, host expressions con @( ... ) y SQL dinámico. La diferencia entre pasar un valor y concatenar una cadena es la diferencia entre un sistema seguro y uno con una puerta abierta. Con código real.

    21 feb 2026

    #ABAP#ABAP SQL#CTE

    CTEs con WITH y subconsultas: consultas por pasos sin vistas de usar y tirar

    La Common Table Expression (WITH +cte AS ...) descompone una consulta compleja en pasos legibles que viven dentro de la sentencia. Con código real, el prefijo + obligatorio y el cierre ENDWITH que se olvida.

    18 feb 2026

    #ABAP#ABAP SQL#GROUP BY

    Agregaciones y GROUP BY: que la base te devuelva los totales, no las lineas

    SUM, COUNT, MAX y GROUP BY en la sentencia. Sumar en un LOOP es traer diez mil lineas para producir tres. Con código real sobre las tablas de vuelos y el filtro HAVING que muchos olvidan.

    17 feb 2026

    #ABAP#ABAP SQL#CASE

    Expresiones SQL en ABAP: deja que la base calcule por ti

    CASE, aritmética y funciones dentro del SELECT. Todo lo que resuelvas en la sentencia es cálculo que no sube a ABAP. Con código real de CASE, CAST, DIVISION, ROUND y funciones de cadena.

    15 feb 2026

    #ABAP#ABAP SQL#JOIN

    JOIN en la base o bucle anidado: el patrón que decide tu rendimiento

    El SELECT dentro de un LOOP sigue apareciendo en cada revisión de código. Un JOIN resuelve en un viaje lo que un bucle anidado resuelve en miles. Lo vemos con código real sobre las tablas de vuelos.

    13 feb 2026

    #ABAP#ABAP SQL#Open SQL

    ABAP SQL moderno: por qué la sintaxis con comas y @ no es cosmética

    Comas entre columnas, INTO al final, declaraciones en línea con @DATA y variables host con @. La nueva sintaxis de Open SQL no es azúcar: es lo que activa el modo estricto y te salva de errores silenciosos.

    12 feb 2026

    #ABAP#ABAP OO#Eventos

    Eventos en ABAP OO: el emisor no sabe quién escucha, y así debe ser

    EVENTS, RAISE EVENT y SET HANDLER permiten desacoplar quien provoca una acción de quien reacciona. El modelo emisor-manejador de ABAP, con sus trampas de orden y registro. Con ABAP OO real.

    9 feb 2026

    #ABAP#ABAP OO#Excepciones

    Excepciones basadas en clases en ABAP: deja de mirar sy-subrc

    TRY CATCH, la jerarquia de CX_ROOT y el encadenamiento con PREVIOUS. Por que las excepciones de clase le ganan a sy-subrc y como no perder la causa raiz de un error. Con ABAP OO real.

    7 feb 2026

    #ABAP#ABAP OO#Polimorfismo

    Polimorfismo y casting en ABAP: la referencia del padre, el método del hijo

    El polimorfismo permite tratar objetos distintos por un único punto de acceso. Narrowing y widening cast, cuándo son seguros y cuándo lanzan CX_SY_MOVE_CAST_ERROR. Con ABAP OO real.

    5 feb 2026

    #ABAP#ABAP OO#Interfaces

    Interfaces frente a herencia en ABAP: elige contrato, no árbol genealógico

    ABAP solo admite herencia simple y resuelve la herencia múltiple con interfaces. Cuándo heredar, cuándo implementar una interfaz y por qué casi siempre gana la interfaz. Con ABAP OO real.

    2 feb 2026

    #ABAP#ABAP OO#Encapsulacion

    Encapsulación en ABAP: cada atributo público es una deuda

    PUBLIC, PROTECTED, PRIVATE y READ-ONLY no son burocracia. Son el contrato de tu clase con el resto del sistema, y declarar de más hoy se paga en cada evolución. Con ejemplos de ABAP OO real.

    1 feb 2026

    #ABAP#ABAP OO#Clases

    Clases y objetos en ABAP: el molde no es el mueble

    Una clase es una plantilla; un objeto es una instancia con estado propio. Entender esa diferencia, y el papel de NEW frente a CREATE OBJECT, es lo que separa el ABAP OO real del procedimental disfrazado.

    30 ene 2026

    Que no se te pase el primero

    Aprende SAP moderno cada semana: ABAP Cloud, S/4HANA, Fiori, BTP e IA. Sin spam, solo lo bueno.