✒️SAP BTPFIORI / La implementación del servicio OData Por Jose Baz Suarez

Selector Alummnos / Empresas

SAP BTPFIORI La implementación del servicio OData

SAP BTPFIORI La implementación del servicio ODataLa 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:

Clase Función
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:

Método Función
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.
Ejemplo práctico (GET_ENTITYSET)
METHOD products_get_entityset. SELECT matnr AS productid maktx AS productname meins AS unit mtart AS type FROM mara INTO CORRESPONDING FIELDS OF TABLE et_entityset. ENDMETHOD.

📘 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:

  1. Abrir la transacción SE80 (o Eclipse ABAP).

  2. Navegar a la clase ZCL_<nombre>_DPC_EXT.

  3. Redefinir los métodos requeridos con Redefine Method.

  4. Implementar la lógica de lectura, validación o transformación de datos.

Ejemplo (lectura de clientes):

METHOD customerset_get_entityset. SELECT kunnr AS customerid name1 AS name land1 AS country ort01 AS city FROM kna1 INTO CORRESPONDING FIELDS OF TABLE et_entityset. ENDMETHOD.

5. Registro y prueba del servicio

Una vez implementados los métodos:

  1. Ir a la transacción /IWFND/MAINT_SERVICE.

  2. Verificar que el servicio esté registrado y activo.

  3. Hacer clic en SAP Gateway Client para probar la URL del servicio.

  4. Ejecutar el método GET sobre la colección, por ejemplo:

    /sap/opu/odata/sap/Z_ODATA_CLIENTES_SRV/CustomerSet
  5. 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

  1. ¿En qué clase se implementa la lógica personalizada de un servicio OData?
    → En la clase DPC_EXT.

  2. ¿Qué método se utiliza para obtener una colección de entidades?
    GET_ENTITYSET.

  3. ¿Qué transacción se usa para probar un servicio OData directamente en SAP?
    /IWFND/GW_CLIENT.

  4. ¿Qué método permite insertar un nuevo registro?
    CREATE_ENTITY.

  5. ¿Qué componente traduce las llamadas OData a operaciones ABAP?
    → El SAP Gateway.


 

Escanear / Compartir

 

 


Sobre el autor

Publicación académica de Jose Rodrigo Baz Suarez, en su ámbito de estudios para la Carrera Consultor SAP BTP Fiori.

SAP SemiSenior

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

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "La implementación del servicio OData" de la mano de nuestros alumnos.

SAP SemiSenior

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: ...

Acceder a esta publicación

Creado y Compartido por: Jose Rodrigo Baz Suarez / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

La implementacion del servicio Odata CRUD-Q: es una extensión del clásico concepto CRUD en desarrollo de servicios web o APIs. Letra Significado Descripción C Create Crear registros R Read Leer o consultar registros U Update Actualizar o modificar registros D Delete Eliminar registros Q Query Consultar o filtrar con criterios específicos Implementacion del metodo read Service implementacion...

Acceder a esta publicación

Creado y Compartido por: Claudia Bibiana Monsalve Lopez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

1. LA IMPLEMENTACION DE LOS METODOS CRUD-Q Podemos mapear los metodos CRUD-Q de cada entidad. Para iniciar el proceso de mapeo, debemos seleccionar una fuente de datos en el menu contextual del metodo crudq de una entidad en la carpeta implementacion del servicio. Boton derecho sobre un metodo > Map to Data Source NOTA: dentro de la interface /IWBEP/IF_MGW_APPL_SRV_RUNTIME existen metodos derivados de varias interfacse en la clase de extension del proveedor de datos. La implementacion real del servicio, es decir, la codificacion en los metodos CRUD-Q SERAN GENERADOS POR SERVICE BUILDER SEGUN EL MAPEO QUE HAYAMOS REALIZADO. EL SERVICIO DE SERVICE BUILDER AYUDA AL DESARROLLADOR AL PROPORCIONAR PROPUESTAS DE MAPEOS SI EL TIPO DE ENTIDAD SE HA...

Acceder a esta publicación

Creado y Compartido por: Roberto Hernan Santucho

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Antes de comenzar a implementar y codificar debemos regenerar el proyecto para asegurarnos de que las clases MPC y DPC estén actualizadas y coincidan con el estado actual de la definición del proyecto. El método GetEntity obtiene un único registro de la colección esto se hace proporcionando las propiedades claves como parte del URI (justo después del nombre del conjunto de entidades) por ejemplo produset(HT-1000). #filter: es la opcion de consulta mas utilizada. Nos permite filtrar el conjunto de resultados de su implementacion Get_EntitySet. Con eso, podemos evitar proporcionar una lista sin filtrar de todos los usuarios, tenemos que proporcionar una opcion de consulta $filter en el URI del servicio....

Acceder a esta publicación

Creado y Compartido por: Jose Medina / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Implementacion servicio OData CRUD-Q if_mgw_appl_Srfv_runtime service builder según mapeo Map to Data Source runtime artifacts Go to Abap workbench heredan métodos de la superclase et_entityset devuelve los valores /iwbep/cx_mgw_busi_Exception $select $filter $top $skip $inlinecount funcionalidad de paginación $orderby read_entry_Data io_data_provider er_entity mo_context http 201 http 04 feed de OData http://sap/opu/odata/sap//ProductsSet?$select=Productid.Name.Description http://services.example.org/my.svc/Suppliers?$orderby=CompanyName generar a través del mapeo de la bapi a campos de la entidad se basan en la misma bapi.

Acceder a esta publicación

Creado y Compartido por: Enrique Gomez

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 99.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

🔎Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!