Implementación de Servicios OData con Múltiples Tablas en SAP
En tutoriales anteriores, ya exploramos las bases de lo que es un servicio OData. Sin embargo, la implementación de estos servicios puede variar según distintos escenarios. Un caso particularmente interesante es cuando necesitamos obtener múltiples tablas como salida de los datos, lo que puede ser un desafío en términos de configuración y gestión. Para una asesoría personalizada, consulta con nuestro equipo SAP aquí.
1. Introducción
En este tutorial, nos centraremos en una aplicación práctica usando una BAPI específica de SAP. La BAPI_PO_GETDETAIL, seleccionada para este ejemplo, es notable por producir diferentes tablas que revelan detalles exhaustivos de una orden de compra. Estas tablas pueden incluir información desde datos generales hasta especificaciones más detalladas. Para ilustrar esto claramente, la siguiente imagen muestra los parámetros de entrada y salida de esta BAPI.
2. Crear el proyecto
Vamos a la transacción SEGW para crear el proyecto
3. Definir parámetros de entrada
Creamos un EntitySet para invocar el servicio oData, el nombre de la entidad será PoConsult. Este contendrá todos los parámetros de entrada, en la imagen de la actividad número 1 podemos ver los parámetros de entrada que necesitamos para este servicio.
Puede interesarte: ¿Cómo consumir un servicio Odata?
4. Definimos parámetros de salida
Creamos EntitySet para todas las tablas de salida, ver en la actividad 1 todas las tablas de salida que se requieren, BAPI_PO_GETDETAIL, tiene 2 estructuras de salida (po_header y po_address) las cuales almacenaremos también en tablas.
Repetimos este paso para cada una de las tablas que se necesiten y el proyecto quedaría así por el momento.
5. Creación de asociaciones y navegación
Asociaremos la entidad de entrada que creamos con cada una de las entidades de salida, esto para poder llegar a todas las entidades a través de una sola llamada.
Pulsamos en siguiente y especificamos la propiedad o campo dependiente, aquí tener en cuenta que la variable de los campos dependientes tienes que del mismo tipo.
Después de realizar todas las asociaciones y navegaciones tendríamos lo siguiente:
La ultima acción de la actividad 5 es generar los objetos
6. Redefinir DPC del servicio oData
El DPC es la clase de proveedor de datos y la usamos para codificar todos los métodos que necesitemos.
Nos dirigimos a GET_EXPANDED_ENTITYSET, según la ruta como se muestra en la siguiente imagen, hacemos click derecho y seleccionamos redefinir.
Y colocamos el siguiente código
Guardamos y activamos.
7. Test de implementación
En GRUPO EBIM desarrollamos soluciones TI a la medida de las necesidades de tu empresa. Somos expertos en consultoría TI y desarrollo de plataformas para SAP y Oracle; además, contamos con un equipo de profesionales dispuestos a brindar soluciones de gestión y manejo de datos. ¡Llena nuestro formulario de contacto y obtén más información sobre los servicios que ofrecemos!