✒️SAP BTPFIORI / La estructura de un servicio OData Por Roberto Santucho
SAP BTPFIORI La estructura de un servicio OData

1. QUE ES UN SERVICIO ODATA
- protocolo no propietario de SAP, que nos permite hacer llamadas rest para obtener la informacion
- para evitar bloqueo pora llamar a un servicio de diferente dominio, en sap btp SE DEBE CREAR UN DESTINO
- es la forma de comunicacion entre el frontedn (sapui5/fiori) y el bakced de SAP
- el componente SAP Gateway MANEJA LOS SERVICIOS ODATA (puede estar integrado al ECC, S/4HANA o en un sitema independiene).
- Algunas caracteristicas:
- cada servicio odata esta representado por un uri(Identificador uniforme de recursos) o url (uniform resource locator)
- tiene 2 tipos de documentos
- 1. DOCUMENTO DE SERVICIO
- 2. DOCUMENTO DE METADATOS
- el servicio OData ADMITE LOS FORMATOS ATOM Y JSON
- puede utilizar cualquier web browser.
- representa los datos como una coleccion de entidaes.
2. LA ESTRUCTURA DE UN SERVICIO ODATA
- Usamos la tx SEGW para crear un proyecto OData. Dentro del modelo de datos definimos
el tipo de entidad: es una estructura que puede contener un registro de datos. Algunas caracteristicas:
> describe una coleccion y tiene un nombre.
> tienen una estructura definida por sus propiedades y tambien estan asociados con una clave.
> definen propiedades y navegaciones a otros tipos de entidades.
> par cada tipo de entidad, se define AL MENOS UN CONJUNTO DE ENTIDADES.
> las entidades son una coleccion de registros. Para acceder a cualquier dato, NECESITAMOS ACCEDER A ENTIDADES.
> Las propiedades de una Entidad: una propiedad es un elemento que tiene tipo de datos, se representa con tipo de dato primitivo, datos estructurados o un link a otro recurso. Equivale a una columna de una tabla.
<EtityType Name="Order_detail">
<Key>
<PropertyRef Name="OrderID" />
<PropertyRef Name="ProductID" />
</Key>
<Property Name="OrderID" Type="Edm.Int32" Nulltable="false" />
...
el set de entidad: coleccion de mismo tipos de entidades
> cardinalidad es 0:muchs
> varios conjuntos de entidades pueden basarse en el mismo tipo de entidad. ejemplo empleadosSet y ConctactoSet se basan en entidadPersona
las asociaciones: son relaciones entre dos tipos de entidades. Definen la cardinalidad entre las entidades relacionadas.
> una asociacion define una relacionn entre tipos de entidad, las relaciones recuersivas estan permitidos.
> cada asociacion INCLUYE 2 EXTERMOS DE ASOCIACION, que especifican los tipos de entidad que estan relacionados y las reglas de cardinalidad para cada extremo de la asociacion.
> entidad principal y entidad dependiente: una asociacion tambien crea UNA PROPIEDAD DE NAVEGACION ENTRE ELLOS.
conjuntos de asociacion: Conjunto de entidades <=> EntitySet, Coleccion de asociaciones <=> AssociationSet
3. LAS OPERACIONES ODATA
El servicio OData utiliza los comandos REST, POST, GET, PUT o DELETE (crud). NO ES OBLIGATORIO QUE TODOS LOS SERVICIOS DE ODATA ADMITAN LAS CUATRO OPERACIONES.
Diferencia entre Read y Query: leer una entidad, query se obtiene un conjunto de entidades.
PAra cada "Entity set" se crean los metodos:
- __CREATE_ENTITY
- __GET_ENTITY
- __UPDATE_ENTITY
- __DELETE__ENTITY
- __GET__ENTITYSET
Las operaciones CRUD-Q dentro de la implementacon del servicio son las siguientes:
- La operacion crear: para crear datos en EL SERVIDOR BACKEND. El metodo HTML asociado es POST, si fue exitoso, respuesta HTTP 201(creado) junto a la entidad que se creo. mediante metadatos, podemos indicar si un conjunto de entidades es posible de crear.
- La operacion leer: Con GET, las appss leen principalmente datos EN LUGAR DE ACTUALIZARLO. El metodo HTML ES GET, Y una operacion de lectura exitosa tiene codigo de estado HTTP 200 (OK). Op. de lectura se peuden clasificar en 2 tipos diferentes:
- LA OPERACION CONSULTA: conbinada con un filtro para reducir el numero de resultados.
- LA OPERACION LECTURA UNICA: una vez obtenido un conjunto d entidades, puede utilizar el vinculo propio porporcionado PARA NAVEGAR A LOS DETALLES DE LAS ENTIDADES. La diferencia con la operacion de consulta es que aqui se ESPECIFICA LA CLAVE PRINCIPAL DE LA ENTIDAD A LEER.
- La operacion de actualizar: se le debe pasar la clave como en operacion lectura unica, el metodo HTTP es PUT, si es exitoso, recibe el estado HTTP 204 (sin contenido). tambien puede utilizarse la operacion PATCH que permite un actualizacion PARCIAL.
- La operacion eliminar: Debemos proporcionar la clave de la entidad, el metodo HTTP relacionado es DELETE y el resultaod exitoso devuelve HTTP 204 (SIN CONTENIDO)
4. ANALIZANDO UN SERVICIO ODATA
- Service Builder: transacion SEGW: herramienta de desarrollo central y unica PARA LOS SERVICIOS SAP GATEWAY (desarrollo y generacion de servicios OData).
- utilizamos los PROYECTOS para agrupar los artefactos de un servicio Odata en un lugar central
- nos generara TODA LA INFRAESTRUCTURA PARA LA COMUNICACION: INCLUYE Clases ABAP llamadas
- DATA PROVIDE CLASS (DPC) y
- MODEL PROVIDER CLASS (MPC). Solo tenemos que programar los metodos para obtener la informacion que nos piden
- el Gateway creara el XML, creando la clase /IWBEP/CL_GWSAMPLE_BAS_DPC_EXT con los metodos para poder realizar las operaciones dentro del OData
En el proceso de creacion de servicios, hay 3 fases principales:
- Definicion del modelo de datos:
- Implementacion del servicio: implementamos las operaciones soportadas por el servicio
- Mantenimiento del servicio: aqui publicamos el servicio (una unica vez aunque luego modifiquemos modelo o implementacion). se activa dese la transaccion /IWFND/MAINT_SERVICE
5. LOS BENEFICIOS DE SAP GATEWAY
- Cada sistema SAP Gateway proporciona un servicio de catalogo para listar todos los servicios disponibles: /sap/opu/odata/iwfnd/CATALOGSERVICE/CatalogCollection
- Beneficion de sap gateway:
- interfaz de suario intuitiva y atractiva
- innovacion
- Orientacion empresarial
- Disponiblilidad
- Agilidad
- Integracion
- Mantenimiento y seguridad
- Costos
Trsansacciones importates
/IWFND/MAINT_SERVICE
/IWFND/GW_CLIENT entorno de prueba del servicio
SEGW
SE80
 
 
 
Sobre el autor
Publicación académica de Roberto Hernan Santucho, en su ámbito de estudios para la Carrera Consultor SAP BTP Fiori.
Roberto Hernan Santucho
Profesión: Ingeniero en Sistemas - Mexico - Legajo: VA51C
✒️Autor de: 43 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Roberto Santucho







Disponibilidad Laboral: FullTime


















