✒️SAP BTPFIORI / La implementación del servicio OData Por Roberto Santucho
SAP BTPFIORI La implementación del servicio OData

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 CREADO IMPORTANDO UN BOR INTERFAZ O UNA INTERFAZ RFC.
2. LA IMPLEMENTACION DEL METODO READ
Carpeta implementacion del servicio, Boton derecho sobre el metodo GetEntity (Read)
Luego presionamos el boton de propuesta de mapeo, y luego el boton generar.
Vamos a la carpeta de artefactos, elegimos la clase ... DPC_EXT , BOTON DERECHO, IR A ABAP WORKBENCH
Y VAMOS A VER COMO SE CREO EL method USERBAPISET_GET_ENTITY
Para probarlo, vamos a carpeta Service Maintenance, boton SAP Gateway Client
/sap/opu/odata/SAP/ZDATOSUSUARIO_ESTVA51C_SRV/UserBapiSet('ESTVA51C') NOS DEVUELVE los datos del usuario ESTVA51C
3. LA IMPLEMENTACION DEL METODO DE CONSULTA PARA BUSCAR UNA COLECCION
en la carpeta implementacion, boton derecho sobre el metodo GetEntitySet (Query) > go to ABAP Workbench, nos avisa que no se ha implementado.
Ir al metodo USERBAPISET_GET_ENTITYSET , boton derecho, Redefine.
colocar el siguiente codigo para leer todos los usuarios:
DATA: lt_usuarios type STANDARD TABLE OF bapiusname.
CALL FUNCTION 'BAPI_USER_GETLIST'
* EXPORTING
* MAX_ROWS = 0
* WITH_USERNAME = ' '
* IMPORTING
* ROWS =
TABLES
* SELECTION_RANGE =
* SELECTION_EXP =
USERLIST = lt_usuarios
* RETURN = .
LOOP AT lt_usuarios INTO DATA(lwa_usuario).
APPEND lwa_usuario TO et_entityset.
ENDLOOP.
Activamos y volvemos a generar
nota: podriamos lanzar una excepcion /IWBEP/CX_MGS_BUSI_EXCEPTION.
URIs para test:
- $select nos permite seleccionar las propiedasd que deseamos recibir. Ejemplo /sap/opu/odata/SAP/ZDATOSUSUARIO_ESTVA51C_SRV/UserBapiSet?$select=Identity&$format=json
- $filter
- $top, $skip y $inlinecount permite paginacion del lado del cliente, cuantas entradas va a recibir (top) y cuantas omitir (skip) por lado del SG
- $orderby ordena ejemplo /sap/opu/odata/SAP/ZDATOSUSUARIO_ESTVA51C_SRV/UserBapiSet?$orderby=Identity&$format=json
4. LA IMPLEMENTACION DEL METODO CREATE
Usando el metodo read_entry_data del objeto io_data_provider, podemos recuperar los datos que se pasaron a lo largo de la solicitud POST en el cuertpo HTTP.
HTTP 201 si la operacion CREATE FUE EXITOS, SE OBTIENE UN HTTP 201 EN LA RESPUESTA.
5. LA IMPLEMENTACION DEL METODO UPDATE
HTTP 204 SI EL UPDATE FUE EXITOSO
6. LA IMPLEMENTACION DEL METODO DELETE
HTTP 204 SI EL UPDATE FUE EXITOSO
 
 
 
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


















