Tenemos muy buenos blogs sobre cómo crear un servicio OData desde cero. Recomendaría estos blogs si es nuevo en OData.
SAP nos ha dado opciones para múltiples opciones de llamada de URI. En este blog, los implementaremos. Intentaré agregarlos todos a un blog con ejemplos.
Podemos dividir la URI de OData en 2 partes:
No necesita implementación personalizada
Comencemos con los comandos URI que no necesitan implementaciones personalizadas:
1. $seleccionar
la opción de consulta $select en OData se usa para especificar qué propiedades o campos de un recurso deben incluirse en la respuesta. La opción $select generalmente se usa para optimizar el rendimiento al limitar la cantidad de columnas que se devuelven en una consulta. El valor de la opción $select es una lista separada por comas de las propiedades o campos que deben incluirse en la respuesta.
Por ejemplo, si desea recuperar solo los campos de nombre y dirección de un recurso de cliente, usaría una consulta como /Clientes?$select=Nombre, Dirección.
Esta es una cadena de ejemplo que probablemente se usa para seleccionar campos específicos, «Nombre» y «Dirección», de una colección de «Clientes» en una base de datos.
/sap/opu/odata/sap/ZNS_PORELATED_SRV/EKKOSet?$select=Ebeln, Bukrs, Ernam
La consulta anterior dará campos seleccionados, es decir, Ebeln, Burks y Ernam de la base de datos:
También podemos obtener un resultado similar para un registro en particular.
/sap/opu/odata/sap/ZNS_PORELATED_SRV/EKKOSet('4500000000')?$select=Ebeln, Bukrs, Ernam
La consulta anterior dará el siguiente resultado:
2. $contar
La opción de consulta $count en OData se usa para recuperar el número de entidades en una colección. La opción $count generalmente se usa para optimizar el rendimiento al limitar la cantidad de datos que se devuelven en una consulta.
Cuando la opción $count se incluye en una consulta, la respuesta incluirá el número total de entidades en la colección, en lugar de las entidades reales.
Por ejemplo, si desea recuperar la cantidad de clientes en un recurso de cliente, usaría una consulta como /Clientes/$recuento.
La respuesta devolverá un solo número, por ejemplo 28.
Es importante tener en cuenta que la opción $count solo se puede usar en colecciones y no en entidades individuales.
También podemos combinar $count con otras opciones como $top, $skip, $filter, $expand, etc.
/sap/opu/odata/sap/ZNS_PORELATED_SRV/EKKOSet('6000000000')/ToPOItem/$count
La consulta anterior contará el número total de registros para el número de orden de compra mencionado.
3. $expandir
La opción de consulta $expand en OData se usa para recuperar entidades relacionadas junto con la entidad solicitada. La opción $expand se usa para recuperar datos relacionados en una sola solicitud en lugar de realizar varias solicitudes al servidor.
Por ejemplo, si tiene una entidad llamada «Pedidos» y tiene una propiedad de navegación llamada «Artículos de pedido» que representa los artículos que forman parte del pedido, puede usar la opción $expand para recuperar tanto el Pedido como los Artículos de pedido en un solicitud única.
La consulta se vería como /Pedidos?$expand=ArtículosPedidos
Esta consulta devolvería la entidad Order junto con las entidades OrderItems relacionadas en la misma respuesta. También puede especificar varias propiedades de navegación separándolas con una coma.
Es importante tener en cuenta que, al usar la opción de consulta $expand, aumenta el tamaño de la respuesta y puede afectar el rendimiento de la consulta. Por lo tanto, es una buena práctica usarlo con prudencia y solo cuando sea necesario.
También podemos usarlo en combinación con otras opciones de consulta como $select, $filter, $top, $skip, etc.
/sap/opu/odata/sap/ZNS_PORELATED_SRV/EKPOSet(Ebeln='6000000000',Ebelp='00010')?$expand=ToMara,ToMatDesc&$format=json
La consulta anterior dará el siguiente resultado:
4. formato de $
La opción de consulta $format en OData se usa para especificar el formato de la respuesta. La opción $formato se puede utilizar para solicitar la respuesta en diferentes formatos como JSON, XML
/Pedidos?$formato=json
/Pedidos?$formato=xml
/sap/opu/odata/sap/ZNS_PORELATED_SRV/EKKOSet?$format=json
La consulta anterior dará el resultado en formato JSON.
5. $enlaces
La opción de consulta $links en OData se usa para devolver los enlaces entre entidades. La opción $links se usa para recuperar enlaces de navegación entre entidades relacionadas en una sola solicitud.
Cuando la opción $links se incluye en una consulta, la respuesta incluirá las URL de las propiedades de navegación de la entidad, que se pueden usar para recuperar las entidades relacionadas. Por ejemplo, si tiene una entidad llamada «Pedidos» y tiene una propiedad de navegación llamada «Artículos de pedido» que representa los artículos que forman parte del pedido, puede usar la opción $links para recuperar las URL de las entidades de Artículos de pedido.
La consulta se vería como /Pedidos?$enlaces=Artículos de pedido.
Esta consulta devolvería las URL de las entidades de artículos de pedido relacionadas en la misma respuesta. También puede especificar varias propiedades de navegación separándolas con una coma.
Es importante tener en cuenta que, al usar la opción de consulta $links, aumenta el tamaño de la respuesta y puede afectar el rendimiento de la consulta. Por lo tanto, es una buena práctica usarlo con prudencia y solo cuando sea necesario.
También podemos usarlo en combinación con otras opciones de consulta como $seleccionar, $filtrar, $expandir, $formato, etc.
/sap/opu/odata/sap/ZNS_PORELATED_SRV/EKKOSet('6000000000')/$links/ToPOItem
La consulta anterior dará el siguiente resultado:
6. $valor
La opción de consulta $value en OData se usa para devolver solo el valor de una propiedad primitiva o una propiedad compleja sin el nombre de la propiedad ni los metadatos. La opción $value se usa para recuperar el valor de una propiedad en una sola solicitud en lugar de devolver la entidad completa o el objeto complejo.
Por ejemplo, si tiene una entidad llamada «Productos» y tiene una propiedad primitiva llamada «Precio», puede usar la opción $valor para recuperar el valor de la propiedad Precio en una sola solicitud.
La consulta se vería como /Productos(‘001’)/Precio/$valor.
Esta consulta devolvería el valor de la propiedad Price en la respuesta.
Es importante tener en cuenta que la opción $value solo se puede usar en propiedades primitivas y propiedades complejas y no en propiedades de colección.
Esto se puede usar en combinación con otras opciones de consulta como $seleccionar, $filtrar, $expandir, $formato, etc.
/sap/opu/odata/sap/ZNS_PORELATED_SRV/EKKOSet('6000000000')/Bukrs/$value
La consulta anterior mostrará el valor de Burks para los registros mencionados.
Con las consultas mencionadas anteriormente, podemos utilizar las opciones integradas de Odata sin escribir ningún código subyacente adicional.
Si tiene alguna idea o pregunta sobre el tema, no dude en dejar un comentario a continuación. Me encantaría saber de usted.
Si esta publicación te resultó útil, dale me gusta y compártela con tu red 🙂
Atentamente,
Nitin Sharma
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073