ABAP RESTful Programming Model: un paso más

En la entrada de ayer os comentaba que algo, con lo que es probable que ni os hayáis puesto aún, se estaba quedando ya obsoleto. Realmente, debería decir que ha ido evolucionando.

Si ayer hablaba del ABAP Programming Model, hoy escribo de algo que no es exactamente lo mismo: ABAP RESTful Programming Model.

Todo esto está muy relacionado con el anunciado ABAP en Cloud, que nos presentaron hace unos meses en el SAP TechEd y que se basa en lo siguiente:

    • Modelado (CDS)
    • Aprovisionamiento de servicios (OData)
    • Consumo de servicios (Fiori)

Entre otras cosas, en este modelo, deberíamos trabajar con las ABAP Development Tools (ADT), ya no hace falta entrar a la SE80 por SAP GUI, a pesar de la flamante versión 7.60 😉

El ABAP sigue vivo, aunque no será el de siempre, y hay que habituarse al uso de API’s y el modelado de datos con CDS.

Aquí os dejo el artículo donde hablan de todo esto: Evolution of the ABAP Programming Model

¿Y tú, te apuntas a la evolución o piensas seguir con tus ALV’s? 😉

ABAP Programming Model: algo que te debería sonar

Hace menos de 1 año escuché esta frase: «El ABAP orientado a objetos casi no se utiliza». Que es algo así como decir, a estas alturas del partido, que La Tierra es plana, pero ya sabéis que hay de todo en este mundo… 😉

También cuando cuento algo de SAP Cloud Platform alguien me dice lo de «todo esto es muy  nuevo»… y cuando miro el primer curso que hubo en openSAP sobre esto veo que es del 26 de octubre de 2013… ¡hace casi 5 años y medio!

Lo que sí es cierto es que, por ejemplo, todo lo de SAP Cloud Platform ha cambiado bastante desde que empezó, pero de ahí a que sea «muy nuevo», hay una gran diferencia.

Y aunque tengo claro que esto es un poco predicar en el desierto, vuelvo de nuevo a la carga, intentando explicar por qué, sobre todo si eres desarrollador, deberías ir pensando en actualizarte.

La clave de todo está en entender este gráfico:

Simplificándolo mucho: tengo mis datos en HANA, los modelo con CDS, los pongo en formato OData y los consumo en aplicaciones SAPUI5/Fiori.

De entrada, tengo que tener muy claros algunos conceptos: HANA, CDS, OData y SAPUI5. Algo que ya era básico a finales de 2017… 😉

¿Por dónde empiezo? Aquí os dejo una pequeña ayuda: Be prepared for the ABAP Programming Model for SAP Fiori

¿Te vas a actualizar o vas a pasarte la vida haciendo batch-inputs?

Y lo mejor es que esto, está empezando a quedarse «obsoleto»… 😉

 

SAP Central Fiori Launchpad: ¿esto qué es?

Hace menos de un mes publiqué un artículo sobre las opciones y recomendaciones a la hora de implementar SAP Fiori, basado en un documento publicado por SAP en enero de 2019.

Aquí tenéis la nueva versión del documento, actualizada en febrero: SAP Fiori Deployment Options and System Landscape Recommendations (February 2019, Version 3.0)

La novedad principal es la aparición del concepto SAP Central Fiori Launchpad, que sería un sistema central en el que consolido las llamadas a todos los sistemas que pudiera tener desde ese punto central.

De esta manera, podría tener sistemas con un Fiori embebido, otros con un front-end dedicado, otras aplicaciones en el Fiori Cloud, incluso aplicaciones cloud SAP no-Fiori o aplicaciones no-SAP.

Evidentemente, todos los Fiori Launchpads se entienden entre sí, ya que la información está estructurada del mismo modo y en los sistemas no-Fiori o no-SAP, habrá que utilizar el formato Common Data Model (CDM).

¿Qué es esto del Common Data Model (CDM)? Pues básicamente una forma de modelar los datos para que puedan ser entendidos por distintas aplicaciones y/o procesos de negocio.

Esto es algo que se inventó Microsoft pero en lo que han entrado otros fabricantes, de cara proporcionar una plataforma que pueda servir para intercambiar información de manera estándar. Os dejo un enlace: Common Data Model and Data Integration

Si queréis verlo con más detalle, aquí tenéis un vídeo:

Y cuidadito, que ahora resulta que CDS quiere decir Common Data Service, además de Core Data Service… ya sabéis, facilitando las cosas 😉

SAP TechEd 2018 Las Vegas (III)

El futuro/presente del ABAP ya está aquí…

 

¿Aún no has probado lo de las Mobile Cards?

 

