SAP BTP y extensibilidad

Clean Core

Clean core es el principio de SAP para mantener un sistema SAP S/4HANA cerca del estándar, de modo que las actualizaciones sigan siendo predecibles: las extensiones usan API liberadas y puntos de extensión estables, se ejecutan on-stack con ABAP Cloud o side-by-side en SAP BTP, y evitan modificar el código de SAP. Clean core es un objetivo de gobierno que se mide a lo largo del tiempo, no un producto.

Datos clave

Tipo
Principio de arquitectura y de gobierno
Capa
Lógica de negocio y modelo de datos; SAP BTP
Opciones de extensión
Extensibilidad key user, extensibilidad de desarrollador (ABAP Cloud), side-by-side en SAP BTP
Se mide con
Comprobaciones de ABAP Test Cockpit; niveles de clean core A–D en SAP Cloud ALM
Responsables
Arquitectos empresariales, responsables de desarrollo, CoE de SAP
Se aplica a
Public Edition (impuesto por diseño); Private Edition y on-premise (mediante gobierno)
Capa: Lógica de negocio y modelo de datosDónde se ubica ▾
Dónde se ubica: L5 · Lógica de negocio y modelo de datosCapa: Lógica de negocio y modelo de datos. También abarca: SAP BTP.L1L2L3L4L5L6BTP

Capa: Lógica de negocio y modelo de datos

También abarca: SAP BTP

Abrir el mapa de arquitectura →

¿Qué significa clean core en la práctica?

A menudo se reduce clean core a "nada de código personalizado", que no es lo que describe SAP. El principio trata de cómo se desvía un sistema del estándar, no de si lo hace:

  • Las extensiones usan API y puntos de extensión liberados, para que SAP pueda cambiar los elementos internos sin romperlas.
  • La configuración se prefiere al código siempre que el estándar ofrezca un ajuste.
  • La integración pasa por interfaces liberadas y documentadas en lugar de acceder directamente a las tablas.
  • Los datos y las operaciones siguen los estándares actuales, de modo que el sistema siga siendo soportable.

Un sistema puede tener muchas extensiones y seguir siendo clean, siempre que cada una dependa solo de lo que SAP se ha comprometido a mantener estable. Por tanto, clean core es una regla sobre dependencias, no una prohibición de diferenciarse.

¿Cómo funcionan los niveles de clean core?

La guía actual de SAP clasifica los objetos personalizados en cuatro niveles, que SAP Cloud ALM usa para informar de una cuota de clean core:

NivelQué usa el objetoClasificación
ASolo ABAP Cloud y API liberadasClean core
BAPI liberadas y API clásicas que SAP clasifica para uso del clienteClean core
CObjetos internos de SAP no clasificados ni pensados para uso del clienteClean con condiciones; requiere supervisar los cambios
DModificaciones y otros patrones que SAP no soporta para extensionesNo es clean core

Material anterior de SAP describe un modelo de extensibilidad de tres niveles con una intención comparable, y ambos vocabularios siguen apareciendo en la documentación de SAP. Los niveles de clean core convierten el principio en algo que un equipo puede medir objeto por objeto.

¿Cuáles son los puntos fuertes del principio clean core?

  • Actualizaciones predecibles: las extensiones que solo usan API liberadas siguen funcionando entre releases, lo que reduce las pruebas de regresión y los proyectos de actualización.
  • Compatibilidad con la nube: las mismas reglas se aplican en SAP S/4HANA Cloud Public Edition, de modo que un equipo on-premise que las sigue mantiene abiertas sus opciones.
  • Una escalera de decisión compartida: primero el estándar, luego la extensibilidad key user, luego la extensibilidad de desarrollador y luego side-by-side, lo que da a arquitectos y consultores un lenguaje común.
  • Medibilidad: las comprobaciones de ABAP Test Cockpit y la clasificación por niveles hacen visible el avance en lugar de anecdótico.
  • Menor coste a largo plazo: menos modificaciones significan menos ajustes en los cambios de support package y de release.

Para cualquier organización que quiera mantenerse en releases actuales de SAP, clean core es la política de extensiones que las propias herramientas y la guía de SAP están diseñadas para respaldar.

¿Dónde están los límites de clean core?

  • No decide qué construir. Clean core gobierna cómo depende una extensión de SAP, no si merece la pena construir el requisito que hay detrás.
  • Desplaza la complejidad en lugar de eliminarla. Una extensión side-by-side es clean para el núcleo, pero añade integración, identidad, supervisión y un segundo ciclo de vida.
  • La cobertura de API es desigual. Donde no existe una API liberada, los equipos recurren al nivel C o esperan, y esa brecha es una queja frecuente en las comunidades de profesionales.
  • El código heredado lleva años. Las grandes bases de código de la época de ECC avanzan nivel a nivel; la medición muestra la distancia, no el camino.
  • La responsabilidad queda fuera del alcance. Una extensión puede ser perfectamente clean y aun así carecer de responsable, de documentación o de un vínculo con el proceso al que da soporte.

Clean core mantiene el ERP actualizable; la responsabilidad, el diseño de procesos y el coste del landscape que lo rodea siguen siendo cuestiones aparte.

