✒️SAP BTPFIORI / La implementación del servicio OData Por Jose Baz Suarez
SAP BTPFIORI La implementación del servicio OData
La implementación del servicio OData
1. Introducción
Una vez creado y modelado el servicio OData en el backend SAP Gateway (a través de la transacción SEGW), el siguiente paso es implementar su lógica de negocio, es decir, definir cómo se obtienen, crean, modifican o eliminan los datos.
Esta implementación se realiza dentro de las clases Data Provider Class (DPC) y Data Provider Class Extension (DPC_EXT), donde se programan los métodos que controlan las operaciones CRUD-Q (Create, Read, Update, Delete y Query).
2. Estructura de la implementación
Cuando generamos el runtime del proyecto en la SEGW, el sistema crea automáticamente las siguientes clases:
| ZCL_<nombre>_MPC | Define el modelo de datos (entidades, propiedades, asociaciones). |
| ZCL_<nombre>_MPC_EXT | Permite extender el modelo sin afectar la clase base. |
| ZCL_<nombre>_DPC | Contiene los métodos estándar para operaciones CRUD-Q. |
| ZCL_<nombre>_DPC_EXT | Clase donde el desarrollador implementa la lógica personalizada. |
🔹 Siempre se recomienda implementar el código en la clase _DPC_EXT para evitar sobrescribir modificaciones al regenerar el servicio.
3. Métodos CRUD-Q más utilizados
Cada entidad del servicio OData genera automáticamente los siguientes métodos (vacíos) en la clase DPC_EXT:
| GET_ENTITYSET | Devuelve una colección de registros (lectura múltiple). |
| GET_ENTITY | Devuelve un único registro (lectura individual). |
| CREATE_ENTITY | Inserta un nuevo registro. |
| UPDATE_ENTITY | Modifica un registro existente. |
| DELETE_ENTITY | Elimina un registro. |
📘 Explicación:
El método anterior lee los productos de la tabla MARA y los expone a través del servicio OData.
El resultado se devuelve en la tabla et_entityset, la cual será enviada al cliente SAPUI5.
4. Implementación de la lógica personalizada
Para editar o ampliar la lógica del servicio:
-
Abrir la transacción SE80 (o Eclipse ABAP).
-
Navegar a la clase ZCL_<nombre>_DPC_EXT.
-
Redefinir los métodos requeridos con Redefine Method.
-
Implementar la lógica de lectura, validación o transformación de datos.
Ejemplo (lectura de clientes):
5. Registro y prueba del servicio
Una vez implementados los métodos:
-
Ir a la transacción /IWFND/MAINT_SERVICE.
-
Verificar que el servicio esté registrado y activo.
-
Hacer clic en SAP Gateway Client para probar la URL del servicio.
-
Ejecutar el método GET sobre la colección, por ejemplo:
/sap/opu/odata/sap/Z_ODATA_CLIENTES_SRV/CustomerSet -
Verificar que la respuesta se devuelva en formato XML o JSON.
6. Depuración y análisis
SAP ofrece herramientas para depurar y analizar el funcionamiento de los servicios OData:
-
/IWFND/TRACES → traza las llamadas al servicio (errores, tiempos, ejecución).
-
/IWFND/GW_CLIENT → permite probar manualmente los métodos CRUD.
-
/IWFND/ERROR_LOG → muestra errores en tiempo de ejecución.
-
/IWBEP/REG_SERVICE → lista los servicios registrados en el Gateway.
💡 Sugerencia: durante el desarrollo, activar el trace antes de probar un servicio nuevo para detectar errores de autorización o mapeo.
7. Buenas prácticas
-
Implementar siempre la lógica en DPC_EXT (no modificar DPC).
-
Manejar errores con mensajes estructurados (/IWBEP/CX_MGW_BUSI_EXCEPTION).
-
Retornar respuestas claras (HTTP 200, 400, 404, etc.).
-
Probar los servicios con datos reales antes de exponerlos a Fiori.
-
Documentar los métodos implementados y sus parámetros.
-
Usar estructuras DDIC para mantener consistencia con el modelo de datos SAP.
8. Conclusión
La implementación del servicio OData en el backend es el paso clave que conecta el modelo teórico con los datos reales del sistema.
A través de los métodos CRUD-Q, el desarrollador define cómo la aplicación SAPUI5 obtendrá, modificará o eliminará información del sistema SAP, asegurando un flujo de datos confiable y estandarizado.
Preguntas de repaso
-
¿En qué clase se implementa la lógica personalizada de un servicio OData?
→ En la clase DPC_EXT. -
¿Qué método se utiliza para obtener una colección de entidades?
→ GET_ENTITYSET. -
¿Qué transacción se usa para probar un servicio OData directamente en SAP?
→ /IWFND/GW_CLIENT. -
¿Qué método permite insertar un nuevo registro?
→ CREATE_ENTITY. -
¿Qué componente traduce las llamadas OData a operaciones ABAP?
→ El SAP Gateway.
 
 
 
Sobre el autor
Publicación académica de Jose Rodrigo Baz Suarez, en su ámbito de estudios para la Carrera Consultor SAP BTP Fiori.
Jose Rodrigo Baz Suarez
Profesión: Analista de Inventarios y Auditoria - Uruguay - Legajo: WX92M
✒️Autor de: 47 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Analista con experiencia en sap, contabilidad, inventarios y costos. manejo de cierres, balances, reportes y mejoras de procesos administrativos.
Certificación Académica de Jose Baz

