Próximamente en sus pantallas: Fiori 3.0. Si no has visto la 1 y la 2, no te vas a enterar de nada… 😉

 

Blockchain en todo y para todo, en el enlace del tuit te cuentan la historia de ¿qué es esto del Blockchain?

 

Los datos también tienen su corazoncito… ❤❤❤

 

Todo apunta a Fiori 3.0

 

SAP Fiori Cloud y olvídate de todo 😉

 

Una de estas imágenes que tanto me gustan, donde todo se integra por arte de magia… 😉

 

SAP Activate te ayuda en tu proceso de transformación.

 

Si no te suenan términos como Cloud Foundry, OData y CDS, entre otros, esto te va a servir de poco…

 

SAP Cloud Platform Functions = FaaS = Function-as-a-Service

 

¿Cómo puedo aprender SAP?, me preguntáis a veces. Antes era más complicado, ahora openSAP lo pone fácil.

 

Esto de la entrega continua, hay que empezar a tenerlo en cuenta… muy de la mano de todo el tema de los microservicios y del DevOps.

Mañana termino con esto, lo prometo… 😉

Application Programming Model: ¿esto de qué va?

Pues para entender un poco de qué va esto, primero hay que tener claro que nos toca cambiar nuestra forma de hacer las cosas y de qué va eso de los CDS, los microservicios y Cloud Foundry, entre otras cosas.

Una vez entendido eso, sólo queda coger el SAP Web IDE Full-Stack y darle a «siguiente»… bueno, quizás sea algo más complejo, pero como sigo muchas veces: «es más difícil inventárselo que entenderlo»… 😉

En esencia, esto del Application Programming Model (APM) va de lo que nos han contado muchas veces de separar nuestras aplicaciones en varias capas: presentación, lógica y datos. Pues es esto mismo, pero utilizando distintas herramientas para cada cosa: CDS, Java, UI5… y alguna cosa más.

Esto lo que nos permitirá es que cada una de esas capas lleve su ciclo de vida y poder trabajar enfocados en conceptos como la entrega continua: períodos de entrega más cortos, aislados e integrados con el resto de la aplicación, pero con independencia sobre el resto.

¿Suena complicado? No lo es tanto, de verdad, sólo es cuestión de ponerse y practicar, como casi todo.

Aquí os dejo un enlace interesante: Develop SAP Cloud Platform Business Applications with SAP Web IDE

Y uno de estos días subiré un post con un ejemplo, paso a paso, para que podáis ver cada una de esas capas… eso sí, «uno de estos días» puede ser mañana o dentro de 3 meses y para entonces puede que se hayan sacado algo nuevo de la chistera 😉

Conceptos básicos de SAP en 2017

A menudo recibo consultas de gente que quiere reciclarse dentro del mundo SAP y me piden orientación sobre qué y dónde mirar.

Evidentemente, no hay una fórmula mágica y depende del perfil de la persona, entre otras cosas, pero lo que está claro es que hay cosas que le tienen que sonar a todo el mundo y creo que esta imagen es un buen punto de partida:

Ahí lo tienes todo: una nueva experiencia de usuario (Fiori) que consume servicios (OData) generados con un nuevo modelo de programación (ABAP, CDS, BOPF), basado en las capacidades en tiempo real que ofrece una base de datos en memoria (HANA).

En eso se basan todas las soluciones SAP presentes y futuras, así que si quieres seguir en este mundo, al menos deberías tener claro qué es cada una de estas cosas.

Y a partir de ahí, elegir algo y profundizar en el tema; en todo es imposible, si no queréis morir ahogados en «el océano infinito del conocimiento». Creo que a estas alturas debes tener claro lo que comenta Raúl Hernández González en el citado artículo:

Podemos aprender cualquier cosa, pero no podemos aprenderlo todo.

Muy bien, ¿y dónde puedo encontrar información de todo esto? La respuesta está clara: en este mismo blog. Concretamente, en una entrada que escribí hace un par de meses en la que intentaba dar respuesta a la pregunta de «¿Dónde puedo aprender SAP?» 😉

CDS y AMDP: ¿qué es esto?

En la entrada de ayer, solté un par de «palabros» y me quedé tan a gusto: CDS y AMDP.

Y aunque puse un link en cada «palabro», por si alguien tenía curiosidad en saber de qué estaba hablando, hoy me explayo un poco más, pero no mucho y en términos no excesivamente técnicos.

Desde la aparición de HANA, a finales de 2010, ha llovido un poco y lo que nació como una base de datos en memoria se ha convertido en una plataforma de aplicaciones, por supuesto sin dejar de ser una base de datos en memoria.

