SAP API – Crea una con el SAP Gateway

Para empezar con este post sobre cómo construir una SAP API, es necesario recordar lo que es una API. Podemos decir que una Application Programming Interface, son una serie de protocolos que se utilizan para integrar software entre aplicaciones. Es decir, esto nos permite interactuar entre aplicaciones, lo que permite que se puedan utilizar funcionalidades de algún servicio WEB sin saber como es que este lo realiza.

SAP REST Service

El servicio web Representational State Transfer (REST o RESTful) es un patrón de diseño creado para el World Wide Web. Adicional, lo servicios para la transferencia de datos permiten llamar a un servicio de tipo REST para navegar y usar los datos que brinda el servidor donde se encuentra implementado

SAP Gateway

Ahora que hemos recordado que es una SAP API y lo que es un SAP REST Service, toca entrar en detalle sobre el SAP Gateway. Este se encarga de ser un medio con el cual podemos construir nuestros servicios WEB. Ciertamente, este entorno se apoya del protocolo OData, el cual funge como referente en los estándares para el envío de datos a través del WWW.

OData (Open Data Protocol) es un estándar OASIS aprobado por ISO/IEC, el cual define un conjunto de reglas estandarizadas para la utilización de una API RESTful. Ciertamente, OData sirve para poner especial atención a la lógica de negocio de cualquier aplicativo, sin tener que estar pensando en como hay que definir correctamente los encabezados de solicitud / respuesta, códigos de los estados, métodos HTTP, convenciones de las URLs, tipos de medios, formatos de carga útil, opciones de consulta.

Ahora que tenemos los conceptos necesarios pondremos manos a la obra y crearemos un servicio SAP REST Web Service – SAP gateway odata.

SAP API Tutorial

El primer paso es ir a la transacción SEGW ( SAP Gateway Service Builder )

SAP Gateway Service Builder
Transacción SEGW

.Lo segundo que haremos será crear un nuevo proyecto Proyect -> Create

Nuevo Proyecto en el sap gw100

Seleccionamos el nombre de nuestro proyecto:

gw100 sap

Se creará una estructura de directorios con los siguientes elementos:

  • Gateway Data Model
  • Service Implementation
  • Runtime Artifacts
  • Service Maintenance
gateway data model
SAP Service Builder

El siguiente paso es muy importante ya que crearemos las estructuras de datos necesarias para que nuestro servicio pueda enviar y recibir información. Los pasos son lo siguientes :

  • En la opción de Data Model
  • Click derecho en la opción de Entity Types
  • Click en crear
  • Ingresamos el entity type name
  • Marcamos el check Entity Set Name
segw entity type
segw entity type
Entity Type Name
Entity type name

Lo que hicimos fue crear el entity type y el entity set, según SAP son definidos de la siguiente manera:

SAP Gateway Data Model

Los Entity Type se utilizan en el proyecto de Service Builder para definir la estructura de datos en el modelo de datos de entidad (EDM). Estos pueden representar un tipo específico de datos, por ejemplo, un item o una cabecera.

Los Entity Sets en el Service Builder sirven para agrupar instancias de un tipo de entidad junto con instancias de cualquier tipo que se deriven de este tipo de entidad en particular. Mientras que un tipo de entidad describe una estructura de datos, un conjunto de entidades contiene las instancias de la estructura dada.

Dentro de la estructura que acabamos de crear realizamos los siguientes pasos:

  • Nos vamos a la carpeta de propiedades, será donde empezaremos a incluir nuestros campos.
  • Una vez dentro seleccionamos la opción de crear
  • Seleccionamos la opción Append Row
  • Colocamos el nombre del campo
  • Marcamos la opción «key», la cual vuelve este campo obligatorio
  • Colocamos el tipos de datos ( Edm.String)
  • Por último, asignamos la longitud del campo, en mi caso tendrá espacio para 10 caracteres
SAP Entity Type
ENTITY TYPE & ENTITY SET

La estructura de nuestro proyecto se verá de siguiente manera :

A continuación damos click en botón «Generate Runtime Object» y seleccionamos una orden de transporte para guardar los objetos generados por el Gateway Service Builder.

abap rest api example
Generate runtime Object

Al momento de generar el proyecto, SAP nos arrojará un pop up con la información técnica del servicio » Model and Service Definitivo «. Es importante mencionar que en los siguientes pasos estaremos utilizando estos datos.

sap technical service name
Technical Service name

Después de asignar un paquete y una orden de transporte, SAP nos mostrará los siguiente mensajes en caso de haber realizado la generación del servicio con éxito.

SAP Service Maintenance

Una vez generado nuestro proyecto en el gateway, es hora de dar de alta nuestro servicio WEB en el SAP Service Maintenance, para hacer esto seguimos los siguientes pasos:

  • Ingresamos a la transacción /n /IWFND/MAINT_SERVICE, aquí es donde activaremos y daremos mantenimiento a nuestros SAP REST webservices
  • Seleccionamos el botón «Add Service»

En la casilla de System Alias colocaremos el sistema proveedor de servicios Web apuntando al mismo sistema SAP, en este caso es el HOST local.

Posteriormente, en la casilla Technical Service Name, pondremos la información que obtuvimos en el paso anterior y después damos click en el botón «Get Service».

Add SAP WebService

Damos doble clic en el nombre del SAP gateway service, asignamos un paquete y damos click en la opción de aceptar.

SAP gateway service
SAP WEB Service

El sistema nos mandará un mensaje de que la creación fue satisfactoria. Prácticamente hemos terminado con la creación de nuestro servicio REST. Sin embargo, es importante corroborar que efectivamente nuestro gateway sap service este operando al cien por ciento.

SAP API – Documentación Oficial SAP

Para más información sobre la construcción de una SAP API con el gateway service builder, puedes visitar el portal oficial de SAP, donde encontrar los recursos y la información para construir tu servicio SAP RESTFUL. Solo debes hacer click aquí.