Mostrando entradas con la etiqueta expand. Mostrar todas las entradas
Mostrando entradas con la etiqueta expand. Mostrar todas las entradas

miércoles, 24 de mayo de 2017

SAP UI5 y oData: Asociaciones, navegación y expand (y III, usar en SAP UI5)

En capítulos anteriores...

Habíamos visto la teoría para intentar entender qué es eso de las asociaciones, las navegaciones y el expand. Para ello nos habíamos basado en un ejemplo, una aplicación friki para mostrar series de ciencia ficción y sus personajes, en plan Master and Detail.

Después, nos habíamos peleado con SAP para crear, mediante las transacciones SEGW y SE24, el servicio oData.

Ahora nos toca desarrollar la aplicación en SAP UI5, una de tipo Master-Detail que consuma el servicio creado en el paso anterior.


Pero vamos a ver varias formas de hacerlo, dónde y cómo podemos navegar y expandir la navegación. Tanto añadiendo código en la vista (como hace el Web IDE) como en el controller (por si queremos realizar algún tratamiento especial al resultado, más allá de recuperar los datos).

NOTA: Si la parte de crear el oData en ABAP os la saltasteis, podéis recurrir al servicio odata de Northwind. Por ejemplo, con la colección Regions y la navegación Territories, http://services.odata.org/Northwind/Northwind.svc/Regions?$expand=Territories&$format=json


miércoles, 10 de mayo de 2017

SAP UI5 y oData: Asociaciones, navegación y expand (II, oData y ABAP)




Habíamos estado hablando de lo que eran las asociaciones, la navegación y el expand en los servicios oData. Así, en plan teórico. Y poníamos como ejemplo una posible aplicación para mostrar los personajes de las películas de ciencia ficción.

Esta es la aplicación que queríamos crear... a ver cómo creamos el servicio oData


Pues ahora nos vamos a poner con la parte práctica, vamos a meterle mano a la máquina. Lo primero es crear el servicio oData, y eso es lo que vamos a hacer aquí. En el siguiente post ya lo enlazaremos con la aplicación en SAP UI5.

Si nunca has creado un servicio oData en SAP, quizá te interese revisar este post anterior.

Es importante destacar que la asociación la vamos a crear relacionando propiedades. Esto no siempre es necesario, pero a la hora de codificar en ABAP nos va a facilitar mucho el trabajo. Me dejaré pendiente hacer un post para explicar otra manera de codificar las navegaciones.

Este ejemplo de aplicación hecho en el Web IDE hace los siguientes tipos de llamada, que nos sirve como idea para determinar lo básico que necesitamos implementar.

  • Servicio_de_saga/Sagas
  • Servicio_de_saga/Sagas('STARWARS')
  • Servicio_de_saga/Sagas('STARWARS')/LosPersonajesDeEsaSaga

 Pero nos complicaremos un poco más la vida para obtener más información y aprender más:

  • Servicio_de_saga/LosPersonajes?$expand=SuSaga

Los pasos que seguiremos son:

  • Crear las estructuras y tablas que necesitaremos, incluyendo datos (SE11 y SM30).
  • Crear el proyecto en la SEGW y activar el servicio oData en la /IWFND/MAINT_SERVICE.
  • Programar los métodos para permitir la funcionalidad de la aplicación estándar (entidad de saga, entityset de saga y navegación hacia personajes).
  • Reprogramar el método que nos permite expandir la saga de un personaje (navegación de un personaje hacia su saga).

Como he metido mucha chicha, siempre podéis leer en diagonal y prestar atención a las imágenes ;).
 

miércoles, 3 de mayo de 2017

SAP UI5 y oData: Asociaciones, navegación y expand (I, teoría)

Cuando tenemos una tabla sencilla en SAP y queremos mostrar los datos en una aplicación SAP UI5, nos podemos crear una aplicación que consuma un servicio oData sencillito y nos quedamos tan contentos (como podemos hacer viendo los distintos post en la página de tutoriales).

Pero claro, las cosas no son tan sencillas, y seguro que nos toca crear una aplicación que muestre datos de muchas tablas que están relacionadas entre ellas. Manda narices, siempre pidiéndonos cosas complicadas.

Pues para solucionar ese problema, vamos a aprender tres cosas muy importantes en un servicio oData: las asociaciones, las navegaciones y el expand.

Gracias a las asociaciones (y compañía), podremos crearnos una aplicación en SAP UI5 que nos muestre los datos de ambas tablas relacionadas, sin tener que comernos mucho la cabeza para hacer múltiples llamadas al servicio oData y tratar los datos en la aplicación. Con una llamada obtendremos los datos de ambas tablas, de sopetón.