Datos y servicios

API liberadas y SAP Business Accelerator Hub

Las API liberadas son objetos y servicios de SAP, como servicios OData y SOAP, eventos, vistas CDS y clases ABAP, que SAP ha marcado con un estado de liberación y un contrato de liberación que promete estabilidad a lo largo de las actualizaciones. El SAP Business Accelerator Hub es el catálogo público de SAP donde se documentan las API remotas y los eventos, y donde pueden probarse.

Datos clave

Tipo
Contrato de estabilidad sobre objetos SAP, más el catálogo público de API de SAP
Capa
Servicios y API
Contratos de liberación
C0 extensión, C1 uso interno del sistema, C2 API remota, C3 configuración, C4 AMDP
Estados de liberación
Released, Deprecated, Decommissioned
Dónde consultar
SAP Business Accelerator Hub (remotas); pestaña API State en ABAP Development Tools (locales)
Quién trabaja con ello
Arquitectos de integración, desarrolladores ABAP y SAP BTP, arquitectos empresariales
Se aplica a
SAP S/4HANA (todas las opciones de implementación), SAP BTP ABAP environment
Capa: Servicios y APIDónde se ubica ▾
Dónde se ubica: L4 · Servicios y APICapa: Servicios y API.L1L2L3L4L5L6BTP

¿Qué hace que una API de SAP esté liberada?

Un objeto está liberado cuando su estado de liberación es Released bajo un contrato de liberación concreto, que define el uso permitido y los cambios que SAP evitará:

ContratoFinalidad
C0 ExtendPuntos de extensión estables, por ejemplo en tablas o vistas CDS
C1 Use system-internallyInterfaz estable para el código personalizado del mismo sistema
C2 Use as remote APIInterfaz estable para consumidores externos a lo largo de las actualizaciones
C3 Manage configuration contentPersistencia estable para el contenido de configuración
C4 Use in AMDPInterfaz estable para los procedimientos de base de datos gestionados por ABAP

Un objeto Deprecated sigue funcionando, pero debe sustituirse por su sucesor; un objeto Decommissioned ya no tiene soporte, un estado que SAP aplica actualmente solo a las API remotas. Para los objetos C0 y C1, un ajuste de visibilidad decide si pueden usar el objeto los desarrolladores de ABAP Cloud, los key users o ambos.

Una API liberada es, por tanto, un compromiso sobre un objeto y una finalidad, no una etiqueta general para cualquier cosa que tenga una interfaz.

¿Qué contiene el SAP Business Accelerator Hub?

El SAP Business Accelerator Hub, antes SAP API Business Hub, es una aplicación web alojada por SAP. Cataloga API de SAP y de partners (OData, SOAP, REST), eventos de negocio, vistas CDS, data products, integration flows y process blueprints.

Para cada API, el hub muestra la especificación, la documentación y, en muchas API, un sandbox para probar llamadas antes de conectar ningún sistema. Un desarrollador de Alder Manufacturing que debe crear facturas de proveedor desde un portal externo empieza aquí: busca la API, consulta su estado y su sucesor, la prueba en el sandbox y luego descarga la especificación.

Hay dos límites importantes. El hub documenta las API estándar de SAP, no las específicas de cada cliente, y las API se listan por producto, de modo que una API listada para una edición no está automáticamente disponible en otra. El SAP Business Accelerator Hub es el punto de partida para el diseño de API remotas, no la prueba de que una API existe en un sistema determinado.

¿En qué se diferencian las API liberadas locales y remotas?

Las API liberadas se dividen en dos grupos prácticos:

  • API locales (contrato C1). Vistas CDS, clases, behavior definitions y otros objetos liberados que usa el código ABAP personalizado del mismo sistema. El código ABAP Cloud solo puede llamar a estas. Los desarrolladores las encuentran en ABAP Development Tools, donde la pestaña API State muestra el estado y el contrato de liberación, y en la sección de extensibilidad para desarrolladores del Business Accelerator Hub.
  • API remotas (contrato C2). Servicios OData, SOAP y de otro tipo que llaman a través de la red las aplicaciones de SAP BTP, el middleware o sistemas de terceros. Están documentadas en el Business Accelerator Hub.

Cuando SAP sustituye una API, la antigua pasa a estar obsoleta y se designa un sucesor; SAP declaró obsoleta la API OData Production Order en SAP S/4HANA Cloud 2008, por ejemplo.

La distinción determina la arquitectura: las API locales sirven a las extensiones on-stack construidas con ABAP Cloud, mientras que las API remotas sirven a las extensiones side-by-side y a las integraciones.

¿Qué cambia entre SAP S/4HANA Cloud, on-premise y SAP BTP?

  • SAP S/4HANA Cloud Public Edition: las API liberadas son la única vía de acceso. El código ABAP personalizado usa solo API liberadas locales, y las API remotas se exponen mediante communication scenarios que un administrador activa con un communication arrangement.
  • Private Edition y on-premise: las API liberadas conviven con interfaces clásicas como las BAPI. Las API OData remotas se activan como los demás servicios OData en SAP Gateway, por ejemplo con /IWFND/MAINT_SERVICE para OData V2. Cuando no existe una API liberada, las directrices de SAP permiten wrappers personalizados alrededor de API clásicas de la lista, liberados con el contrato C1.
  • SAP BTP ABAP environment: se aplican los mismos contratos de liberación, y los objetos personalizados usados entre software components están liberados o conectados mediante relaciones entre software components.