¿Cómo se decide dónde va una extensión?

Recorra esta escalera de arriba abajo y deténgase en la primera opción que cumpla el requisito:

  1. Estándar o configuración. ¿Puede cubrirlo un ajuste, un business role o una aplicación suministrada?
  2. Extensibilidad key user. ¿Es un campo personalizado, una comprobación, un valor por defecto o una adaptación de UI? La necesidad de Alder Manufacturing de un campo de valoración del proveedor en los pedidos de compra termina aquí.
  3. Extensibilidad de desarrollador. ¿Necesita ABAP personalizado cerca de los datos y las transacciones de SAP S/4HANA? Constrúyalo con ABAP Cloud on-stack.
  4. Side-by-side en SAP BTP. ¿Da servicio a usuarios externos, combina varios sistemas o necesita su propio ciclo de vida? Un portal de autoservicio para Cedar Office Supply pertenece a este nivel.
  5. Extensión clásica. Solo con una excepción documentada, un responsable y un plan para subir de nivel.

La decisión de clean core se toma por requisito, y el motivo de cada elección debe registrarse donde los arquitectos puedan encontrarlo más adelante.

¿Cuáles son los errores habituales con clean core?

  1. Tratarlo como una limpieza puntual. Sin comprobaciones en el proceso de desarrollo, aparecen nuevos objetos de nivel C y D después de que termine el proyecto.
  2. Prohibir el nivel C por completo. Algunos requisitos aún no tienen una API liberada; un objeto de nivel C supervisado puede ser la elección honesta.
  3. Contar objetos en lugar de riesgo. Una modificación en una rutina central de contabilización pesa más que muchos reports sin uso.
  4. Trasladarlo todo a SAP BTP. Side-by-side no es automáticamente más clean si la extensión sigue necesitando interfaces no liberadas.
  5. Olvidar la capa de UI. Las aplicaciones SAP Fiori copiadas y modificadas conllevan su propio riesgo en las actualizaciones; los mecanismos de extensión de UI de SAP, como los adaptation projects, son la vía más segura.

La mayoría de los fracasos de clean core son fallos de gobierno que se manifiestan más tarde como esfuerzo de actualización.

Clean core vs. ABAP Cloud: ¿cuál es la diferencia?

Clean coreABAP Cloud
Qué esUn principio y un objetivo de gobiernoUn modelo de desarrollo y una versión del lenguaje ABAP
AlcanceExtensiones, configuración, integración, datos y operacionesCódigo ABAP personalizado on-stack o en el entorno ABAP de SAP BTP
Se impone mediantePolíticas, comprobaciones de ABAP Test Cockpit, niveles de clean coreEl compilador: solo se permiten API liberadas
RelaciónEl objetivoUna de las principales vías para alcanzar el objetivo en el código ABAP

Clean core es el estado objetivo; ABAP Cloud es el modelo de desarrollo que hace que el código ABAP personalizado cumpla ese objetivo por construcción.

Preguntas frecuentes

¿Clean core solo es relevante para SAP S/4HANA Cloud Public Edition?

No. Public Edition impone clean core por diseño, porque allí los clientes no pueden modificar el código de SAP. Private Edition y on-premise permiten modificaciones, por lo que clean core se convierte en una decisión de gobierno. La guía de SAP y las comprobaciones de ABAP Test Cockpit se aplican a las tres opciones de implementación.

¿Clean core significa no tener código personalizado?

No. Clean core permite abundante código personalizado, siempre que dependa solo de API y puntos de extensión liberados. Un sistema con muchas extensiones ABAP Cloud bien construidas y aplicaciones side-by-side puede ser más clean que un sistema con unas pocas modificaciones directas.

¿Cómo se mide clean core?

ABAP Test Cockpit ejecuta comprobaciones de clean core sobre el código personalizado, y SAP ofrece una variante de comprobación específica para la preparación para clean core. SAP Cloud ALM clasifica los objetos en los niveles A a D e informa de una cuota de clean core, lo que hace visible el avance a lo largo del tiempo.

¿Qué diferencia hay entre clean core y ABAP Cloud?

Clean core es el principio de mantener el ERP cerca del estándar. ABAP Cloud es el modelo de desarrollo que restringe el código ABAP a API liberadas y a funciones del lenguaje preparadas para la nube. ABAP Cloud es una vía para lograr clean core; la extensibilidad key user y la side-by-side son otras.

¿Un sistema con modificaciones puede considerarse clean core?

No en lo que respecta a los objetos modificados. Las modificaciones se clasifican en el nivel más bajo, fuera de clean core. El resto del sistema puede seguir siendo clean, y muchas organizaciones registran las modificaciones restantes como deuda técnica con un plan para sustituirlas con el tiempo.

Fuentes

Se aplica a
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition
Última revisión

SAP, SAP Fiori, SAPUI5, SAP S/4HANA, SAP BTP y los demás productos y servicios de SAP mencionados son marcas comerciales o marcas registradas de SAP SE (o de una empresa afiliada de SAP) en Alemania y otros países. Esta guía es independiente y no está afiliada, patrocinada ni respaldada por SAP SE.