En el CodeJam del que os hablaba en la entrada anterior, pudimos ver dos modelos de programación: ABAP RESTful Application Programming Model (RAP) y Cloud Application Programming Model (CAP).
¿Cuál es mejor que el otro? Ninguno, todo depende de tu caso de uso.
Si vienes del mundo ABAP y la mayoría de la información que quieres gestionar viene de un entorno SAP, la apuesta lógica es RAP.
Pero si tienes que integrar información de distintas fuentes y eres un desarrollador del mundo cloud, la opción lógica sería CAP.
Esa es una primera aproximación muy genérica, pero puede valer como punto de partida.
Como dijo Thomas Jung en la sesión del otro día, con CAP puedo desarrollar aplicaciones que no necesitan ABAP, ni como lenguaje ni como runtime, ya que puedo desplegarlas en cualquier entorno cloud, no necesito un NetWeaver (ABAP Platform ahora), como en el caso de RAP.
En este artículo de 2020, hacen una comparativa entre ambos modelos: Comparing ABAP Restful Application Programming (RAP) model with the Cloud Application Programming (CAP) model
En 2024, han evolucionado ambos, pero la base sigue siendo la misma y lo que comentan en el artículo es perfectamente válido.
Para mí no es que CAP sea el sucesor de RAP, pueden convivir ambos.
Y hay algunas cosas en el artículo con las que puedo discrepar, como que hacer una aplicación en CAP sea más simple que hacerla en RAP; todo depende del tipo de aplicación que quieras hacer.
En esta sesión, correspondiente al Devtoberfest 2020, el propio Thomas Jung nos explica los fundamentos de CAP:
En el vídeo anterior, veis que se apoya en un artículo de 2018 y en la documentación oficial de CAP (Capire).
Por cierto, que dicha documentación se mantiene como un proyecto de código abierto y, como tal, puedes contribuir en su mejora, aquí tienes el repositorio: Documentation for SAP Cloud Application Programming Model
En esta otra sesión del Devtoberfest 2023, os cuentan cómo hacerlo:
Sin entrar en muchos detalles, lo que tenemos que entender de CAP, para empezar, es el siguiente gráfico:

En una aplicación CAP, vamos a poder utilizar distintas herramientas de desarrollo (BAS, Visual Studio…) para modelar nuestros datos utilizando CDS (ojo, no ABAP CDS), que leerán y/o almacenarán datos en SAP HANA (o cualquier otra base de datos), sobre las que podremos ejecutar ciertos servicios (en el lenguaje que queramos) que se podrán consumir en distintas plataformas (BTP o no).
La información se la presentaremos al usuario en aplicaciones Fiori (o no) y se desplegarán sobre cualquier infraestructura cloud, como Cloud Foundry o Kyma, dos de los entornos que tenemos en SAP BTP.
Veamos un «elaborado» ejemplo, que podéis encontrar en la documentación:
En próximas entradas, haré algo aún más elaborado… 😉
PD.- Si quieres que te cuente más de esto, apúntate aquí: ¡Quiero saber más de SAP CAP!