Los clientes solo pueden liberar sus propios objetos con los contratos C0 y C1. El concepto de API liberada es idéntico en todas las ediciones; lo que difiere es cuánto acceso no liberado sigue tolerando cada edición.

¿Por qué son importantes las API liberadas para el clean core?

  • Estabilidad ante actualizaciones por contrato. SAP verifica los objetos entregados frente a su contrato de liberación, por lo que no se esperan cambios incompatibles en una API liberada durante una actualización.
  • Cumplimiento obligatorio, no solo recomendación. En ABAP Cloud, el compilador rechaza las llamadas a objetos que no están liberados para el desarrollo en la nube, lo que convierte la regla de clean core en una comprobación de sintaxis.
  • Un vocabulario común. Los mismos estados y contratos se aplican en todas las ediciones de SAP S/4HANA y en el SAP BTP ABAP environment.
  • Cambio planificado. La declaración de obsolescencia con un sucesor designado ofrece a los equipos una vía de migración en lugar de una interfaz rota.

Las API liberadas son la regla de dependencias sobre la que se apoya el nivel A de la clasificación de clean core.

¿Dónde terminan las API liberadas?

  • La cobertura es desigual. No todos los business objects ni todos los campos tienen una API liberada. Una queja frecuente en las comunidades de profesionales es encontrar la operación necesaria solo en una BAPI clásica o en una tabla interna.
  • Un contrato no es un diseño. Una API liberada garantiza la estabilidad técnica, no que su granularidad se ajuste a un proceso; puede que se necesiten varias llamadas para un solo paso de negocio.
  • El comportamiento todavía puede cambiar. Las reglas de contrato de SAP permiten cambios compatibles en las API liberadas y no prometen una compatibilidad descendente total, por lo que los consumidores deben volver a probar tras las actualizaciones.
  • La obsolescencia es fácil de ignorar. Las API obsoletas siguen funcionando durante un tiempo, por lo que el cambio al sucesor tiende a retrasarse.

Las API liberadas eliminan el riesgo de actualización de la interfaz; el ajuste al proceso y el ciclo de vida de cada consumidor siguen siendo responsabilidad del equipo.

¿Cuáles son los errores comunes con las API liberadas?

  1. Suponer que todo servicio OData es una API. Un servicio OData generado para una aplicación SAP Fiori es un servicio de UI. Compruebe el estado de liberación antes de que una integración dependa de él.
  2. Diseñar solo a partir del hub. Confirme que la API existe y está activada en el sistema y el release de destino.
  3. Ignorar los avisos de obsolescencia. Haga seguimiento de los sucesores de cada API en uso.
  4. Envolverlo todo. Los wrappers C1 personalizados alrededor de API clásicas cubren carencias; cada uno necesita un responsable y una revisión cuando SAP libera un sucesor.

El criterio de decisión práctico es sencillo: si el objeto no tiene un estado de liberación para el uso previsto, trate cualquier dependencia de él como deuda técnica y regístrela.

API liberadas frente a OData: ¿cuál es la diferencia?

API liberadasOData
Qué esUn contrato de estabilidad que SAP asocia a objetos concretosUn protocolo para leer y modificar datos a través de HTTP
Pregunta que responde¿Puedo confiar en esto a lo largo de las actualizaciones?¿Cómo llama un cliente al servicio?
AlcanceOData, SOAP, eventos, vistas CDS, clases y másCualquier servicio OData, liberado o no
Dónde comprobarloEstado de liberación en ABAP Development Tools o en el Business Accelerator HubMetadatos del servicio y catálogo de servicios del sistema

Muchas API liberadas usan OData, pero OData por sí solo no dice nada sobre la estabilidad: es el estado de liberación lo que convierte un servicio en una API liberada.

Preguntas frecuentes

¿Cómo sé si un objeto SAP es una API liberada?

Compruebe su estado y su contrato de liberación. En ABAP Development Tools, la pestaña API State de la vista Properties muestra si un objeto está liberado, obsoleto o retirado y bajo qué contrato. Las API remotas muestran su estado y sus sucesores en el SAP Business Accelerator Hub.

¿Puedo usar objetos SAP no liberados en SAP S/4HANA Cloud Public Edition?

No en el código ABAP personalizado. Public Edition ofrece solo el modelo de desarrollo ABAP Cloud, que admite API liberadas. Private Edition y on-premise también admiten ABAP clásico, por lo que allí los objetos no liberados siguen siendo técnicamente accesibles, a costa del riesgo en las actualizaciones.

¿Qué ocurre cuando una API liberada pasa a estar obsoleta?

Una API obsoleta sigue funcionando, pero ya no debe usarse en los desarrollos nuevos, y SAP designa un sucesor cuando existe. Los equipos deben planificar el cambio con su ciclo de releases, porque las API remotas retiradas ya no tienen soporte.

¿Pueden los clientes liberar sus propias API?

Sí, con límites. Los clientes pueden liberar sus propios objetos de desarrollo con el contrato C0 o C1, para que su propio código ABAP Cloud pueda usarlos. El contrato de API remota C2 y los demás contratos los usa SAP para los objetos entregados.

Fuentes

Se aplica a
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition · SAP BTP
Ú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.