Ahora que hemos explicado las posibles dificultades del enfoque actual, veamos cómo OData VDM del SAP Cloud SDK simplifica la misma tarea, porque el SDK es capaz de incorporar más información sobre el sistema que lo llama.
final List<BusinessPartner> businessPartners =
new DefaultBusinessPartnerService()
.getAllBusinessPartner()
.select(BusinessPartner.BUSINESS_PARTNER,
BusinessPartner.LAST_NAME,
BusinessPartner.FIRST_NAME,
BusinessPartner.IS_MALE,
BusinessPartner.IS_FEMALE,
BusinessPartner.CREATION_DATE)
.execute();
Usando OData VDM ahora tenemos acceso a la representación de objetos en un servicio OData específico, en este caso el DefaultBusinessPartnerService
(implementación predeterminada de la interfaz BusinessPartnerService
). Por lo tanto, ahora ya no necesita saber la ruta del servicio, el nombre del servicio o el nombre de la colección de la entidad de punto final. Podemos llamar a los servicios de este servicio getAllBusinessPartner()
función para recuperar una lista de todos los socios comerciales del sistema.
Ahora mira el select()
función. En lugar de pasar cadenas que representan el campo de la entidad, podemos reemplazar los campos estáticos proporcionados por el BusinessPartner
sonó. Así que no solo hemos eliminado el riesgo de errores ortográficos, ¡también lo hemos hecho seguro! De nuevo, se aplica lo mismo filter()
y orderBy()
. Por ejemplo, la detección es muy fácil para los socios comerciales masculinos. .filter(BusinessPartner.IS_MALE.eq(true))
– tenga en cuenta la comparación de seguridad de tipos.
Un beneficio adicional de este enfoque es la trazabilidad. Dado que todo se muestra como código, solo puede usar las funciones de autocompletar de su IDE para averiguar qué funciones admite un servicio y las áreas que cubre una entidad: comience por mirar los diversos servicios disponibles en el paquete com.sap.cloud.sdk.s4hana.datamodel.odata.services
, aplique la configuración predeterminada del servicio que desea configurar inmediatamente (nombre de la clase predeterminada Default
), y luego busque los métodos de la clase de servicio que indican las diversas operaciones disponibles. En base a esto, puede seleccionar los campos y seleccionar los filtros para aplicar utilizando los campos de tipo de devolución.
Una interfaz Java describe cada servicio, por ejemplo BusinessPartnerService
. El SDK proporciona una implementación predeterminada completa de todas las interfaces de servicio. La implementación correspondiente está disponible en una clase cuyo nombre es el nombre de interfaz predeterminado Default
, por ejemplo, DefaultBusinessPartnerService
. Puede agregar instantáneamente esa clase o usar la inyección de dependencia con un marco de Java correspondiente (cubierto en Paso 22 de nuestra serie de tutoriales). El beneficio de las interfaces es una mejor prueba y soporte de ductilidad.
Para resumir los beneficios de VD OData:
- No más cadenas codificadas
- No más errores ortográficos
- Tipo de seguridad para funciones como filtrar, seleccionar y
orderBy
- Tipos de datos de Java para el resultado proporcionado de fábrica, incluidas las conversiones adecuadas
- Trazabilidad por autocompletado
- Los servicios de SAP S / 4HANA se pueden simular fácilmente durante las pruebas según la interfaz de servicio en Java (consulte el tutorial Paso 19: burlarse de las llamadas S / 4HANA)
El VDM admite la recuperación de entidades al recuperar y recuperar listas de claves y entidades filter()
, select()
, orderBy()
, top()
y skip()
. Puede resolver las propiedades de navegación a pedido o con entusiasmo (expandir, ver Paso 22). El VDM también ofrece un fácil acceso a la creación (consulte Paso 20) actualización de operaciones, eliminación e importación de funciones.
Para cualquier servicio de OData que no forme parte de SAP API Business Hub, el ODataQueryBuilder
sin embargo, es la forma de abordar su desgaste.