¿Como explotar la información de tu SAP ECC (previo a HANA) y utilizarla para crear aplicaciones web y moviles a través de Node.js (via RFC)?

Node.js es una plataforma muy versátil y poderosa y puede ser un punto de partida muy interesante para crear aplicaciones web y móviles tanto on premise como en la nube. Si sumamos además la agilidad de construcción de estas aplicaciones a través del ecosistema NPM (el registro de software más grande del mundo) tenemos como resultado un enorme potencial de construcción de soluciones de software. Si a este potencial sumamos la facilidad de extraer información de nuestros sistemas SAP incluso a través de Function Modules ya existentes (expuestos a través de RFC) obtenemos el poder de agilizar la creación de aplicaciones empresariales con alta responsividad y una excelente experiencia de usuario.

En los últimos tiempos SAP reconoce oficialmente el potencial de Node.js a través del desarrollo de aplicaciones nativas de HANA con XS Advanced. Pero si aún contamos con un stack tradicional previo a HANA, no significa que no podamos explotar su potencial.

A continuación mostramos un diagrama de la arquitectura que estamos utilizando con respecto a esta solución.

 

arquitectura_node_Sap_eng1

Básicamente, esta arquitectura nos permite como ya lo hemos comentado, exponer la información de nuestro ECC (u otras cajas SAP como CRM, SRM, etc), pudiendo crear APIs REST que podemos consumir desde prácticamente cualquier tecnología front end en la actualidad (las posibilidades son casi infinitas :D)

Ventajas de esta arquitectura

Las ventajas que hemos encontrado al utilizar esta arquitectura:

  • Flexibilidad para exponer la información
  • Rapidez de respuesta
  • Confiabilidad y estabilidad en la ejecución de la aplicación
  • Crear una base de código (el código en Node.js) que puede ser reutilizada después de migrar a HANA (después de hacer algunos ajustes)

Ahora veamos como lograr esta conexión:

Conectando Node.js con SAP

Para comenzar, utilizaremos el componente node-rfc. Este componente nos permitira establecer la conexión entre SAP y Node.js.

De acuerdo a la documentación, un pre requisito es descargar el componente SAP NW RFC Library que funge como intermediario entre node-rfc y el modulo RFC dentro de SAP (Para hacer esta descarga requeriremos un S-User para acceder al SAP Marketplace).

No ahondaremos mucho en temas de instalación, ya que esta está cubierta en las instrucciones de los componentes, sin embargo, aquí tenemos un tip que puede ser útil:

nwrfcsdk

Tip de instalación de node-rfc:

Por default, el componente node-rfc queda instalado dentro de un directorio correspondiente a la plataforma. Esto puede generar un error al momento de ejecutar el proyecto Node. Para solventarlo, se recomienda copiar el componente a una carpeta superior como se muestra en la imagen a continuación:

rfcnode

Una vez instalado, procedemos a crear un nuevo proyecto Node.js y agregamos el modulo de node-rfc:

npm init noderfcsample
npm install node-rfc

nodejs_rfc

Una vez creado nuestro proyecto e instalado el modulo node-rfc podemos crear el código que nos ayudara a establecer la conexión hacia SAP y extraer información desde un Function Module habilitado para RFC. Para nuestro ejemplo, utilizaremos el Function Module STFC_CONNECTION, una función standard que nos contestara la información que le enviemos y que nos será útil para probar nuestra conexión.

A continuación especifiquemos los datos de conexión de nuestra instancia SAP.

code

Posteriormente creamos la conexión utilizando client.connect e invocamos el Function Module a través de client.invoke.

Una vez que ejecutamos el código podemos ver el resultado de la llamada que es arrojado como un objeto Javascript que podemos manipular posteriormente a nuestra conveniencia. Misión cumplida!

console

Siguientes pasos

Aunque nuestro ejemplo fue en realidad sencillo, podemos utilizar esta misma arquitectura para crear aplicaciones más complejas y poderosas. Para el backend podemos utilizar frameworks como Express, Sails o muchas otras. Una vez generada y expuesta nuestra API podemos consumirla en el front end con muchas combinaciones. Algunos ejemplos para aplicaciones mobiles pueden ser Flutter, aplicaciones nativas, React Native o Aplicaciones web encapsuladas en Cordova. Para aplicaciones web algunas de las más populares pueden ser SAPUI5, React, Angular.

Esperamos que esta técnica te permita comenzar a desarrollar proyectos con conexión a SAP. Déjanos saber tu opinión y algunos de los proyectos que tengas en mente que puedan utilizar esta tecnología en los comentarios.

Muchas gracias!

Saludos!

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s