Una de las grandes ventajas que tiene es la capacidad de procesamiento, precisamente por el hecho de trabajar directamente en memoria, sin tener que hacer lentas lecturas de disco.

Y debido a esto, todo lo que nos decían antes de «no accedas mucho a la base de datos, lee los datos en bruto y luego los procesas en la aplicación», ahora ha cambiado a «métele caña a la base de datos, que te dé todo hecho y tú sólo lo pintas».

Total, que tocaba refrescar conceptos de SQL, ya que para trabajar contra HANA tenía que utilizar principalmente SQLScript para sacarle todo el jugo posible a la base de datos y además no me valía para nada el ABAP porque tenía que trabajar con HANA Studio, que es algo muy muy parecido a lo que os contaba ayer de las ABAP Development Tools…  es decir, herramientas que instalo en Eclipse y me cargan perspectivas para trabajar contra HANA.

Parecía que el desarrollo en ABAP y en HANA llevaban caminos paralelos, pero… poco a poco, van convergiendo y ya hay ciertas cosas que podemos hacer en un entorno ABAP y transportarlo a un entorno HANA, como por ejemplo usar Core Data Services (CDS) y crear ABAP Managed Databased Procedures (AMDP).

¿Para qué me sirven los CDS en ABAP? Pues básicamente, para definir vistas en el diccionario mucho más «potentes» (ya avisé que no iba a ser muy técnico), con el objetivo de cargar la mayor parte del trabajo en la definición de la vista y después únicamente consumirla.

Más info: ABAP News for 7.40, SP08 – ABAP Core Data Services (CDS)

¿Y los AMDP para qué valen? Esencialmente, para crear procedimientos de base de datos (conjuntos de instrucciones que me permiten realizar procesos) utilizando una serie de clases, mezclando código ABAP y SQLScript, que se ejecutarán luego en mi base de datos HANA.

Más info: ABAP Managed Database Procedures – Introduction

Vamos, que aquellos que decían que el ABAP estaba muerto y que ahora todo iba a ser desarrollo nativo en HANA, pues va a ser que no… lo que sí es cierto es que tengo que aprovechar las bondades de ambos mundos: ni todo desde ABAP, ni todo desde HANA.

Habrá casos que lo mejor será atacar directamente a HANA y otros casos en los que podré utilizar ABAP.

Y claro, para poder hacer hacer eso, tengo que aprender cosas nuevas… otro día os cuento como empezar a jugar con HANA 😉

ABAP Development Tools: el eclipse de la SE80

Probablemente, si eres desarrollador ABAP, tu transacción de cabecera sea la SE80 y si tienes «unos cuantos años» puede incluso que sigas utilizando la SE38, la SE11, la SE51… pero va siendo hora de cambiar… o «morir» 😉

De momento, yo empezaría a trabajar con las ABAP Development Tools, que no es nada más que el Eclipse «de toda la vida» con plugins específicos para ABAP.

¿Y por qué no seguir como hasta ahora? Bueno, entre otras cosas porque ya empieza a haber cosas que sólo se pueden hacer desde Eclipse (trabajar con CDS o AMDP, por ejemplo) y porque desde aquí podrás trabajar no sólo con ABAP, también con HANA, Java, etc… simplemente cambiando la perspectiva.

Así que, yo empezaría a acostumbrarme a ese entorno de desarrollo. Y, para ponerlo fácil, os dejo el enlace donde os cuentan cómo instalarlo: SAP Development Tools

Básicamente, lo que hay que hacer es bajar e instalar la versión correspondiente de Eclipse y añadir el plugin pero, por si alguien se pierde, aquí dejo una guía más detallada: Installing ABAP Development Tools for SAP NetWeaver

Ah, y si no tenéis un sistema SAP donde conectaros para probarlo, en la misma página os dice cómo instalaros un SAP NetWeaver AS ABAP Developer Edition y aquí os lo explican con más detalle: SAP AS ABAP 750 SP02 Developer Edition to Download

Bueno, y ya que os ponéis, como seguro que ayer os creasteis vuestra cuenta en SAP Cloud Platform, aprovechad para instalar también las utilidades para poder trabajar ahí.

Entonces, ¿qué pasa con el entorno de desarrollo de toda la vida? Tranquilos, que también lo vais a seguir utilizando, queda «/h» para mucho tiempo… pero hay que actualizarse un poquito, que luego nos pilla el toro 😉

De hecho, mirad, aquí alguien habla de esto y hace «sólo» 4 años… ABAP in eclipse vs SE80 comparison – why eclipse wins?

Y os dejo también una chuleta que os puede ser útil si os animáis a «eclipsar» la SE80:  ABAP in Eclipse — Keyboard Shortcuts You Cannot Miss + Cheat Sheet