125
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADO EN INGENIERÍA TELEMÁTICA SAP Retail 2.0: extensión de ofertas y servicios a clientes en tiempo real mediante SAP Precision Marketing Autor: Gonzalo Díaz Morilla Director: Roberto Pajares Gutiérrez Madrid Julio 2014

SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

GRADO EN INGENIERÍA TELEMÁTICA

SAP Retail 2.0: extensión de ofertas y servicios a clientes en tiempo real mediante SAP Precision Marketing

Autor: Gonzalo Díaz Morilla

Director: Roberto Pajares Gutiérrez

Madrid Julio 2014

Page 2: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie
Page 3: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

i

SAP RETAIL 2.0: EXTENSIÓN DE OFERTAS Y SERVICIOS A CLIENTES EN TIEMPO REAL MEDIANTE SAP PRECISION MARKETING Autor: Gonzalo Díaz Morilla Director: Roberto Pajares Gutiérrez Entidad: Everis Madrid RESUMEN DEL TRABAJO Este trabajo presenta una solución completa desarrollada sobre SAP Precision Marketing, (SPM), una herramienta multiplataforma basada en cloud, que da soporte a aplicaciones de comercio móvil orientadas al sector retail, basadas en el modelo de venta personalizada. La solución desarrollada está compuesta de una aplicación Android con funcionalidad de asistencia personal de ventas para el cliente y de una implementación Java de la subida de datos a SAP HANA Cloud utilizando peticiones REST. Palabras clave: SAP Precision Marketing, Comercio móvil, marketing de precisión, Segmentación, SAP HANA, Cloud, Big Data, Android. 1. Introducción En el mundo actual, en pleno siglo XXI y ya desde el siglo pasado, las nuevas tecnologías han ido adquiriendo cada vez más importancia en la vida de las personas. Con la llegada de los dispositivos móviles es posible el acceso a Internet casi desde cualquier lugar, extendiendo el uso de estos dispositivos para realizar una gran variedad de actividades del día a día de manera sencilla. Uno de los usos más habituales de estos dispositivos móviles, (Smartphones, tablets…) son las interacciones comerciales. Existen multitud de aplicaciones que permiten al usuario realizar compras de diverso tipo. A este tipo de transacciones se las engloba dentro del término m-commerce o comercio móvil. Sin embargo, debido a lo novedoso de este medio de ventas, no se ha podido todavía personalizar la experiencia de compra al cliente, lo que permitiría equiparar este medio de ventas con una venta física. Esta personalización en función de las preferencias del cliente o su historial de compras anteriores, está asociada al concepto de marketing de precisión. La combinación del comercio móvil con el marketing de precisión, posibilitaría ofrecer a los clientes información personalizada en tiempo real en sus dispositivos móviles. Persiguiendo este objetivo SAP ha desarrollado una nueva tecnología denominada SAP Precision Marketing, (SPM). SPM es una solución empresarial que habilita la relación comercial one-to-one entre empresas del sector retail y los consumidores finales, permitiendo ofrecer al cliente información en tiempo real y en punto de decisión de una posible compra. Con esta herramienta se consigue mejorar la experiencia de compra del cliente, pudiendo implementar una aplicación con la funcionalidad de un asistente personal de compras; por otro lado permite al retailer mejorar su volumen de ventas y aprovechar las interacciones con el usuario final para extraer información en tiempo real asociada a sus compras y poder perfeccionar, en base a esta información, su actividad comercial.

Page 4: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

ii

2. Tecnologías y recursos La solución desarrollada en el presente proyecto, está basada en las tecnologías SAP HANA y Android. Por un lado, la herramienta SPM, se sustenta sobre un soporte SAP HANA. La información que utilizará la solución, es almacenada en una base de datos alojada en la SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie de algoritmos que permiten personalizar la información a mostrar en la aplicación móvil en función del perfil del cliente. Por otro lado, SPM ofrece el denominado SPM Portal, una interfaz web basada en SAP UI5, que permite gestionar al retailer parte de la información asociada a su actividad comercial y analizar patrones de comportamiento de los clientes e información sobre ventas, para perfeccionar las campañas de marketing y mejorar el rendimiento del negocio. Por otro lado, se ha elegido Android como lenguaje de programación, debido a las librerías privadas propias que ofrece SAP para utilizar SPM sobre esta plataforma. La versión elegida es la 4.0, API 14 (“Ice Cream Sandwich”), y se utilizan las librerías de Google Play Services para implementar la funcionalidad de la geo localización. 3. Definición del trabajo El presente proyecto tiene como objetivo el desarrollo de una solución completa SPM, que cubra cada una de las áreas de trabajo que trata la herramienta e implemente las funcionalidades que posibilita. Los objetivos en los que se ha dividido el proyecto y cuyo cumplimiento ha sido necesario para la consecución del mismo se recogen a continuación:

- Estudio de la herramienta SPM: se ha realizado un estudio para determinar las posibilidades y funcionalidades ofrecidas por la herramienta SPM.

- Creación de juego de datos: se ha creado un juego de datos ficticios que se ha

utilizado para testear la aplicación.

- Integración en Java de la subida de datos: se ha desarrollado una pasarela Java para integrar los datos en la cloud de la aplicación.

- Diseño y Desarrollo de aplicación Android (asistente personal de compras): se

ha desarrollado una aplicación Android con funcionalidad de asistencia personal de compras para el cliente.

- Pruebas funcionales: se han llevado a cabo una serie de pruebas funcionales para

garantizar el correcto funcionamiento de la solución desarrollada.

- Elaboración de un caso de estudio sobre SPM: se ha elaborado un caso de estudio sobre la solución desarrollada.

4. Desarrollo de la solución

La solución diseñada debe cumplir una serie de casos de uso que garanticen la cobertura de las funcionalidades necesarias para cada uno de los agentes que hacen uso de la misma.

Page 5: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

iii

Se ha creado mediante una hoja Excel un juego de datos, que se convierte a ficheros en formato csv y se suben al servidor siguiendo un orden de subida diseñado para garantizar la consistencia en la base de datos alojada en los servidores cloud de la aplicación. Para el retailer se ha desarrollado una integración Java, basada en peticiones REST sobre los métodos que ofrece la PartnerAPI, que permite las diferentes funcionalidades:

- Registro en el sistema. - Acceso, subida, modificado y borrado de la información.

Para el cliente se ha desarrollado una aplicación Android, que utiliza las librerías privadas de SPM y las librerías de Google Play Services y que ofrece las siguientes funcionalidades:

- Login como usuario anónimo y registrado. - Creación de cuenta de usuario registrado. - Geo localización y actualización automática de la información en función de la

posición del usuario. - Consulta de ofertas personalizadas, catálogo y tiendas cercanas. - Lista de favoritos y carrito de la compra - Establecimiento de perfil, preferencias e intereses.

A continuación se ofrece la arquitectura de la solución diseñada para la subida de datos del retailer:

Por último se muestra el diagrama de arquitectura de la aplicación Android del cliente:

5. Resultados A continuación se ofrecen los resultados de la solución desarrollada. En primer lugar se muestran las tres pantallas de acceso a la aplicación. En siguiente lugar se muestra la pantalla de ofertas y detalles de oferta y producto. Después aparecen el catálogo y las categorías. A continuación se muestran las tiendas, carrito y ofertas favoritas. Por último, aparecen intereses y perfil, que serán utilizados para segmentar las ofertas.

Page 6: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

iv

6. Conclusiones La realización del presente proyecto ha permitido el desarrollo de una solución completa basada en una tecnología altamente innovadora a nivel mundial y ha conducido a un profundo conocimiento sobre distintas áreas tecnológicas. Por un lado, el desarrollo de la aplicación móvil ha permitido aumentar el grado de conocimiento sobre Android y también por tanto sobre Java y XML. Adicionalmente, se ha realizado un estudio en profundidad sobre la propia herramienta SAP Precision Marketing, lo que ha resultado en un amplio conocimiento sobre la propia herramienta y sobre SAP HANA Cloud. Por último, la implementación de la subida de los datos para el perfil de retailer, ha posibilitado la comprensión del funcionamiento de las peticiones REST. Se ha desarrollado una nueva aplicación para dispositivos Android con una funcionalidad totalmente nueva hasta el momento. El valor de la aplicación está directamente relacionado con la posibilidad de incorporar el concepto de marketing de precisón a una aplicación de telefonía móvil. Esto abre la puerta a una nueva generación de aplicaciones de comercio móvil en el sector retail, capaces de mejorar la experiencia de compra del cliente y el volumen de ventas del retailer. Además, la solución desarrollada, sirve como un valioso ejemplo para futuros desarrollos que utilicen esta herramienta, al constituir una de las pocas soluciones SPM que existen actualmente a nivel mundial. Por último, el diseño implementado deja la puerta abierta a futuras mejoras en la aplicación, que se podrían añadir sobre la base ya desarrollada con el objetivo final de confeccionar una nueva y mejorada experiencia de compra para el cliente. 7. Referencias

[1] Device API SPM, Equipo de Operaciones de SPM (SAP USA) http://help.sap.com/saphelp_spm/en/PDF/2_5_spm_device_api_en.pdf Última visita: 20/06/2014 [2 Partner API SPM, Equipo de Operaciones de SPM (SAP USA) http://help.sap.com/saphelp_spm/en/PDF/2_5_spm_partner_api_en.pdf Última visita: 20/06/2014 [3] Documentación oficial de SAP AG. Obtenida a través del partnership establecido con la empresa everis, entidad colaboradora de este proyecto.

Page 7: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

v

SAP RETAIL 2.0: EXTENDING REAL TIME OFFERS AND SERVICES TO CUSTOMERS THROUGH THE SAP PRECISION MARKETING ENGINE. Author: Gonzalo Díaz Morilla Supervisor: Roberto Pajares Gutiérrez Collaborating Entity: Everis Madrid ABSTRACT This work presents a complete SAP Precision Marketing (SPM) solution, a multiplatform tool based on cloud, that supports mobile apps focused on the retail sector using the personalized shopping model. The developed solution is made up of an Android app which is aimed to be the personal assistant of the customer and of a Java implementation of the data uploading to the SAP HANA Cloud based on a REST request model. Keywords: SAP Precision Marketing, M-commerce, precision marketing, marketing segmentation, SAP HANA, Cloud, Big Data, Android. 1. Introduction In today's world, in the XXI century and since the last century, the importance of new technologies in people’s life has gradually increased. With the advent of mobile devices, we can now can access the Internet almost anywhere, extending the use of these devices to perform a wide range of daily activies from an easier way. One of the most common uses of these mobile devices (Smartphones, Tablets ...) are business interactions. There are many applications that allow users to make purchases many kinds of products. These types of transactions are usually included within the m-commerce term. However, due to the novelty of this sales channel, personalizing the customer shopping experience is not possible yet, which would equate this kind of sales to a physical sale. This customization based on customer preferences or history of previous purchases, is associated to the concept of precision marketing. The combination of mobile commerce with precision marketing, would make possible offering to clients customized information in real time on their mobile devices. With this goal in mind, SAP has developed a new technology called SAP Precision Marketing (SPM). SPM is an enterprise solution that allows one-to-one business relationship between Retail companies and consumers, offering the customer real-time information at the decision point of a possible purchase. This tool enhances the customer shopping experience as can give support to apps with the functionality of a personal shopping assistant; on the other hand allows the retailer to improve turnover and take advantage of interactions with users, to extract real-time information associated with their purchases and to improve, based on this information, the commercial activity. 2. Technologies and resources The solution developed in this project uses SAP HANA and Android technologies. On one hand, the SPM tool is supported by the SAP HANA engine. The information used by the solution is stored in a database hosted on the SAP HANA Cloud and the tool is able, using the computing engine of SAP Big Data, using a series of algorithms,

Page 8: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

vi

to personalize the information to show in the mobile application for each customer profile. Furthermore, SPM offers the SPM Portal, a web-based interface developed in SAP UI5, which allows the retailer to manage part of the information associated with his business and analyze patterns of customer behaviors and sales information to refine marketing campaigns and improve business performance. Finally Android was chosen as the programming language due to their own private libraries that SAP offers to use SPM on this platform. The selected version is 4.0, API 14 ("Ice Cream Sandwich"), and Google Play Services libraries are used to implement the functionality of the geo location. 3. Work scope The goal of the project is to develop a complete SPM solution, covering each of the areas of work offered by the tool and implement most of the functionalites that it enables. The objectives that the project has been divided and whose compliance has been required to achieve the successful ending are given below:

- Study of the SPM tool: a study was perform to determine the possibilities and functionalities offered by the SPM tool.

- Creating data set: a set of virtual data has been created to test the application.

- Java Integration of data uploading: a Java gateway has been developed to

integrate the data into the cloud application.

- Design and Development of Android (personal shopper) application: an Android application with the personal shopping assistance function has developed for the client.

- Functional tests: a series of functional tests they have been carried out to ensure

the proper functioning of the developed solution.

- Preparation of a case study on SPM: a case study has been carried out about the solution developed.

4. Solution development The designed solution must provide a number of use cases to ensure the necessary coverage for each of the agents that make use of it. A set of data has been created using an Excel spreadsheet, which is converted to files in csv format and uploaded to the server following and uploading order, to ensure the consistency of the database hosted on the cloud application servers. For the retailer, a Java integration has been developed, based on REST requests on the methods offered by PartnerAPI, that allows different functionalities:

- Registration in the system. - Access, uploade, modifie and delete the information.

For the client, an Android application has developed, using private SPM and Google Play Services libraries, offering the following features:

Page 9: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

vii

- Login as anonymous and registered user. - Creating registered user account. - Geo location and automatically update the information based on the user's

position. - Checking personalized offers, catalog and nearby stores. - List of favorites and shopping cart - Establishment of profile, preferences and interests.

The architecture diagram of the retailer solucition for the data uploading is shown below:

Finally, the architecture diagram of the Android client application is shown below:

5. Results The results of the developed solution are shown below. The first three screens are the ones used to log into the application. Then the offer screen and offer and product details screens are shown. Afterwards the catalog and categories appear. Then stores, shopping and favorite deals are shown. The final screens are interests and profile, that will be used to segment the offers.

Page 10: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

viii

6. Conclusions The development of this project has allowed the creation of a solution based on a highly innovative technology worldwide. The realization of this whole process of work has led to a profound knowledge of various technology areas. On one hand, the development of the mobile application has increased the level of knowledge about Android and so on Java and XML. Additionally, a deep study of the SAP Precision Marketing tool has been conducted, which has resulted in a broad knowledge of the tool itself and SAP HANA Cloud. Finally, the implementation of data uploading for the retailer case, has made possible the understanding of how REST requests work. A new application for Android devices with a totally new feature has been created. The value of the application is directly related to the possibility of incorporating the precision marketing concept to a mobile phone application. This opens the door to a new generation of mobile commerce applications for the retail area, able to improve the shopping experience of the customer and the sales volume of the retailer sector. In addition, the solution developed, serves as a valuable example for future developments using this tool, as is one of the few SPM solutions that currently exist worldwide. Finally, the implemented design leaves the door open to future improvements in the application, which could be added to the existeing solution, with the ultimate aim of building a new and improved shopping experience for the customer. 7. References

[1] Device API SPM, SPM Operation Team (SAP USA) http://help.sap.com/saphelp_spm/en/PDF/2_5_spm_device_api_en.pdf Last seen: 20/06/2014 [2 Partner API SPM, SPM Operation Team (SAP USA) http://help.sap.com/saphelp_spm/en/PDF/2_5_spm_partner_api_en.pdf Last seen: 20/06/2014 [3] Official Documentation from SAP AG. Obtained through the partnership established with everis, associated organization of this project.

Page 11: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

ix

Índice

1. Introducción .................................................................................................................1

1.1 Marketing .................................................................................................................1

1.1.1 Sector Retail ................................................................................................................. 1

1.1.2 Marketing ..................................................................................................................... 2

1.2 Nuevas Tecnologías .................................................................................................7

1.2.1 Aplicaciones ................................................................................................................. 9

1.3 Motivación .............................................................................................................11

2. Descripción de tecnologías ........................................................................................13

2.1 Plataformas móviles ...............................................................................................13

2.2 SAP Precision Marketing ......................................................................................18

2.2.1 SAP, Introducción ...................................................................................................... 18

2.2.2 SAP HANA ................................................................................................................. 20

3. Estado de la cuestión .................................................................................................37

3.1 Sociedad de Transportes de Montreal (STM) ........................................................37

4. Definición del trabajo ................................................................................................41

4.1 Objetivos ................................................................................................................41

4.2 Metodología ...........................................................................................................44

5. Planificación y estimación económica ......................................................................49

5.1 Planificación ..........................................................................................................49

5.2 Equipo de proyecto ................................................................................................49

5.3 Estimación económica ...........................................................................................51

6. Desarollo de la solución desarrollada ......................................................................53

6.1 Análisis ..................................................................................................................53

6.1.1 Casos de uso ............................................................................................................... 53

6.2 Diseño ....................................................................................................................67

6.2.1 Modelo de datos ......................................................................................................... 67

6.2.2 Diseño de interfaces ................................................................................................... 71

6.3 Implementación .....................................................................................................76

6.3.1 Ficheros csv ............................................................................................................... 76

6.3.2 Subida de datos .......................................................................................................... 78

6.3.3 Aplicación Android .................................................................................................... 81

Page 12: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

x

7. Análisis de resultados ................................................................................................95

8. Conclusiones y trabajos futuros .............................................................................103

8.1 Conclusiones ........................................................................................................103

8.2 Trabajos futuros ...................................................................................................104

8.2.1 Compra electrónica .................................................................................................. 104

8.2.2 Navegación ............................................................................................................... 104

8.2.3 Escaneado de etiquetas ............................................................................................ 105

8.2.4 Aplicación para el retailer ....................................................................................... 105

9. Bibliografía ...............................................................................................................107

Page 13: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

xi

Índice Figuras Figura 1. Ciclo de vida Activity Android ....................................................................... 16

Figura 2. Ciclo de vida Fragment Android ..................................................................... 17

Figura 3. Módulos SAP R/3 ........................................................................................... 19

Figura 4 Características SAP HANA ............................................................................. 22

Figura 5. Arquitectura SAP HANA Cloud ..................................................................... 22

Figura 6. Aplicaciones de SAP HANA Cloud .............................................................. 24

Figura 7. Estructura SAP Precision Marketing .............................................................. 26

Figura 8. Mensajes JSON ............................................................................................... 30

Figura 9. Códigos de respuesta ....................................................................................... 31

Figura 10. Partner API .................................................................................................... 31

Figura 11. Librerías SPM ............................................................................................... 32

Figura 12. Portal Web SPM ............................................................................................ 33

Figura 13. Portal Business User ..................................................................................... 34

Figura 14. Función Análisis Portal SPM 1 ..................................................................... 35

Figura 15. Función Análisis Portal SPM 2 ..................................................................... 35

Figura 16. Visión General STM ..................................................................................... 38

Figura 17. Agentes STM ................................................................................................ 39

Figura 18. Planificación Temporal ................................................................................. 49

Figura 19. Organigrama del Equipo de Trabajo ............................................................. 51

Figura 20. Perfiles y Tarifas ........................................................................................... 51

Figura 21. Plan de facturación ........................................................................................ 52

Figura 22 Casos de uso Retailer ..................................................................................... 54

Figura 23 Casos de uso Cliente ...................................................................................... 55

Figura 24. Modelo de Datos Consumidor ...................................................................... 68

Figura 25. Modelo de Datos Promociones ..................................................................... 69

Figura 26. Modelo de Datos Catálogo ............................................................................ 70

Figura 27. Tabs Aplicación 1, Figura 28. Tabs Aplicación 2 ......................................... 71

Figura 29. Detalles Oferta, Figura 30. Detalles Producto .............................................. 72

Figura 31. Tab Catálogos, Figura 32. Tab Tiendas ........................................................ 73

Figura 33. Tab Tiendas ................................................................................................... 74

Figura 34. Tab Carrito, Figura 35. Tab Favoritos .......................................................... 75

Figura 36. Partner API Segment ..................................................................................... 76

Figura 37. Excel Segment ............................................................................................... 77

Figura 38. Acceso, Figura 39. Inicio de Sesión .............................................................. 95

Figura 40. Registro, Figura 41. Ofertas .......................................................................... 96

Page 14: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

xii

Figura 42. Detalles de la Oferta, Figura 43. Detalles del Producto ................................ 97

Figura 44. Catálogo, Figura 45. Lista de Categorías ...................................................... 97

Figura 46. Lista de Productos, Figura 47. Tiendas ......................................................... 98

Figura 48. Carrito, Figura 49.Favoritos .......................................................................... 99

Figura 50. Intereses, Figura 51. Perfil ............................................................................ 99

Figura 52. Editar Perfil, Figura 53. Cerrar Sesión ........................................................ 100

Page 15: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

xiii

Índice Tablas Tabla 1. Objetivos del Proyecto ..................................................................................... 41

Tabla 2 Objetivos y Tareas ............................................................................................. 45

Tabla 3. Caso de uso Cliente Acceso Anónimo ............................................................. 56

Tabla 4. Caso de uso Cliente Acceso registrado ............................................................ 57

Tabla 5 Caso de uso Cliente Crear Usuario .................................................................... 58

Tabla 6. Caso de uso Cliente Establecer Preferencias .................................................... 58

Tabla 7. Caso de Uso Cliente Recibir Ofertas ................................................................ 59

Tabla 8. Caso de uso Cliente Consultar catálogo ........................................................... 60

Tabla 9. Caso de uso Cliente Localizar Tiendas ............................................................ 60

Tabla 10. Caso de uso Cliente Añadir/Retirar Productos al Carrito ............................... 61

Tabla 11. Caso de uso Cliente Añadir/Retirar Ofertas a Favoritos ................................ 61

Tabla 12. Caso de uso Cliente Modificar Preferencias .................................................. 62

Tabla 13. Caso de uso Retailer Registro ........................................................................ 63

Tabla 14. Caso de uso Retailer Acceder a la información ............................................. 64

Tabla 15. Caso de uso Retailer Añadir información ...................................................... 64

Tabla 16 Caso de uso Retailer Modificar la Información .............................................. 65

Tabla 17 Caso de uso Retailer Retirar información ....................................................... 66

Page 16: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

xiv

Page 17: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

1

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

1. Introducción Hoy en día, debido al grado de perfeccionamiento y sofisticación alcanzado por los

procesos productivos y las técnicas de venta de las compañías que compiten en un

mercado, cada vez resulta más difícil para algunas poder ser competitivas. El mercado

evoluciona constantemente y se encuentra en un punto en el que las estrategias de las

compañías para aumentar su volumen de ventas se basan en técnicas y herramientas

cada vez más sofisticadas. No se trata sólo de trabajar en la calidad del producto o

servicio desarrollado, sino en determinar la mejor estrategia para publicitarlo y en tener

claro el tipo de público al que va dirigido. Este hecho se hace especialmente visible en

mercados de venta al detalle o retail, en los que se aplican estrategias y técnicas para

aumentar el volumen de ventas de los negocios y alcanzar una mejor posición en el

mercado. En este marco tan complejo las nuevas tecnologías cuentan cada vez con más

importancia, siendo un factor clave en la creación de valor para pequeños y grandes

negocios.

1.1 Marketing 1.1.1 Sector Retail El retail o venta al detalle es un sector económico que engloba a las empresas

especializadas en la comercialización masiva de productos o servicios uniformes a

grandes cantidades de clientes. [1]

Es el sector industrial que entrega productos al consumidor final. La razón para

involucrar a mayoristas y minoristas en un mismo sector fue una consecuencia de la

gran cantidad de problemas y soluciones comunes que tienen ambos sectores por la

masividad y diversidad tanto de sus productos como de sus clientes. En el negocio del

retail se pueden incluir todas las tiendas o locales comerciales que habitualmente se

encuentran en cualquier centro urbano con venta directa al público, sin embargo su uso

Page 18: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

2

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

se halla más bien ligado a las grandes cadenas de locales comerciales. El ejemplo más

común del retail lo constituyen los supermercados; otros comercios tradicionalmente

asociados al retail son las tiendas por departamentos, casas de artículos para el

hogar, ferreterías, farmacias, venta de indumentaria, librerías, entre muchas más. La

complejidad del retail viene dada por la amplia variedad de artículos que son ofrecidos,

así como el nivel de operaciones efectuado.

Una característica que solía ser común al segmento del retail era su canal de

venta compuesto por tiendas o locales comerciales, sin embargo la aparición de la venta

telefónica y la venta por Internet también han derribado este concepto. En las grandes

cadenas es muy común la ampliación a numerosos puntos de venta, lo cual permite el

mejor aprovechamiento de costos comunes como pueden ser marketing, publicidad,

administración o el diseño de locales.

Los canales de venta son la esencia del retail, y buena parte de sus esfuerzos y

diferenciación se concentran en el diseño y la experiencia de compra que proporcionan

los distintos canales.

1.1.2 Marketing Se define marketing como el conjunto de acciones cuyo objetivo es prever la demanda

de bienes y servicios para obtener la máxima eficacia en su comercialización. [2]

Como disciplina de influencias científicas, el marketing es un conjunto de principios,

metodologías y técnicas a través de las cuales se busca conquistar un mercado,

colaborar en la obtención de los objetivos de la organización, y satisfacer las

necesidades y deseos de los consumidores o clientes.

El objetivo principal del marketing es llevar al cliente hasta el límite de la decisión de

compra. Además tiene también como objetivo favorecer el intercambio de valor entre

dos partes (comprador y vendedor), de manera que ambas resulten beneficiadas.

Page 19: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

3

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Se denomina marketing mix a las herramientas o variables de las que dispone el

responsable de marketing para cumplir con los objetivos de la compañía. Estas

herramientas son conocidas también como las P del marketing:

Producto (Product): Cualquier bien, servicio, idea, persona, lugar, organización o

institución que se ofrezca en un mercado.

Precio (Price): Es el valor de intercambio del producto, determinado por la utilidad o la

satisfacción derivada de la compra y el uso o el consumo del producto.

Distribución (Place): Elemento de la mezcla que utilizamos para conseguir que un

producto llegue satisfactoriamente al cliente. Define dónde comercializar el producto o

servicio que se ofrece al consumidor.

Promoción (Promotion): Se refiere a comunicar, informar y persuadir al cliente y otros

interesados sobre la empresa, sus productos, y ofertas, para el logro de los objetivos

organizacionales.

En función de la actividad de la compañía y su modelo de negocio, existen distintos

tipos de marketing, de acuerdo con las necesidades estratégicas de cada organización.

En el presente proyecto se desarrollará una aplicación basada en el concepto de

marketing de precisión.

Marketing de precisión El marketing de precisión es una visión estratégica de la gestión de la organización

basada en el conocimiento completo de cada uno de sus clientes, sus expectativas

individuales, sus hábitos de compra, su frecuencia de compra, sus niveles de compra, su

valor relativo… con el fin de enfocar todos los esfuerzos, estrategias y tácticas en la

Page 20: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

4

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

relación personalizada con cada uno de ellos, en la búsqueda del aseguramiento de la

fidelidad total de los clientes.

Existen cuatro pasos a seguir para que la empresa logre darle un trato especializado a

cada tipo de cliente, estos son:

Identificar: Identificar y conocer a los clientes del establecimiento. Se trata

crear un sistema que permita recopilar, organizar y poner a disposición del

personal de la empresa un sistema que permita conocer la información necesaria

de cada cliente para definir estrategias y tácticas orientadas a consolidar su

relación con el negocio. Son de gran utilidad, para llevar a cabo lo anterior, los

CRM (Customer Relationship Management.) Software informático que

gestiona la relación con el cliente.

Diferenciar: Las empresas deben diferenciar a su clientela (caracterización de

clientes) con el objetivo de:

• Obtener el máximo beneficio de los clientes más valiosos (CMV)

• Reorientar las estrategias y tácticas para satisfacer mejor las necesidades,

deseos y expectativas de los grupos de clientes más importantes.

Interactuar: Una vez diferenciados los clientes se debe establecer una relación

con ellos mediante una comunicación interactiva y personalizada en función

de las características de cada cliente. Con el fin de ir creciendo de forma

sostenida mediante la retención y fidelización.

Personalizar: Personalizar productos, servicios, procesos y relaciones en

función de las necesidades y expectativas individuales de los clientes. En

definitiva darle a cada cliente lo que desea, como lo desea y cuando lo

Page 21: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

5

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

desea en relación al producto, trato personalizado, comunicación adecuada,

asesoramiento, promociones individualizadas…

El marketing de precisión es un concepto opuesto al del marketing masivo, que intenta

hacer llegar el mismo producto al mayor número de clientes. El marketing de precisión

se basa en la idea de la segmentación del mercado

Segmentación La segmentación de mercados es el proceso de agrupar consumidores de acuerdo a

características comunes. Un segmento de mercado está formado por un grupo

identificable con deseos, necesidades, poder adquisitivo, actitudes de compra o hábitos

similares a los que las características del producto o servicio podrían satisfacer. [3]

El principal objetivo de la segmentación de mercados es aumentar la precisión en la

estrategia de marketing.

Hay dos formas principales de segmentar el mercado: por las características del

segmento o por su conducta.

La segmentación se hace de acuerdo a las siguientes variables:

- Variables Demográficas: Edad, sexo, nacionalidad…

- Variables Socio-Económicas: ingresos, ocupación, educación, nivel socio

económico…

- Variables Psicográficas: Personalidad, estilos de vida, intereses, gustos,

inquietudes, opiniones, valores…

Page 22: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

6

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

- Variables Conductuales: Lealtad de marca, beneficios buscados (precio, calidad,

servicio), tipo de usuario, nivel de uso (heavy / ligth users), entre otras.

No existe una regla en cuanto al número de variables utilizadas al definir un segmento.

Las variables demográficas son fáciles de identificar y son usadas generalmente entre la

mayoría de mercádologos y publicistas que diseñan su estrategia basándose en un grupo

con un rango de edad determinada, género y nivel socio económico. Sin embargo esta

información a menudo es insuficiente y se suelen utilizar el resto de variables para

crearse un perfil más completo del cliente, lo que se denomina perfil psicográfico.

Fidelización Por último, otro concepto asociado al marketing de precisión, con especial relevancia en

las ventas es la fidelización.

La fidelización es el fenómeno por el que un público determinado permanece fiel a la

compra de un producto concreto de una marca concreta, de una forma continua o

periódica. [4]

La fidelización se basa en convertir cada venta en el principio de la siguiente. Trata de

conseguir una relación estable y duradera con los usuarios finales de los productos que

vende. Un plan de fidelización debe mostrar tres «C»: captar, convencer y conservar.

Una empresa establece su estrategia de fidelización con el objetivo de mantener sus

clientes activos y, si es posible, aumentar la cifra de negocio con ellos.

Cuando un consumidor compra un producto, pueden ocurrir tres cosas distintas:

Que no vuelva a comprar el producto

Que vuelva a comprarlo

Que compre el mismo artículo, pero de otra marca

Page 23: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

7

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Evidentemente, las agencias de publicidad y comunicación son capaces de diseñar

planes de fidelización, basándose en promociones más o menos sofisticadas. La

fidelización a una marca, a una empresa... se trabaja superando las expectativas del

cliente.

La estrategia de fidelización empieza con la formación de los empleados de la propia

empresa para que adopten el siguiente paradigma: la calidad de un producto o servicio

conduce a la satisfacción del cliente, que lleva a la fidelización del cliente, que lleva a la

rentabilidad. La fidelización confía en la publicidad y la comunicación “boca a boca”

para transmitir las ventajas y beneficios que disfrutan los clientes fidelizados y así atraer

a nuevos clientes.

1.2 Nuevas Tecnologías Todos estos procedimientos, estrategias y herramientas tradicionales para gestionar

relaciones con el consumidor que puedan generar beneficios se han visto impactadas en

los últimos tiempos por la irrupción de las nuevas tecnologías de información y

comunicación.

En el mundo actual, en pleno siglo XXI y ya desde el siglo pasado, las nuevas

tecnologías han ido adquiriendo cada vez más importancia en la vida de las personas.

Forman parte de nuestro día a día, permitiéndonos realizar una gran diversidad de tareas

de manera sencilla. Esto ha derivado en una profunda transformación social, económica

y cultural del mundo en el que vivimos.

Las tecnologías de la información y la comunicación (TIC) [5], a veces

denominadas nuevas tecnologías de la información y la comunicación (NTIC), se

aplican hoy en día en una gran variedad de campos, desde la agricultura de precisión a

la monitorización global del medio ambiente planetario o de la biodiversidad,

Page 24: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

8

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

la democracia participativa (TIC al servicio del desarrollo sostenible), pasando por el

comercio, la telemedicina, la información, la gestión de múltiples bases de datos,

la bolsa, la robótica y los usos militares, sin olvidar la ayuda a los discapacitados. En

definitiva, las TIC tienden a ocupar un lugar creciente en la vida humana y el

funcionamiento de las sociedades.

La eclosión de las TIC ha producido y está produciendo una profunda transformación de

la sociedad actual. Esta transformación está impulsada principalmente por los nuevos

medios disponibles para crear y divulgar información mediante tecnologías digitales.

Los flujos de información, las comunicaciones y los mecanismos de coordinación se

están digitalizando en muchos sectores de la sociedad, proceso que se traduce en la

aparición progresiva de nuevas formas de organización social y productiva. Esta

"actividad digital", que se va convirtiendo poco a poco en un fenómeno global, tiene su

origen fundamentalmente en las sociedades industrializadas más maduras. De hecho, la

adopción de este paradigma basado en la tecnología está íntimamente relacionada con el

grado de desarrollo de la sociedad. Sin embargo, la tecnología no es sólo un fruto del

desarrollo (por ser consecuencia de éste), sino también, y en gran medida, uno de sus

motores (por ser una herramienta de desarrollo).

Dispositivos móviles Dentro de este nuevo contexto tecnológico, cada vez cobran más importancia los

llamados dispositivos móviles [6]. Un dispositivo móvil se puede definir como un

aparato de pequeño tamaño, con algunas capacidades de procesamiento, con conexión

permanente o intermitente a una red, con memoria limitada, que ha sido diseñado

específicamente para una función, pero que puede llevar a cabo otras funciones más

generales. De acuerdo con esta definición existen multitud de dispositivos móviles,

desde los reproductores de audio portátiles hasta los navegadores GPS, pasando por los

teléfonos móviles y Smartphones, las PDAs o las tablets. El uso de Smartphones y

tablets ha experimentado en los últimos años un crecimiento progresivo hasta ser ya los

Page 25: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

9

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

tipos de dispositivos más utilizados y conocidos en la actualidad, al ofrecer mayor

variedad de aplicaciones multimedia y más posibilidades de evolución futura. [6]

La llegada de los dispositivos móviles posibilita el acceso a Internet casi desde

cualquier lugar, permitiendo utilizar estos dispositivos para una gran variedad de

actividades de nuestro día a día de una manera sencilla, lo que supone un ahorro en

tiempo y esfuerzo. Existen distintos sistemas operativos para regular el funcionamiento

de los dispositivos móviles.

1.2.1 Aplicaciones Los sistemas operativos móviles permiten utilizar estos dispositivos para una gran

variedad de tareas, a través de las aplicaciones.

Una aplicación (también llamada App) es simplemente un programa informático creado

para llevar a cabo o facilitar una tarea en un dispositivo informático. Sólo se denomina

aplicación a aquel software que ha sido creado con un fin determinado, para realizar

tareas concretas. Las aplicaciones nacen de alguna necesidad concreta de los usuarios, y

se usan para facilitar o permitir la ejecución de ciertas tareas en las que un analista o un

programador ha detectado una cierta necesidad. Pero las aplicaciones también pueden

responder a necesidades lúdicas, además de laborales (todos los juegos, por ejemplo,

son considerados aplicaciones).

Siendo una palabra de uso común en el mundo del software, el término App comenzó a

utilizarse especialmente para referirse a las aplicaciones para móviles en 2008, tras la

consecución de tres hitos importantes en la historia de las aplicaciones, el lanzamiento

del App Store de Apple, la publicación del primer SDK para Android y la posterior pero

casi inmediata inauguración del Android Market.

Page 26: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

10

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

En el presente proyecto se centra en el desarrollo de una aplicación Android de

comercio móvil. Las características generales de este tipo de aplicaciones móviles se

ofrecen en el siguiente apartado.

Aplicaciones de comercio móvil (m-commerce) El comercio móvil (del inglés m-commerce) es la compra y venta de bienes y servicios

a través de dispositivos móviles, como teléfonos móviles, tabletas y asistentes digitales

personales (PDA). Durante los últimos años ha ido creciendo exponencialmente, y con

la aparición de los Smartphones, se ha convertido en una de las vías de venta más

interesantes para las empresas.

Existen multitud de aplicaciones que permiten al usuario realizar compras de diverso

tipo. Aprovechando esta vía, muchas empresas han empezado ya a centrar su actividad

comercial de manera parcial o total en este entorno, pudiendo llegar a un mayor número

de usuarios, en cualquier lugar y en cualquier momento. El comercio móvil posee la

ventaja además de introducirse en el mercado a un coste muy bajo.

Algunas de las opciones que las aplicaciones de comercio móvil actuales permiten se

listan a continuación:

- Realización de pagos y redención de cupones

- Obtención de promociones

- Obtención de información acerca del producto

- Posibilidad de hacer listas de compras

Page 27: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

11

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

- Empaque extendido: acceso a información adicional y especializada del

producto

- Conocer ubicaciones dentro de los locales

Las aplicaciones de comercio móvil permiten establecer una relación con el usuario en

el punto de venta, pudiendo interaccionar con él en el momento mismo de la compra.

Sin embargo, estas aplicaciones se basan en el concepto de marketing masivo,

ofreciendo de igual forma los productos a todos los clientes. Queda por tanto la

posibilidad de aplicar otro tipo de estrategias de marketing más personalizadas sobre la

base en tiempo real y punto de venta que ofrecen estas aplicaciones.

1.3 Motivación Las campañas basadas en marketing de precisión ofrecen ventajas a todas las partes

implicadas en el sector del retail: empresas y clientes finales. En este contexto y dentro

del mundo tecnológico actual, una aplicación móvil podría ser una forma muy

interesante de aprovechar las últimas tecnologías para poder poner en práctica campañas

de marketing de precisión.

Hasta ahora las aplicaciones de m-commerce o comercio móvil posibilitaban las ventas

desde dispositivos móviles, pero no eran capaces de personalizar sus ofertas, ofreciendo

lo mismo a todos los posibles clientes. Pese a ello, diversas aplicaciones de m-

commerce han proliferado, obteniendo una amplia aceptación entre los usuarios de

dispositivos móviles, con incrementos anuales del volumen de ventas desde estos

dispositivos.

Persiguiendo este objetivo SAP ha desarrollado una nueva tecnología denominada SAP

Precision Marketing. SPM es una solución empresarial que posibilita la relación

Page 28: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

12

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

comercial one-to-one entre empresas del sector retail y los consumidores finales,

permitiendo ofrecer al cliente información en tiempo real y en punto de decisión de una

posible compra.

SPM ofrece la posibilidad de integrar estrategias de marketing de precisión en una

aplicación para dispositivos móviles. Utilizando las tecnologías más punteras dentro del

ámbito SAP (SAP Cloud, SAP BigData, SAP Mobility, SAP Hana…), SAP Precision

Marketing (SPM), ofrece las herramientas necesarias para poder crear una aplicación

móvil basada en marketing de precisión.

Mediante este proyecto se pretende crear un prototipo funcionalmente completo de una

aplicación SPM adaptada a las necesidades de un cliente concreto. Utilizando las

herramientas adicionales de SPM, que permiten estudiar los datos relacionados con las

ventas desde un punto de vista de marketing, se realizará además un caso de estudio

acerca de la implementación de esta solución, que permita comprobar el impacto de la

misma en el mercado para una empresa de retail.

Page 29: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

13

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

2. Descripción de tecnologías 2.1 Plataformas móviles Un sistema operativo móvil o SO móvil es un sistema operativo que controla

un dispositivo móvil. Los sistemas operativos móviles son mucho más simples que los

sistemas operativos tradicionales (de PCs) y están más orientados a la conectividad

inalámbrica, los formatos multimedia para móviles y las diferentes maneras de

introducir información en ellos. [7]

Actualmente, dos sistemas operativos dominan el mercado de los dispositivos móviles.

Android acapara aproximadamente un 80% de la cuota de mercado, iOs un 13% y el

resto se reparte entre otros sistemas operativos de menor difusión como Windows

Phone o Blackberry OS1.

En el presente proyecto se utilizará Android como sistema operativo de desarrollo para

dispositivos móviles.

Android2 Android es un sistema operativo orientado a dispositivos móviles, basado en una

versión modificada del núcleo de Linux. Inicialmente fue desarrollado por Android Inc.,

una pequeña empresa que posteriormente fue comprada por Google. En la actualidad lo

desarrollan los miebros de la Open Handset Alliance3, un consorcio formado por 48

empresas de desarrollo hardware, software y telecomunicaciones, que decidieron

promocionar el software libre. Pero ha sido Google quien ha publicado la mayor parte

1 Fuente: http://www.xataka.com/ 2 Página official de Android: http://developer.android.com/index.html 3 http://www.openhandsetalliance.com/

Page 30: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

14

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

del código fuente del sistema operativo, gracias al software Apache, que es una

fundación que da soporte a proyectos software de código abierto.

¿Por qué Android?

Android proporciona un entorno sumamente poderoso para poder programar

aplicaciones que hagan casi cualquier cosa.

El potencial de Android se sitúa en el control total que se le da al usuario para que haga

de su teléfono un dispositivo a su medida. Además el hecho de ser un sistema operativo

libre hace que los costes para lanzar cualquier aplicación sean muy bajos. Además, la

sencillez de la interfaz que proporciona Android al usuario, hacen que sea una de las

mejores opciones para crear aplicaciones para dispositivos móviles.

Por último, como se verá más adelante, SPM proporciona unas librerías privadas para

Android, que facilitan enormemente el desarrollo de la aplicación móvil que se llevará a

cabo en el presente proyecto. Esto se debe a que en estas librerías se han definido una

serie de métodos que construyen y ejecutan peticiones REST al servidor de SPM, que

pueden ser utilizados como métodos locales en la aplicación Android.

Características generales

A continuación se ofrece una explicación más detallada de las clases más importantes

en la programación de una aplicación Android.

Clase R

La clase R.java de Android, es una clase generada dinámicamente, creada durante el

proceso de construcción de la aplicación, para identificar de forma dinámica a todos los

recursos (desde strings a los widgets Android utilizados para los diseños), para la

utilización de los mismos en las clases Java de la aplicación de Android. Contiene una

constante numérica asignada a cada recurso accesible en la aplicación y para cada tipo

Page 31: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

15

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

de recurso existe una subclase de la clase R. Se encuentra ubicada en el directorio gen

(archivos Java generados) del proyecto. A continuación se muestra un extracto de un

ejemplo de esta clase.

Clase Strings

La clase Strings.xml contiene cadenas de texto que pueden ser referenciadas por la

aplicación o por otros recursos. En Android los Strings que se utilizan en la aplicación

tanto en la parte de las vistas (XML), como de la propia aplicación (Java), son

declarados de manera común en esta clase. De esta manera para utilizar un String

bastará con utilizar la referencia a dicho recurso. Para ello se utilizan las siguientes

estructuras:

- En XML: @string/string_name

- En Java: R.string.string_name

A continuación se ofrece un ejemplo del uso de esta clase:

Para utilizar por ejemplo el String “Detalles del Producto” bastaría con utilizar:

- En XML: @string/act_product_details

- En Java: R.string.act_product_details

<string name="act_products">Products</string> <string name="act_product_details">Detalles del Producto</string>

public static final int common_signin_btn_dark_text_default = 0x7f040000; public static final int common_signin_btn_dark_text_disabled = 0x7f040002; public static final int common_signin_btn_dark_text_focused = 0x7f040003; public static final int common_signin_btn_dark_text_pressed = 0x7f040001;

Page 32: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

16

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Main Activity

La MainActivity es la actividad principal de la aplicación. Se encarga de gestionar el

ciclo de vida de la misma, por medio de los métodos definidos para las activities en

Android. A continuación se muestra el ciclo de vida de una Activity en Android:

Figura 1. Ciclo de vida Activity Android (Fuente: http://developer.android.com)

Page 33: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

17

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Fragments

La MainActivity puede además definir Fragments, utilizados para gestionar de manera

independiente ciertas partes de la aplicación con una funcionalidad determinada. Los

Fragments representan un comportamiento o una porción de interfaz de usuario dentro

de una actividad. Los Fragments tienen siempre que estar embebidos en una actividad y

su ciclo de vida está sujeto los cambios del ciclo de vida de la actividad a la que

pertenecen. A continuación se muestra el ciclo de vida de un Fragment en Android:

Figura 2. Ciclo de vida Fragment Android (Fuente: http://developer.android.com)

Page 34: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

18

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

2.2 SAP Precision Marketing 2.2.1 SAP, Introducción SAP4 es una compañía fundada en 1972 en la Ciudad de Mannheim, Alemania, por

antiguos empleados de IBM. La corporación SAP fue fundada en 1972 y se ha

desarrollado hasta convertirse en la quinta compañía de software más grande del

mundo. [8]

Los productos que ofrece SAP se centran en su gran mayoría en la planificación de los

recursos empresariales (ERP). Mediante los sistemas ERP se realiza el seguimiento de

las diversas áreas de una compañía, desde la fabricación de un producto, pasando por la

logística, la distribución, el control de stock o la contabilidad de la organización.[9]

Se trata básicamente de un software desarrollado para el manejo eficaz de la

información de las empresas, que permite tomar decisiones acertadas en los momentos

oportunos, gracias a la veracidad de los datos que se manejan mediante el ERP.

Por este motivo, por lo general los sistemas ERP son denominados en el ambiente

empresarial como sistemas de Back Office, ya que sólo se encuentran involucrados en él

los diferentes sectores de la compañía. Por el contrario, los sistemas llamados Front

Office o más comúnmente denominados CRM, son aquellos que como su nombre lo

indica permite una relación directa con los clientes, como lo son los negocios de

comercios electrónicos, administración electrónica, telecomunicaciones electrónicas y

finanzas electrónicas. Gracias a la utilización de los ERP, todos los departamentos de

una organización logran estar comunicados e integrados con el fin de mejorar la

productividad de la empresa, ya que disponer de información concreta en tiempo real

permite una toma de decisiones más inteligente. [10]

4 Página oficial SAP: http://www.sap.com

Page 35: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

19

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

La característica fundamental del ERP reside en que contiene diferentes partes, o

módulos, cada una de ellas destinada a las diversas áreas de la empresa, y las integra en

un sólo programa para compilar la información que puede ser utilizada a la vez por

cualquiera de los sectores que componen una organización.

El producto principal de SAP es un ERP denominado R/3 [11]. Predecesor del R/2, el

sistema SAP R/3 consta, de distintos módulos correspondientes a distintas áreas

empresariales homogéneas, que soportan las operaciones de una empresa y trabajan

integradas en tiempo real. SAP R/3 está basado en cuatro áreas empresariales:

Figura 3. Módulos SAP R/3 (Fuente: http://www.sap.com)

- Finanzas

- Logística

- Recursos Humanos

- Multiaplicaciones

Cada módulo se encarga por tanto de dar una solución específica a un área empresarial

determinada. La integración de los módulos por medio de la plataforma R/3, permite

Page 36: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

20

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

compartir la información entre las distintas áreas de la empresa, facilitando la

organización empresarial y administración de los recursos de la compañía.

El sistema SAP R/2 estaba basado en una arquitectura Mainframe, siguiendo la

tendencia de comienzos de los años 90. Posteriormente se desarrolló R/3 basándose en

un modelo cliente-servidor. Sin embargo, con la llegada de las nuevas tecnologías, que

se engloban dentro de la tercera revolución industrial, SAP ha seguido innovando y

siguiendo estas tendencias en el año 2009 lanzó SAP HANA.

2.2.2 SAP HANA SAP HANA5 (High-Performance Analytic Appliance) es una plataforma integrada

(hardware + software) que combina innovadoras tecnologías de base de datos. Es una

solución integrada (stack) de hardware “SAP-certificado” y software preinstalado, que

conforma una plataforma “in-memory” para aplicaciones de alto rendimiento, como

herramientas de análisis y simulación en tiempo real.�

SAP HANA es la respuesta de SAP a la nueva tendencia de “in-memory computing”,

desarrollado en conjunto con sus clientes y partners. Por sus características, las

aplicaciones de Business Intelligence son el primer objetivo de la tecnología SAP

HANA, que ofrece velocidades de procesamiento miles de veces más eficientes que las

actuales.

Esta alta velocidad de computación permite que las compañías puedan reaccionar con

rapidez y sin incertidumbre ante las condiciones empresariales cambiantes según sea

necesario. SAP HANA permite a los usuarios empresariales acceder, modelar y analizar

todos sus datos transaccionales y analíticos en tiempo real, desde prácticamente

cualquier fuente de datos, en un único entorno y sin que las aplicaciones o los sistemas

existentes se vean afectados.

5 Para más información sobre SAP HANA: http://www.saphana.com

Page 37: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

21

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

SAP HANA incluye:

- Un motor in-memory computing, ICE (In-memory Computing Engine), de

elevado rendimiento y un potente motor para el cálculo de datos en la capa

donde residen estos datos (en lugar de en la capa de aplicación). Ofrece

almacenamiento columnar o tradicional y hace uso de las tecnologías de

optimización de base de datos, procesamiento paralelo, compresión, etc.

- Un servicio de replicación en tiempo real para acceder, copiar y sincronizar los

datos de las aplicaciones del BW, del ERP y del CRM en tiempo real,

denominado Sybase Replication.

- Servicios de integración de datos para acceder a información procedente de

prácticamente cualquier fuente de datos e integrarlos.

- Un repositorio de datos in-memory de toda la información empresarial relevante

y una capa de persistencia que funciona a modo de back-up.

- Una integración total con las soluciones SAP BusinessObjects Business

Intelligence (BI), que proporciona soporte para los análisis.

- Un entorno unificado de diseño y modelado de la información.

SAP HANA sirve de base a dos plataformas de vital importancia para el modelo actual

de desarrollo de aplicaciones, proporcionando el soporte tecnológico para implementar

computación en Cloud y Big Data. Son SAP HANA Cloud y SAP HANA Platform for

Big Data

Page 38: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

22

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Figura 4 Características SAP HANA (Fuente: http://www.sap.com)

SAP HANA Cloud6 SAP ha creado un entorno Cloud desarrollado íntegramente bajo la plataforma SAP

HANA que permite a sus clientes llevar a la nube los distintos entornos soportados por

la plataforma (Suite on HANA, BW on HANA, Aplicaciones personalizadas, entornos

Big Data), ofreciendo servicios de migración, hosting en cloud y servicios asociados, así

como la posibilidad de servicios personalizados.

Figura 5. Arquitectura SAP HANA Cloud (Fuente: http://www.sap.com)

6 Para más información sobre Hana Cloud: http://www.saphana.com/community/cloud

Page 39: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

23

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Esta plataforma como servicio (PaaS) ofrece HANA DB-as-a-service junto con una

opción de pila basada en Java o ABAP base. Las aplicaciones creadas para cualquiera

pila tendrán acceso a través de las API de DB HANA a través de una variedad de APIs.

El enfoque basado en Java, con nombre en código River Project, se basa en la

NetWeaver 7.3.1 servidor de aplicaciones Java. El enfoque basado en ABAP está

diseñado más para la base de usuarios de SAP - por ejemplo en la suite SAP Business

ByDesign de aplicaciones empresariales como ERP, CRM y gestión de la cadena de

suministro

Con esta tecnología, el cliente se desentiende de todas las tareas relacionadas con

hardware, mantenimiento, soporte, abastecimiento y continuidad de negocio, además de

pagar únicamente por lo que consume. Es una solución interesante para compañías

pequeñas, permitiéndoles competir con compañías más grandes ya que no necesitan

realizar grandes inversiones en software y sistemas, y por otro lado para grandes

empresas, al usar soluciones cloud para reducir costes y ganar flexibilidad, siendo

capaces de alcanzar la agilidad que antes solo tenían las organizaciones de menor

tamaño.

Los beneficios aportados por SAP HANA Cloud son:

- Rapidez: un paquete en una única ubicación suprime la latencia, lo que hace

posible la cooperación, el procesamiento y la planificación en tiempo real.

- Escalabilidad: un servicio en nube de gran solidez permite la implementación

rápida de aplicaciones de la presente generación y de la siguiente, adaptadas a

las necesidades empresariales.

Page 40: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

24

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

- Seguridad: los estándares de seguridad implementados y el control de los datos,

que son evaluados de forma independiente, garantiza la seguridad de las

aplicaciones y los datos desplegados en cloud.

Figura 6. Aplicaciones de SAP HANA Cloud (Fuente: http://www.sap.com)

SAP HANA Platform For Big Data La plataforma de SAP BigData7, en combinación con SAP HANA y plataformas como

Apache Hadoop8, permite ejecutar transacciones, realizar análisis, y actuar sobre

grandes volúmenes de datos en tiempo real. Esa habilidad de procesar cientos de miles

de millones de registros en tan solo segundos no solo permite elevar la competitividad,

sino que además da lugar a nuevos enfoques e ideas y permite encontrar nuevas

respuestas para los posibles escenarios empresariales que puedan presentarse.

La plataforma SAP HANA ayuda a acelerar la forma en que adquirir, analizar y actuar

sobre los datos Big Data. Proporcionando técnicas analíticas y aplicaciones, SAP

HANA ayuda a analizar grandes volúmenes de datos pudiendo proporcionar

información en tiempo real de gran valor para el negocio. SAP HANA en combinación

con SAP Big Data permite:

7 Para saber más acerca de SAP Big Data: http://www.sap.com/solution/big-data.html 8 Página oficial: http://hadoop.apache.org/

Page 41: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

25

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Adquirir

Adquirir y almacenar grandes volúmenes de datos de diversas fuentes, incluyendo

Hadoop, utilizando la gestión flexible de datos que proporciona SAP HANA. Además,

permite gestionar el manejo de volúmenes de datos estructurados y no estructurados,

reducir los costes de almacenamiento, replicar e integrar todos los datos y mejorar la

calidad de los datos y la seguridad.

Analizar

Analizar y visualizar grandes volúmenes de datos con soluciones fáciles de usar.

Permite reducir los retardos asociadas con análisis complejo de grandes volúmenes de

datos, mediante el uso de in-memory computing para llevar a cabo dicho análisis.

Además posibilita descubrir nuevas oportunidades y exponer riesgos ocultos mediante

algoritmos, integración en R, y análisis predictivo. Por último facilita el descubrimiento

del valor oculto de los datos no estructurados mediante técnicas de análisis de texto.

Actuar

Actuar de forma instantánea en base a los resultados del análisis de los datos, utilizando

la plataforma SAP HANA que puede recoger los datos de los procesos en tiempo real y

permite ejecución hasta 100.000 veces más rápido que los motores tradicionales. Por

último permite analizar flujos de datos mediante tecnología de procesamiento de

eventos.

Gracias a la alta capacidad de computación que proporciona SAP HANA, SAP Big

Data permite analizar grandes volúmenes de tráfico en tiempo real, posibilitando la

toma de decisiones inteligentes en base a los resultados del análisis. En definitiva,

permite cambiar de forma fundamental el modo en que se gestiona el negocio,

aportando un importante valor estratégico.

Page 42: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

26

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

SAP Precision Marketing Utilizando el soporte que proporciona SAP HANA, concretamente SAP HANA Cloud

para almacenamiento en la nube y SAP Big Data para el análisis de los datos, SAP ha

desarrollado una solución que permite implementar técnica de marketing de precisión

para aplicaciones móviles. Denominada SAP Precision Marketing9, constituye es una

solución empresarial que se basa en la relación comercial one-to-one entre empresas del

sector retail y los consumidores finales, proporcionando al cliente información

personalizada en tiempo real y en punto de decisión de una posible compra.

Figura 7. Estructura SAP Precision Marketing (Fuente: SPM)

SPM ofrece funcionalidades orientadas a dos tipos de perfil: cliente y vendedor.

Cliente Desde el lado del consumidor, [12] SPM se centra en el desarrollo de un asistente

personal digital para las compras, que ofrece información sobre los productos, ofertas

especiales, promociones y recomendaciones cualificadas, basadas en su localización,

9Página oficial SPM: http://help.sap.com/spm

Page 43: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

27

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

preferencias e historial de compras. Permite la interacción con el consumidor cuándo y

dónde esté ubicado, realizando una actividad comercial orientada a seleccionar un

producto. Una aplicación móvil basada en SPM, permite al cliente:

- Ahorrar tiempo

- Ahorrar dinero

- Ayudarle a seleccionar los mejores productos

Vendedor SPM permite al vendedor, [13] utilizar un nuevo canal de venta en pleno desarrollo,

(comercio móvil) con un coste mínimo. El vendedor podrá acceder al cliente

ofreciéndole información sobre productos, ofertas, catálogos, localización… Además

permite crear campañas de fidelización otorgando premios y descuentos a los clientes.

Por otro lado, SPM permite aprovechar las interacciones con el usuario final para

extraer la información asociada a sus compras (qué, quién, cuándo y dónde) y

seleccionar en tiempo real la información adecuada para enviar a cada cliente con un

alto grado de personalización, maximizando de esta forma el impacto.

Además, SPM genera una gran cantidad de información sobre patrones de

comportamiento de los consumidores para su aprovechamiento y explotación en

campañas de marketing, o mejorar el volumen de ventas. En este sentido, la solución

incluye cuadros de mando basados en roles, proporcionando en tiempo real una

comprensión del comportamiento del consumidor, promociones y sugerencias.

Desde el punto de vista empresarial:

Page 44: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

28

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

- Permite crear ofertas one-to-one únicas para cada individuo, altamente

personalizadas y elaboradas en función de parámetros que pueden ser

priorizados.

- Permite registrar el comportamiento de los consumidores y analizarlo para

optimizar las ofertas.

- Es una solución basada en tiempo real, por lo que tanto la optimización de las

ofertas como el comportamiento de los consumidores pueden ser analizados en

tiempo real.

- Es una solución multi-canal, permite al consumidor acceder a través de su

teléfono móvil, a través de su ordenador vía online e incluso ofrece soporte para

ser integrada en las redes sociales permitiendo, en combinación con SAP Social

Media, extraer las tendencias de productos en el mercado para actuar acorde a

ellas.

- Permite extraer información sobre el comportamiento de los clientes de una

tienda específica, pudiendo mostrar por franjas horarias información sobre los

pasillos o estanterías más visitados de un negocio o sobre el comportamiento de

un determinado segmento.

- Mejorar la imagen de marca a través de la innovación, permitiendo acceder a un

público joven más familiarizado con las nuevas tecnologías.

- Desde un punto de vista de marketing, mejorar el ROI (Retorno de Inversión),

debido a que la inversión necesaria es mínima y los ingresos que resultan de la

aplicación.

Page 45: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

29

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Agentes y usuarios

Consumidor: es el principal interesado de la solución. Para atraer a los consumidores y

que continúen utilizando la aplicación lo más frecuentemente posible, la experiencia del

usuario ha de ser significativa en el contexto de uso. Este es el motivo por el que SPM

permite a los desarrolladores web y móviles crear experiencias de usuarios

personalizadas en distintos dispositivos. Estos desarrolladores utilizarán los servicios

que proporciona la Device API.

Bussiness Administrator: usuario que se encarga de la gestión de la seguridad de la

solución, gestiona la creación de Business Users, y asigna derechos y visibilidad en el

Business Group.

Business User: usuario que accede al portal y en función de sus derechos y visibilidad

puede analizar los comportamientos de los usuarios, promociones y sugerencias.

Desarrollador de IT: desarrollador que crea la integración entre SPM y la información

del sistema del retailer. El desarrollador de IT utiliza los servicios proporcionados por

el servidor de SPM de la Partner API.

Arquitectura Ejecución de peticiones REST10

La aplicación SAP Precision Marketing está basada en un interfaz de llamadas HTTP

REST. Las llamadas al servidor y los posibles métodos para cada tipo de perfil (cliente

y vendedor) están recogidas en los documentos DeviceAPI y PartnerAPI.

El término REST (Representational State Transfer) define un tipo de arquitectura de

desarrollo web que se apoya en el estándar HTTP� REST permite crear servicios y

aplicaciones que pueden ser usadas por cualquier dispositivo o cliente que entienda

10 Para más información: http://en.wikipedia.org/wiki/Representational_state_transfer

Page 46: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

30

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

HTTP, por lo que es más simple y convencional que otras alternativas que se han usado

en los últimos diez años como SOAP y XML.

Los sistemas que siguen los principios REST se llaman con frecuencia RESTful y se

definen por un conjunto de características:

- Un protocolo cliente/servidor sin estado.

- Un conjunto de operaciones bien definidas que se aplican a todos

los recursos de información.

- Una sintaxis universal para identificar los recursos.

- El uso de hipermedios, tanto para la información de la aplicación como para las

transiciones de estado de la aplicación

REST está surgiendo como una alternativa para diseñar servicios web con menos

dependencia en middleware propietario (por ejemplo, un servidor de aplicaciones), que

su contraparte SOAP y los servicios basados en WSDL. De algún modo, REST es la

vuelta a la Web antes de la aparición de los grandes servidores de aplicaciones, ya que

hace énfasis en los primeros estándares de Internet, URI y HTTP.

Para poder ejecutar llamadas y registrar información en la base de datos cloud de SPM

es necesario un identificador de usuario (developer-id) y una contraseña (secret). Todos

los métodos posibles para cada tipo de perfil están recogidos sus respectivas APIs,

estableciendo los parámetros y el tipo de llamada en cada caso. El formato de los

mensajes de respuesta de la aplicación es JSON, siguiendo el siguiente esquema:

Figura 8. Mensajes JSON

Page 47: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

31

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Los métodos utilizan sobre todo peticiones tipo GET (para consultar) y tipo POST (para

añadir información), pero también son posibles peticiones tipo UPDATE (actualizar),

DELETE (borrar). El formato soportado por los ficheros a subir al servidor es .csv. Los

posibles códigos de respuesta de una llamada a la aplicación son los siguientes:

Figura 9. Códigos de respuesta

A continuación se muestra un ejemplo de una petición a la aplicación utilizando la

herramienta para Google Chrome Postman11:

Figura 10. Partner API

11 Para más información: http://www.getpostman.com/

Page 48: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

32

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Para poder ejecutar cualquier petición sobre la Partner API es necesario añadir como

headers el developer-id y el secret antes comentados. Además en el caso de la Partner

API será necesario adjuntar como parámetro un transaction-ID previamente solicitado y

de único uso para cada llamada.

Las llamadas a la Device API se hacen de forma similar, siendo necesario únicamente el

developer-id y el secret para ejecutar las transacciones.

SDK

SPM ofrece varios SDK en distintas plataformas para facilitar la tarea a los

desarrolladores. Existe un SDK para Android, otro para iOS y otro para plataformas

híbridas. En ellas se incluyen librerías privadas para la Device API. En estas librerías se

definen todos los métodos y clases necesarios para poder utilizar SPM. Esto facilita la

tarea al desarrollador, que puede acceder a un recurso, ejecutando un método ya

definido que se encarga de establecer la conexión con el servidor, ejecutar la request y

obtener la respuesta. Utilizando estas librerías por tanto, para el desarrollador es

transparente el acceso a los datos almacenados en cloud, y puede gestionarlos como si

se tratase de recursos locales, mediante métodos locales. A continuación se muestran

estas librerías para un proyecto de una aplicación Android en Eclipse:

Figura 11. Librerías SPM

Page 49: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

33

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Portal web SPM

SPM ofrece un portal web desarrollado en UI5, que permite gestionar de forma sencilla

la creación de usuarios y permisos e incluso la creación de tiendas, campañas y ofertas

vía web (también se pueden crear vía peticiones REST al servidor de la Partner API).

El portal tiene dos tipos de usuarios: Business Administrator y Business User. El

Business Administrator se encarga de la gestión del portal y la creación de perfiles,

tiendas y business groups.

Accediendo como Business Administrator el portal cuenta con cuatro pestañas:

Figura 12. Portal Web SPM

- En la pestaña de USER MANAGEMENT se realiza la gestión de usuarios y

permisos, desde la cual el Business Administrator podrá crear perfiles de

Business User y asignarlos a un determinado Business Group.

- En la pestaña de API CREDENTIALS se realiza la creación permisos para

desarrolladores para poder ejecutar llamadas a cada una de las dos APIs. Se

establecerá un developer-id y un secret para cada API.

Page 50: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

34

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

- En la pestaña de STORE MANAGMENT se realiza la creación de tiendas y

grupos de tiendas introduciendo todos los posibles atributos: nombre, tipo,

horarios, ubicación, etc.

- Por último en la pestaña de MY ACCOUNT el Business Administrator podrá

modificar los datos relativos a su cuenta: correo asociado, idioma, etc.

Accediendo como Business User el portal ofrece dos pestañas:

Figura 13. Portal Business User

- En la pestaña CAMPAIGN MANAGEMENT el Business User puede crear

campañas y añadir ofertas a las campañas creadas. Para cada una se definirán

sus atributos principales: productos, duración, tiendas asociadas etc.

- Por último en la pestaña MY ACCOUNT se gestiona la información de la

cuenta de Business User.

Por último también es posible añadir la funcionalidad de análisis al perfil de retailer

Admin con la que poder llevar a cabo estudios de marketing sobre la actividad

comercial y el grado de éxito de las campañas que se han llevado a cabo. Esta

Page 51: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

35

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

información tiene un gran valor para el negocio y mediante la funcionalidad de análisis

es posible la creación de gráficas y la aplicación de herramientas de estadística para

extraer conclusiones sobre la misma.

Figura 14. Función Análisis Portal SPM 1

Figura 15. Función Análisis Portal SPM 2

Page 52: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

36

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Page 53: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

37

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

3. Estado de la cuestión 3.1 Sociedad de Transportes de Montreal (STM) La Sociedad de Transporte de Montreal (STM), es la 4ª Empresa de transporte público

más grande en América del Norte. Es utilizada por 400 millones de clientes al año,

(1.2M cada día). Cuenta con 250 líneas de autobuses y 68 estaciones de metro en el área

de Montreal. Tiene como objetivo conseguir un aumento del 40% en el número de

pasajeros para el año 2020.

STM consideró que la mejor manera de aumentar su volumen de negocio era desarrollar

una campaña de fidelización de sus usuarios. Con 1.2 millones de usuarios de su red de

transportes cada día, el número de interacciones con sus clientes era muy elevado. Por

este motivo, STM buscó una forma de poder establecer una relación comercial con sus

usuarios y consideró una aplicación móvil como la mejor manera para acceder a ellos.

Entonces en colaboración con SAP y utilizando la infraestructura de SPM, se llevó a

cabo el diseño de una aplicación móvil para iOS, STM Merci App.

El objetivo de la aplicación era poder implementar el plan de fidelización para los

usuarios de STM, recompensándoles por utilizar el transporte público. Los usuarios se

registraban en la aplicación utilizando el número de su tarjeta de transporte y de esta

manera quedaban identificados. Al comenzar a utilizarla, debían de introducir

información sobre sus gustos y preferencias. De esta manera, la aplicación clasificaba al

usuario dentro de un segmento y las recompensas y descuentos estaban dirigidos en

función de las preferencias del usuario y también por geo localización, mostrando los

resultados más cercanos que se ajustasen al perfil del usuario. El segundo objetivo de la

aplicación era ofrecer la posibilidad de orientar al usuario y calcular la ruta a su destino

a través de la red de transportes de STM. De esta manera por un lado se incentivaba el

uso del transporte público y por otro se facilitaba la utilización de este medio.

Page 54: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

38

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Figura 16. Visión General STM (Fuente: STM)

La aplicación sirve de además de punto de conexión entre los partners y los usuarios.

Los partners de STM, (pequeñas empresas, socios de evento, tiendas individuales…)

crean sus ofertas a través del portal de ofertas de STM. Las ofertas se dirigen a un

determinado cliente, en función de su localización, su historial de compras y sus

preferencias. Esto redunda también en beneficio para todos los partners que son capaces

de aumentar su volumen de negocio a través de la aplicación. En definitiva STM Merci

App consiguió crear valor para STM, usuarios y partners. A continuación se muestra un

ejemplo de un caso de uso de la aplicación:

Page 55: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

39

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Ejemplo:

El usuario recibe la oferta dirigida en su móvil: “10$ de descuento en la entrada de la

exposición de Gustave Monet si se chequea entre las 10AM y las 3PM”. El usuario

acepta la oferta y la App le ayuda a llegar al museo, proporcionándole la ruta más corta

a través de la red de transporte de STM.

A continuación se muestra una figura que resume lo anteriormente explicado:

Figura 17. Agentes STM (Fuente: STM)

El resultado fue altamente satisfactorio. STM Merci App se colocó en el número 1 del

apartado de Lifestyle de la AppStore en Canadá tras las primeras 48 horas. La acogida

entre los usuarios fue muy positiva, ya que más de la mitad estuvieron dispuestos a

crear un perfil introduciendo preferencias y compartir su información. Además las 10

ofertas más importantes alcanzaron un click through rate (relación entre las veces que se

muestra una oferta y las veces que se selecciona) del 67%. Y entre las mejores 25

Page 56: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

40

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

ofertas la validación media se situó en torno al 44%. Mediante el uso de una aplicación

móvil capaz de implementar un plan de fidelización basado en estrategias marketing de

precisión, STM ha mejorado su volumen de negocio y ahora es capaz de estudiar el

comportamiento de sus usuarios para seguir mejorando y perfeccionando sus estrategias

y campañas.

Page 57: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

41

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

4. Definición del trabajo 4.1 Objetivos El objetivo principal del proyecto el desarrollo de una solución completa SPM, que

cubra cada una de las áreas de trabajo que posibilita la herramienta e implemente las

funcionalidades definidas. A continuación se describen los distintos objetivos que

deberán ser cubiertos con la ejecución del presente proyecto.

Tabla 1. Objetivos del Proyecto

OBJ1- Estudio de la herramienta SPM En primer lugar, se deberá llevar a cabo un estudio de la herramienta SAP Precision

Marketing. Se realizará un análisis exhaustivo que permita conocer las posibilidades que

ofrece la herramienta y comprender su funcionamiento. Con el fin de poder determinar

el alcance del proyecto, deberá realizarse un análisis sobre las distintas posibilidades

que SPM es capaz de ofrecer. Utilizando la documentación oficial proporcionada por

SAP y mediante la realización de los tutoriales oficiales que se adjuntan a la propia

herramienta, se revisarán los distintos métodos recogidos para cada uno de los perfiles

(Device API y Partner API). Para facilitar este estudio se ejecutarán una serie de

OBJETIVOS

ID DESCRIPCIÓN

OBJ 1 Estudio de la herramienta SPM

OBJ 2 Creación de juego de datos

OBJ 3 Integración de la subida de datos

OBJ 4 Diseño y Desarrollo de aplicación Android (ASISTENTE PERSONAL DE COMPRAS)

OBJ 5 Pruebas funcionales

OBJ 6 Elaboración de un caso de estudio sobre SPM

Page 58: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

42

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

pruebas. Por un lado se deberá probar el servidor de SPM, tanto de la Partner API como

de la Device API, a fin de conocer su funcionamiento y la estructura y naturaleza de las

peticiones tipo REST a estos servidores. Por otro lado, se realizará una prueba funcional

del Portal de SPM, utilizando datos de prueba. Por último se realizará una prueba de la

aplicación Android proporcionada como ejemplo por SAP para comprender el

funcionamiento de los métodos y librerías privadas proporcionadas. Además, deberán

obtenerse los permisos y licencias para utilizar tanto SPM como las librerías de Google

Maps, que serán necesarias para la funcionalidad de geo localización de la aplicación.

OBJ2- Creación de juego de datos Una vez comprendido el funcionamiento de la aplicación y de los métodos que ofrecen

ambas APIs, se creará un juego de datos del que hará uso la aplicación a diseñar. Estos

datos incluyen la información sobre el negocio por tanto se diseñarán siguiendo las

directrices proporcionadas por la Partner API. Dicha creación de los datos se realizará

en un Excel con múltiples pestañas, con el fin de facilitar la creación de los ficheros en

formato csv para cada pestaña.

OBJ3- Integración de la subida de datos Una vez creados los distintos ficheros csv con la información a subir al servidor de la

herramienta SPM, se implementará una aplicación Java que realice la subida de los

datos de forma automática. Dicha aplicación incluirá todo el proceso de establecimiento

de conexiones e intercambio de información con el servidor, sustituyendo a las

peticiones REST manuales para cada elemento. Una vez diseñada esta aplicación se

procederá a subir los datos al servidor siguiendo el orden de subida que se recoge en la

documentación oficial.

Page 59: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

43

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

OBJ4- Diseño y Desarrollo de aplicación Android (asistente personal de

compras) Cuando se haya finalizado la subida de los datos al servidor cloud de SPM, se llevará a

cabo el diseño y desarrollo de la aplicación Android que ofrezca funcionalidad de

asistente personal para las compras, basada en el modelo de SPM. En función del

estudio sobre SPM que se recoge en el primer objetivo, se llevará a cabo un diseño que

recoja las funcionalidades definidas para la aplicación. Posteriormente se implementará

el desarrollo de dicha aplicación, utilizando Eclipse como IDE con el SDK

proporcionado por SAP para Android y el propio SDK de Android.

La aplicación móvil para Android a desarrollar, deberá proporcionar las siguientes

funcionalidades:

- Acceso anónimo y registrado: deberá poder ofrecer la posibilidad de acceder de

manera anónima y de manera registrada. Además deberá ofrecer la posibilidad

de registro a los usuarios que así lo soliciten.

- Segmentación de usuarios y ofertas: tanto en el primer acceso de forma

automática, como a través del menú de opciones, el usuario podrá establecer y

modificar sus intereses y sus datos de perfil, lo que permitirá realizar una

segmentación en función de estos datos y poder ofrecerle ofertas dirigidas en

una pestaña de ofertas.

- Catálogo: se deberá ofrecer una pestaña con toda la información de los catálogos

de las tiendas cercanas, en las que el usuario pueda consultar precios de

productos y disponibilidad.

- Tiendas cercanas: se deberá implementar la funcionalidad de geo localización,

que permita mostrar en una pestaña de tiendas todas aquellas tiendas cercanas

Page 60: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

44

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

que utilicen este sistema, y mediante la funcionalidad que ofrece Google Maps,

situar en el mapa las posiciones de tiendas y usuario.

- Carrito: deberá incluirse una pestaña con la funcionalidad de carrito o lista de la

compra, con todos aquellos productos añadidos e información sobre el dinero

ahorrado en el caso de que dichos productos estén incluidos en alguna oferta.

- Favoritos: por último deberá ofrecerse la funcionalidad de ofertas favoritas, que

el usuario pueda almacenar en su dispositivo para acceder fácilmente en futuras

ocasiones de manera sencilla.

OBJ5- Pruebas funcionales Cuando se haya finalizado el desarrollo de la aplicación, se realizará el despliegue y las

pruebas funcionales de la misma. Dichas pruebas recogerán el funcionamiento de la

aplicación, reflejando información sobre rendimiento, a fin de facilitar mejoras futuras.

OBJ6- Elaboración de un caso de estudio sobre SPM Por último, se realizará un caso de estudio que refleje el valor aportado por la aplicación

desarrollada y sirva como referencia para futuras implementaciones de aplicaciones

similares.

4.2 Metodología Con el fin de cumplir los objetivos marcados, se dividirá cada uno de ellos en varias

sub-tareas que se irán acometiendo gradualmente para perfilar la solución requerida. A

continuación se detallan cada una de las fases establecidas para la consecución de cada

uno de los objetivos

Page 61: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

45

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

OBJETIVOS TAREAS

ID DESCRIPCIÓN

OBJ 1

Estudio de la herramienta SPM

T 1.1 Formación y conocimiento sobre el producto y capacidades de

la herramienta

T 1.2 Comprensión de las actividades, procesos, sistemas y datos

que permite la herramienta

OBJ 2

Creación de juego de datos

T 2.1 Estudio de modelo de datos de la herramienta

T 2.2 Implementación del juego de datos con Excel

OBJ 3

Integración de la subida de datos

T 3.1 Estudio del funcionamiento de la subida de datos con la

Partner API

T 3.2 Desarrollo en Java de la implementación de la subida de datos

OBJ 4

Diseño y Desarrollo de aplicación

Android (asistente personal de

compras)

T 4.1 Estudio del alcance y análisis de requisitos

T 4.2 Diseño del mockup (diseño externo)

T 4.3 Diseño interno

T 4.4 Desarrollo de la aplicación

OBJ 5

Pruebas funcionales T 5 Ejecución del plan de pruebas

OBJ 6

Elaboración de un caso de estudio

sobre SPM

T 6 Resumen y elaboración de caso de estudio sobre la aplicación

Tabla 2 Objetivos y Tareas

T 1.1- Formación y conocimiento sobre el producto y capacidades de la

herramienta El primer paso será la realizar un estudio general sobre la herramienta SPM, utilizando

para ello toda la documentación necesaria, tanto la proporcionada por SAP como

información externa. Se analizará también el concepto de marketing de precisión, para

poder obtener una visión global del sector y poder situar la aplicación dentro de este

Page 62: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

46

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

contexto. Se estudiarán otras implementaciones anteriores realizadas con la herramienta

para poder determinar de forma precisa las capacidades de la misma y poder definir

posteriormente el alcance de la aplicación a desarrollar.

T 1.2- Comprensión de las actividades, procesos, sistemas y datos que

permite la herramienta En segundo lugar se realizará un análisis más exhaustivo de la herramienta de SPM.

Para ello serán de gran utilidad los tutoriales proporcionados por SAP sobre misma.

Esto permitirá conocer los procesos y actividades de bajo nivel que son llevados a cabo

al ejecutar cualquier transacción. Además en este punto se utilizará el portal web de la

aplicación, realizando el tutorial correspondiente para conocer las posibilidades que

ofrece. Adicionalmente, se revisarán los documentos con la información de las API que

ofrece la propia herramienta, para conocer el funcionamiento de los métodos que

pueden ser utilizados por la aplicación a desarrollar.

T 2.1- Estudio de modelo de datos de la herramienta Una vez llevado a cabo el estudio general de la herramienta, comprendiendo sus

posiblidades y limitaciones, se realizará un estudio acerca de la estructura de datos que

se ha de utilizar para poder realizar la subida de los mismos de manera satisfactoria y

dar soporte al cumplimiento de los requerimientos funcionales. Por tanto habrá que

estudiar las distintas relaciones entre los tipos de datos, consultando las APIs para

determinar también el orden de subida correcto de los mismos.

T 2.2- Implementación del juego de datos con Excel Una vez estudiado el modelo de datos y determinado el orden correcto de subida de los

mismos, se creará con el Excel un juego de datos a los que accederá la aplicación. Será

importante respetar los tipos definidos para cada atributo, e incluir aquellos atributos

que son considerados como imprescindibles por ser identificadores de una clase o su

relación con otras (claves y claves extranjeras).

Page 63: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

47

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

T 3.1 - Estudio del funcionamiento de la subida de datos con la Partner API Con el juego de datos ya creado, se procederá a comprender el funcionamiento de la

subida de los mismos mediante las peticiones REST a la Partner API. Para ello se

realizarán pruebas que permitan comprender la sintaxis utilizada y los parámetros,

headers, y nomenclatura soportada por el servidor de la aplicación.

T 3.2- Desarrollo en Java de la implementación de la subida de datos En este punto se podrá realizar ya la subida de los datos al servidor. Para ello se creará

un fichero csv para cada pestaña del Excel del juego de datos y para cada tipo de

elemento a subir al servidor, se deberá desarrollar una clase Java que se encargue de

establecer la conexión y gestionar la subida de ese elementos de esa clase determinada.

T 4.1- Estudio del alcance y análisis de requisitos A continuación se realizará un estudio con el fin de determinar las funcionalidades a

implementar por la aplicación. En este momento se tendrá un conocimiento preciso

sobre las posibilidades que permite la herramienta y se podrá determinar el alcance de la

aplicación a desarrollar

T 4.2- Diseño del mockup (diseño externo) Posteriormente se podrá realizar el diseño externo de la aplicación. Bien en soporte

físico, (papel) o con cualquier herramienta de diseño, se deberán realizar el diseño del

mockup de la aplicación. Este diseño debe incluir todas las vistas necesarias para cubrir

la totalidad de funcionalidades requeridas, que se programarán posteriormente. Para el

diseño deberá considerar el sistema operativo para el que se programará la aplicación

(Android), ya que habrá que tener en cuenta los elementos que ofrecen las librerías

nativas de dicha plataforma.

Page 64: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

48

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

T 4.3- Diseño interno Con las vistas de la aplicación creadas habrá que considerar el diseño interno de la

misma. En este apartado se decidirá sobre la navegabilidad entre las vistas, la

persistencia, el modelo de programación a seguir… en definitiva todo aquello que tenga

repercusión sobre la programación de la parte funcional de la aplicación.

T 4.4- Desarrollo de la aplicación Una vez definido el diseño externo y el diseño externo se procederá a programar la

aplicación. Para ello se utilizará el IDE Eclipse, integrando el SDK que ofrece Android

para este programa. Además se utilizarán las librerías privadas que ofrece SAP para el

acceso sencillo al servidor cloud de SPM, y las librerías de Google Maps para la

funcionalidad de la geo localización. La aplicación será probada tanto en el propio

emulador que proporciona el SDK de Android (Android Virtual Device), como en un

teléfono y tableta física que utilicen Android, para comprobar que se adapta a todo tipo

de dispositivos.

T 5- Ejecución del plan de pruebas Con la aplicación ya desarrollada se realizará el plan de pruebas, midiendo tiempos y

rendimientos, con el fin de recoger datos para poder acometer una posible optimización

futura.

T 6- Resumen y elaboración de caso de estudio sobre la aplicación Por último y como punto final al proyecto, se realizará un caso de estudio, que recoja

todo el proceso de creación de la solución completa basada en SPM, prestando especial

atención al valor que proporciona la aplicación al negocio, sirviendo de referencia para

aquellas posibles compañías que consideren utilizar este tipo de tecnología.

Page 65: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

49

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

5. Planificación y estimación económica 5.1 Planificación La duración del proyecto comprende desde la semana del 17 de febrero de 2014 hasta la

semana del 2 de junio, exactamente 4 meses (16 semanas). A continuación se muestra la

planificación temporal del proyecto, mostrando además las horas semanales dedicadas

por cada miembro del equipo de proyecto:

Figura 18. Planificación Temporal

5.2 Equipo de proyecto El equipo de proyecto está formado por:

- Gerente: Gerente de movilidad SAP con más de 8 años de experiencia, actual

responsable de la Factoría de Movilidad en Iberdrola. Se encarga de la gestión

global del proyecto, del control de la calidad, del cumplimiento de los plazos y

el presupuesto, de la identificación de riesgos y de la planificación seguimiento

y control del proyecto.

Page 66: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

50

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

- Jefe de Proyecto: Responsable de la operativa y ejecución de todas las fases del

proyecto. Se encarga de realizar el Documento de Arquitectura. Además, Su

función será la de coordinar la realización de todas las fases, colaborando en la

planificación y control de los trabajos, supervisar al equipo de trabajo y asegurar

el avance del proyecto y la calidad de los trabajos

- Experto Funcional SAP Retail: Consultor funcional SAP responsable de la

parametrización y configuración del sistema y de la parte técnica y funcional. Se

encargará además de la elaboración de la documentación asociada a la

especificación funcional correspondiente a los procesos a movilizar,

garantizando el alineamiento con el sistema SAP.

- Desarrollador Integraciones: Desarrollador Java responsable de la integración de

los datos con la plataforma. Su función consiste en analizar, diseñar y

desarrollar la lógica necesaria para ofrecer la funcionalidad necesaria para la

integración de los datos en la solución a desarrollar.

- Experto SAP Cloud / SAP Precision Marketing: Consultor SAP experto en

Cloud y en las herramientas que utilizan este módulo. Se encargará de la

interacción con la plataforma SPM y del control del almacenamiento de los

datos en la Cloud de SAP.

- Desarrollador Android: Desarrollador experto en Android. Se encargará de

codificar la aplicación Android, proporcionando la funcionalidad establecida

que cubra todos los casos de uso definidos. Además, será responsable de

garantizar un desarrollo sin fallos, cumpliendo las restricciones asociadas al

proyecto.

Page 67: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

51

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

- Desarrollador Soporte: Desarrollador con conocimientos de Android se encarga

de resolver las incidencias que puedan surgir en la aplicación tras el despliegue.

A continuación se ofrece un organigrama del equipo de trabajo:

Figura 19. Organigrama del Equipo de Trabajo

5.3 Estimación económica En función del número de horas trabajadas y las tarifas asociadas a cada perfil se

muestra la estimación económica relativa al equipo de trabajo:

Figura 20. Perfiles y Tarifas

Page 68: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

52

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Everis propone el siguiente plan de facturación en base al inicio y fin del proyecto y

cada uno de los meses naturales de duración del mismo:

Figura 21. Plan de facturación

Page 69: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

53

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

6. Desarollo de la solución desarrollada A continuación se ofrecerá un análisis en profundidad del desarrollo de la solución SPM

desarrollada, partiendo del análisis inicial para pasar posteriormente al diseño,

concluyendo con la implementación.

6.1 Análisis En primer lugar se definirán los casos de uso que ha de cubrir la solución.

6.1.1 Casos de uso Se han definido una serie de casos de uso para cada uno de los actores que participan de

la solución desarrollada. Dichos casos de uso serán clave para determinar los datos

necesarios y la tipología de los mismos, para el funcionamiento completo de la solución.

6.1.1.1 Actores La solución a desarrollar involucra dos actores principales:

Cliente: el usuario final de la aplicación desarrollada. Es el principal actor para quien

está diseñada la aplicación con la que interactuará compartiendo información.

Retailer: se encarga de gestionar la información relativa a su tienda: acceso, creación,

modificación, borrado.

6.1.1.2 Diagrama de casos de uso A continuación se muestra el diagrama de casos de uso para cada uno de los dos actores

de la solución a desarrollar:

Page 70: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

54

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Figura 22 Casos de uso Retailer

Page 71: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

55

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Figura 23 Casos de uso Cliente

Page 72: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

56

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

6.1.1.3 Descripción de los casos de uso

Cliente

Especificación del caso de uso: Acceso anónimo

Descripción Este caso de uso permite al cliente acceder

de manera anónima

Actores Cliente

Precondición No hay ninguna sesión activa

Flujo primario El sistema muestra la opción de acceso

anónimo. El cliente selecciona dicha opción

y el sistema crea una sesión anónima

Flujo secundario ---------------------

Pos condición Si se cumple el flujo primario el cliente

habrá establecido una sesión anónima

Tabla 3. Caso de uso Cliente Acceso Anónimo

Especificación del caso de uso: Acceso registrado

Descripción Este caso de uso permite al cliente acceder

de manera registrada

Actores Cliente

Precondición No hay ninguna sesión activa

Flujo primario El sistema muestra la opción de acceso

registrado. El cliente selecciona dicha

opción e introduce sus credenciales

(usuario y contraseña). El sistema valida

dichos credenciales y en caso de que sean

correctos crea una sesión registrada

Page 73: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

57

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Flujo secundario 1 El cliente no tiene un usuario registrado. El

sistema ofrece la opción de crean nuevo

usuario

Flujo secundario 2 Datos incorrectos. El usuario no ha

introducido correctamente el usuario o la

password. El sistema limpia el formulario y

le ofrece la opción de introducirlos de

nuevo

Pos condición Si se cumple el flujo primario el cliente

habrá establecido una sesión registrada

Tabla 4. Caso de uso Cliente Acceso registrado

Especificación del caso de uso: Crear usuario

Descripción Este caso de uso permite al cliente crear un

perfil de usuario para acceder de manera

registrada

Actores Cliente

Precondición No hay ninguna sesión activa, el usuario ha

seleccionado la opción de crear nuevo

perfil de usuario.

Flujo primario El sistema muestra un formulario para que

el cliente pueda darse de alta.

Posteriormente comprueba que los datos

introducidos son correctos (id no existente,

password segura y datos requeridos

introducidos) y en ese caso crea en el

servidor un nuevo usuario y crea una sesión

registrada

Flujo secundario El cliente no ha rellenado el formulario

correctamente. El sistema limpia el

Page 74: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

58

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

formulario y le ofrece la opción de

introducirlos de nuevo

Pos condición Si se cumple el flujo primario, habrá

establecido una sesión registrada

Tabla 5 Caso de uso Cliente Crear Usuario

Especificación del caso de uso: Establecer preferencias

Descripción Este caso de uso permite al cliente

registrado establecer sus preferencias

Actores Cliente

Precondición El usuario tiene una sesión registrada

Flujo primario El sistema muestra un formulario para que

el usuario registrado pueda incluir sus

preferencias de entre las opciones

ofrecidas. Posteriormente comprueba que

los datos introducidos son correctos y

guarda los datos en el servidor

Flujo secundario El cliente no ha rellenado el formulario

correctamente. El sistema limpia el

formulario y le ofrece la opción de

introducirlos de nuevo

Pos condición Si se cumple el flujo primario, habrá

establecido las preferencias para su perfil

de usuario

Tabla 6. Caso de uso Cliente Establecer Preferencias

Page 75: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

59

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Especificación del caso de uso: Recibir ofertas

Descripción Este caso de uso permite al cliente

registrado recibir ofertas personalizadas y

al cliente anónimo recibir ofertas genéricas

Actores Cliente

Precondición El usuario tiene una sesión activa

Flujo primario El sistema ejecuta los algoritmos para la

selección de ofertas personalizadas

(preferencias + geo localización) del

usuario registrado y las muestra.

El sistema obtiene las ofertas genéricas

(sólo clasificadas por geo localización) y

las muestra.

Flujo secundario El sistema no encuentra ofertas para la

localización seleccionada.

Pos condición Si se cumple el flujo primario, se habrán

mostrado las ofertas asociadas a cada tipo

de perfil

Tabla 7. Caso de Uso Cliente Recibir Ofertas

Especificación del caso de uso: Consultar catálogo

Descripción Este caso de uso permite al cliente acceder

a los catálogos de las tiendas cercanas

Actores Cliente

Precondición El usuario tiene una sesión activa

Flujo primario El sistema obtiene las tiendas cercanas a la

posición del usuario y ofrece los catálogos

Page 76: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

60

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

asociados a esas tiendas

Flujo secundario El sistema no encuentra tiendas cercanas a

la posición del usuario o catálogos

asociados

Pos condición Si se cumple el flujo primario, se habrán

mostrado los catálogos de las tiendas

cercanas a la posición del usuario

Tabla 8. Caso de uso Cliente Consultar catálogo

Especificación del caso de uso: Localizar tiendas

Descripción Este caso de uso permite al cliente obtener

la posición de las tiendas cercanas

Actores Cliente

Precondición El usuario tiene una sesión activa

Flujo primario El sistema obtiene las tiendas cercanas y las

lista. Además muestra en una interfaz de

Maps la posición de las mismas

Flujo secundario El sistema no encuentra tiendas cercanas

Pos condición Si se cumple el flujo primario, se habrán

mostrado las tiendas cercanas al usuario

Tabla 9. Caso de uso Cliente Localizar Tiendas

Especificación del caso de uso: Añadir/Retirar productos al carrito

Descripción Este caso de uso permite al cliente

gestionar el carrito de la compra

Actores Cliente

Precondición El usuario tiene una sesión activa.

Page 77: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

61

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

El usuario ha añadido al carrito algún

producto utilizando el catálogo o las

ofertas.

Flujo primario El sistema obtiene el carrito que tiene

asociado el usuario y muestra los productos

que contiene. Además da la opción de

añadir más productos del mismo tipo de los

ya añadidos o modificarlos

Flujo secundario El sistema no encuentra productos añadidos

al carrito de dicho usuario

Pos condición Si se cumple el flujo primario, se habrá

mostrado el carrito del usuario

Tabla 10. Caso de uso Cliente Añadir/Retirar Productos al Carrito

Especificación del caso de uso: Añadir/Retirar ofertas a favoritos

Descripción Este caso de uso permite al cliente

gestionar la lista de ofertas favoritas

Actores Cliente

Precondición El usuario tiene una sesión activa.

El usuario ha añadido al a la lista de

favoritos alguna oferta

Flujo primario El sistema obtiene la lista de ofertas

favoritas que tiene asociado el usuario.

Permite además retirar ofertas de la lista

Flujo secundario El sistema no encuentra ofertas añadidas a

la lista de favoritos

Pos condición Si se cumple el flujo primario, se habrá

mostrado la lista de favoritos del usuario

Tabla 11. Caso de uso Cliente Añadir/Retirar Ofertas a Favoritos

Page 78: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

62

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Especificación del caso de uso: Modificar preferencias

Descripción Este caso de uso permite al cliente

modificar sus preferencias

Actores Cliente

Precondición El usuario tiene una sesión registrada

activa.

Flujo primario El sistema muestra al usuario su

información sobre preferencias y le permite

modificarla. Una vez el usuario confirma

esta información, el sistema la guarda en el

servidor.

Flujo secundario El cliente no ha rellenado el formulario

correctamente. El sistema limpia el

formulario y le ofrece la opción de

introducirlos de nuevo

Pos condición Si se cumple el flujo primario, se habrán

modificado las preferencias del usuario

Tabla 12. Caso de uso Cliente Modificar Preferencias

Retailer

Especificación del caso de uso: Registro

Descripción Este caso de uso permite al retailer darse

de alta en el sistema

Actores Retailer

Precondición El retailer tiene una cuenta asociada de

SAP Precision Marketing y ha accedido al

portal utilizándola

Page 79: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

63

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Flujo primario El sistema ofrece un formulario para crear

una cuenta de tipo Business User mediante

correo electrónico y password. El retailer

introduce sus datos y en caso de validación

correcta por parte del sistema, es dado de

alta.

Flujo secundario Los datos introducidos por el usuario son

incorrectos.

Pos condición Si se cumple el flujo primario, se habrá

creado una cuenta de Business User para el

retailer.

Tabla 13. Caso de uso Retailer Registro

Especificación del caso de uso: Acceder a la información

Descripción Este caso de uso permite al retailer acceder

a la información almacenada en el sistema

Actores Retailer

Precondición El retailer tiene una cuenta de Business

User creada, con un developer-id y un

secret.

Flujo primario El retailer hace una petición REST de tipo

GET de consulta al sistema añadiendo

como headers developer-id y secret. El

sistema valida los credenciales y en caso de

que sean correctos devuelve la información

en formato JSON.

Flujo secundario La petición al sistema es incorrecta.

Los credenciales del retailer no son

correctos.

Page 80: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

64

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Pos condición Si se cumple el flujo primario, se habrá

ejecutado una petición REST de consulta

de información contra el sistema

Tabla 14. Caso de uso Retailer Acceder a la información

Especificación del caso de uso: Añadir información

Descripción Este caso de uso permite al retailer

información sobre su negocio al sistema

Actores Retailer

Precondición El retailer tiene una cuenta de Business

User creada, con un developer-id y un

secret.

Flujo primario El retailer hace una petición REST de tipo

POST de subida de datos al sistema

añadiendo como headers developer-id y

secret y como parámetro el fichero csv con

la información correspondiente. El sistema

valida los credenciales y el fichero adjunto

y en caso de que sean correctos devuelve

un código de ejecución correcta

Flujo secundario La petición al sistema es incorrecta.

Los credenciales del retailer no son

correctos.

El fichero csv no es correcto

Pos condición Si se cumple el flujo primario, se habrá

ejecutado una petición REST de subida de

datos al sistema

Tabla 15. Caso de uso Retailer Añadir información

Page 81: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

65

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Especificación del caso de uso: Modificar la información

Descripción Este caso de uso permite al retailer

modificar la información almacenada en el

sistema

Actores Retailer

Precondición El retailer tiene una cuenta de Business

User creada, con un developer-id y un

secret.

Flujo primario El retailer hace una petición REST de tipo

UPDATE de modificación de datos al

sistema añadiendo como headers

developer-id y secret y como parámetro el

fichero csv con la información

correspondiente actualizada. El sistema

valida los credenciales y el fichero adjunto

y en caso de que sean correctos devuelve

un código de ejecución correcta

Flujo secundario La petición al sistema es incorrecta.

Los credenciales del retailer no son

correctos.

El fichero csv no es correcto

Pos condición Si se cumple el flujo primario, se habrá

ejecutado una petición REST de

modificación de información contra el

sistema

Tabla 16 Caso de uso Retailer Modificar la Información

Especificación del caso de uso: Retirar información

Descripción Este caso de uso permite al retailer

Page 82: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

66

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

eliminar información almacenada en el

sistema

Actores Retailer

Precondición El retailer tiene una cuenta de Business

User creada, con un developer-id y un

secret.

Flujo primario El retailer hace una petición REST de tipo

DELETE de borrado de datos al sistema

añadiendo como headers developer-id y

secret. El sistema valida los credenciales y

en caso de que sean correctos devuelve un

código de ejecución correcta

Flujo secundario La petición al sistema es incorrecta.

Los credenciales del retailer no son

correctos.

Pos condición Si se cumple el flujo primario, se habrá

ejecutado una petición REST de borrado de

información contra el sistema

Tabla 17 Caso de uso Retailer Retirar información

Page 83: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

67

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

6.2 Diseño 6.2.1 Modelo de datos Para garantizar la integridad de los datos a subir al servidor, estos deberían ser añadidos

siguiendo una secuencia determinada. Por ejemplo la marca debería añadirse antes que

los productos, debido a que los productos tienen un campo de marca. El objetivo

debería ser:

- Reducir al máximo el número de llamadas al servidor y reducir el tamaño de la

información, manteniendo vacíos aquellos campos que no se van a utilizar.

- Evitar realizar modificaciones sobre los datos al mismo tiempo, en especial

sobre aquellos datos con relaciones de dependencia.

Debido a estas especificaciones se ha diseñado la siguiente secuencia de subida:

1. Brand, Store Group, Segment, Touchpoint, Category, Product Family

2. Store, Product, Campaign

3. Customer Profile, Catalog, Master Catalog Item, Catalog Item

4. Condition

5. Offer

6. Entity relations, e.g. Offer-Product-Relation

Page 84: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

68

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

A continuación se muestran los diagramas entidad relación que recogen el modelo de

datos de la solución SPM desarrollada:

Consumidor

Figura 24. Modelo de Datos Consumidor (Fuente: STM)

Page 85: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

69

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Promociones

Figura 25. Modelo de Datos Promociones (Fuente: STM)

Page 86: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

70

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Catálogo

Figura 26. Modelo de Datos Catálogo (Fuente: STM)

Page 87: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

71

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

6.2.2 Diseño de interfaces En lo referente al diseño de las ventanas de la aplicación, se realizará un diseño Android

basado en TABS. Se definirá una TAB para cada funcionalidad definida: OFERTAS,

CATÁLOGOS, TIENDAS, CARRITO y FAVORITOS. Además como en la mayor

parte de las TABS la información a mostrar se encuentra en formato de lista, se utilizará

la función de scroll que proporciona Android para desplazarse por la lista mostrada.

Figura 27. Tabs Aplicación 1 Figura 28. Tabs Aplicación 2

Page 88: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

72

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Desde la lista de ofertas se podrá añadir la oferta a ofertas favoritas. Además se podrá

obtener más información sobre una oferta al pulsar sobre ella en la lista. En este caso se

abrirá una nueva ventana con más información sobre la oferta seleccionada. Desde esta

ventana se podrá añadir y retirar también la oferta a favoritos y se mostrará la opción de

obtener más información sobre el producto. Al pulsar en este último botón solicitando

más detalles sobre el producto, se abrirá otra ventana con esta información ofreciendo la

opción de añadirlo al carrito.

Figura 29. Detalles Oferta Figura 30. Detalles Producto

La TAB de catálogos mostrará las tiendas cercanas al usuario. Al acceder a una tienda

se mostrarán los catálogos que tenga asociados y al acceder a un catálogo se mostrarán

las distintas categorías ramificadas hasta acceder a los productos. Y por último al

Page 89: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

73

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

acceder a un producto se mostrará la información sobre el producto ya explicada

anteriormente.

La TAB de tiendas listará también las tiendas cercanas ofreciendo una interfaz de

Google Maps para situarlas en el mapa. Se dejará como posible integración futura la

posibilidad de integrar la aplicación con la aplicación Navigator de Android, para

calcular la ruta a la tienda seleccionada.

Figura 31. Tab Catálogos Figura 32. Tab Tiendas

Page 90: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

74

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Figura 33. Tab Tiendas

Las TABs de carrito y favoritos listarán los elementos añadidos a cada una de las listas,

ofreciendo la posibilidad de añadir y retirar productos (en el caso del carrito), y ofertas

(en el caso de favoritos).

Page 91: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

75

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Figura 34. Tab Carrito Figura 35. Tab Favoritos

Page 92: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

76

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

6.3 Implementación A continuación se muestran ejemplos de la implementación de cada una de las partes

que componen la solución: los ficheros csv que contienen información, las clases Java

que implementan la subida de datos y la aplicación Android, que utiliza XML para las

vistas y Java para la lógica.

6.3.1 Ficheros csv Los ficheros CSV se crean utilizando tablas de Excel, que posteriormente se convierten

a este tipo de archivo. A continuación se utilizará como ejemplo el fichero que contiene

la información sobre los segmentos. Para este tipo de fichero se especifican los

siguientes campos en la Partner API:

Figura 36. Partner API Segment

Son requeridos los campos de segment code, segment type y segment name, que en este

caso son los que se rellenan. A continuación se muestra esta información en el Excel:

Page 93: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

77

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Figura 37. Excel Segment

Una vez se tiene creada la tabla en el Excel se guarda y Por último se muestra el texto

generado:

La aplicación soporta únicamente ficheros CSV separados por comas, tal como se ha

hecho para este ejemplo.

Para cada clase se crea el fichero con su información correspondiente consultando

previamente el apartado correspondiente en la Partner API. Los campos obligatorios

deberán ser rellenados para garantizar que se respeta la estructura del modelo de datos

que utiliza la aplicación. El orden de subida de los ficheros también habrá de tenerse en

cuenta, tal como se ha indicado en el apartado de diseño.

20000,Edad,Menores de 23 años,,,

20001,Edad,Mayores de 60 años,,,

20002,Edad,Menores de 18 años,,,

20003,Sexo,Mujeres,,,

20004,Sexo,Hombres,,,

Page 94: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

78

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

6.3.2 Subida de datos Para realizar la subida de los datos de manera sencilla, se ha optado por desarrollar

dicha funcionalidad mediante lenguaje Java, utilizando el IDE Eclipse. El programa

diseñado para una determinada clase deberá leer el fichero csv, solicitar un

transactionID, abrir la conexión con el servidor adjuntando credenciales y transactionID

y enviar el fichero convertido a bytes utilizando la clase DataOutputStream.

Tal como se ha explicado anteriormente, para cada fichero de cada clase que se quiera

subir al servidor será necesario realizar una petición REST vía POST o UPDATE

adjuntando el archivo. A continuación se muestra un ejemplo para el fichero de

segmentos creado en el apartado anterior. La clase creada para subir segmentos es la

clase Segment. Dicha clase obtendrá en primer lugar un transactionID para poder

ejecutar posteriormente una petición a la PartnerAPI y subir el fichero de segmentos

creado anteriormente.

Page 95: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

79

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

CLASE SEGMENT

class Se�men� � ��� ur� � null� S�r�n� ur�S�r � null� S�r�n� �aramS�r � null� S�r�n� s�r�md�r� � null� S�r�n� �E��SE��E� � �����s���s�r�ar�nera��ss�a��n���ana�ondemand��om���� ��� de� ser��dor �eb S�� H��� S�r�n� ������SE � ���ar�nera����1�res����� �ar�ner ��� S�r�n� �E�E���E������013�1b�2��3���4�dd�b�83�3a431�81341������E�E���E���� re��s�rado S�r�n� SE��E� � ��3bd���8s3����SE��E� aso��ado S�r�n� boundar� � �������� S�r�n� a��a��men��ame � ��s��� S�r�n� a��a��men����e�ame � ��rea�eSe�men�s��s�����nombre de� ����ero S�r�n� �r�� � ��r�n�� S�r�n� ��oH���ens � ����� public static void ma�n�S�r�n� ar�s��� throws Ex�e���on �

���on���ura���n de �rox� �rox�Se�e��or�se��e�au���new �rox�Se�e��or�� � ���err�de public ��s���rox�� se�e������ ur��

� return �rra�s�as��s��new �rox���rox�����e�H���, new �ne�So��e��ddress��10�0�8�102�, 8080����

� public void �onne���a��ed���� ar�0, So��e��ddress ar�1, ��Ex�e���on ar�2�

� throw new �un��meEx�e���on���rox� �onne�� �a��ed�, ar�2�� � ��� Se�men� se�men�� new Se�men���� se�men��exe�u�e��� �

Page 96: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

80

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

En primer lugar realiza los imports de java.io y java.net para la gestión de ficheros y la

conexión y de las librerías necesarias para dar soporte a Json. A continuación declara

los parámetros, la URL y los credenciales que se utilizarán para establecer las

conexiones. Después configura el proxy y por último ejecuta el método execute() que se

encarga de la funcionalidad y se definirá a continuación.

Como se puede observar en el código, una vez construida la url se establece la

conexión. Se establece como POST y a continuación se adjuntan las credenciales y las

propiedades que soporta el servidor. Posteriormente se utiliza un DataOutputStream

para el envío del fichero, previo establecimiento de la sintaxis que utiliza el servidor

para la recepción de ficheros. El fichero es convertido a un Array de bytes utilizando

una función propia fileToByteArray() y es enviado al servidor.

�onne���on � �H�������onne���on�ur��o�en�onne���on������b�en���n de �a �onex��n

�onne���on�se��se�a��es��alse�� �onne���on�se��o�u��u��true�� �onne���on�se��e�ues�Me��od����S�������e�����n ��S� �onne���on�se��e�ues��ro�er�����on�en�����e�, �mu����ar���orm�da�a�boundar��� � this�boundar��� �onne���on�se��e�ues��ro�er�������e���, ������� �onne���on�se��e�ues��ro�er����de�e�o�er��d�, �E�E���E������ �onne���on�se��e�ues��ro�er����de�e�o�er�se�re��, SE��E��� �a�a�u��u�S�ream re�ues� � new �a�a�u��u�S�ream��onne���on��e��u��u�S�ream���� re�ues���r��e���es�this���oH���ens � this�boundar� � this��r���� re�ues���r��e���es���on�en����s�os���on� �orm�da�a� name���� � this�a��a��men��ame � �������ename���� � this�a��a��men����e�ame � ���� � this��r���� re�ues���r��e���es�this��r���� re�ues���r��e����e�o���e�rra����� re�ues���r��e���es�this��r���� re�ues���r��e���es�this���oH���ens � this�boundar� � this���oH���ens � this��r����

Page 97: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

81

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Para la obtención del transactionID, que se necesita añadir como parámetro a la URL

sobre la que se abre la conexión para ejecutar cualquier petición al servidor desde la

PartnerAPI, se ha creado una función createTransactionID() que funciona de manera

similar a la mostrada, a excepción del tipo de petición que en este caso es GET.

El resto de clases utilizarán la misma estructura, utilizando la URL correspondiente para

cada caso. Únicamente cambiará el nombre y la ubicación del fichero y la URL que se

encarga de gestionar dicho tipo de recursos. Las clases implementadas de la misma

manera son las siguientes:

- Brand, Campaign, Catalog, Category, Condition, MasterCatalogItem, Offer,

Product, ProductFamily, Segment, Store, Touchpoint

6.3.3 Aplicación Android En cuanto a la navegabilidad de la aplicación, se mostrarán en primer lugar las opciones

de acceso, de registro de perfil y establecimiento de preferencias, gestionadas por

actividades invocadas desde la Main Activity. En el momento en que se haya

establecido la sesión se activará un flag que indique que la sesión es correcta. Se creará

en la Main Activity un método que en caso de encontrarse activo el flag de sesión

creada, cree las TABS y añada listeners para gestionar los eventos de pulsado y la

navegabilidad entre las TABS. Cada una se gestionará mediante fragments

independientes y en caso de necesitar mostrar más información (por ejemplo al pulsar

encima de una oferta de la lista), se gestionarán mediante nuevas Activities.

En lo relativo al flujo de información, se realizarán peticiones al servidor cada vez que

se necesite consultar información. No se ha considerado un diseño con persistencia,

debido a la arquitectura que tiene definido el servidor de SPM y por tanto el SDK

Android, únicamente permite realizar peticiones para acceder a tipos de datos

específicos. Al no ofrecer la posibilidad de acceder a toda la información con una única

Page 98: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

82

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

petición, no cabe la posibilidad de descargar toda la información y gestionarla de

manera local. Además las peticiones varían en función de la posición del usuario, con

lo que el modelo basado en llamadas específicas facilita la parametrización y el

desarrollo de los algoritmos que calculan dicha información en tiempo real

Android Manifest

A continuación se muestra un extracto del código del Manifest.xml, donde se recoge la

información esencial sobre la app desarrollada. Este archivo se encuentra ubicado en el

directorio raíz del proyecto.

Se definen los nombres de aplicación, etiquetas y las características de la MainActivity,

que será la actividad principal de la aplicación.

<application android:label="@string/app_name" android:name="ExampleApplication" android:allowBackup="false"> <uses-library android:name="com.google.android.maps" /> <activity android:name="MainActivity" android:label="@string/app_name" android:launchMode="singleTask" android:screenOrientation="portrait" android:configChanges="orientation|screenSize"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

Page 99: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

83

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Posteriormente se definen el resto de actividades de la aplicación, a las que llamará la

MainActivity para gestionar distintas funcionalidades. A cada actividad se le asigna un

nombre representativo de su función. Por último se definen las librerías de Google

Maps para Android junto con la clave de desarrollador para las mismas.

Vistas

Para el diseño de las vistas, se utilizan layouts en formato XML, ubicados en el

directorio res/layouts del proyecto. Exceptuando los layouts diseñados para acceso,

registro y establecimiento de preferencias, el resto de layouts se pueden agrupar en tres

tipos: layouts de fragments y layouts tipo lista y layouts de detalles:

- Los layouts de fragments se utilizan en cada uno de los fragments que define la

aplicación. Los fragments de la aplicación muestran listas por lo que en general,

utilizan un elemento de Android ListView, que define una lista. Cada una de las

entradas de la ListView seguirá un layout de tipo lista.

<activity android:name=".�i.offer.�ffer�etailsActivity" android:label="@string/act_offer_details" android:screenOrientation="portrait" android:configChanges="orientation|screenSize"/> <activity android:name=".�i.catalog.�rod�ctsActivity" android:label="@string/act_prod�cts" android:screenOrientation="portrait" android:configChanges="orientation|screenSize"/> <activity android:name=".�i.catalog.CatalogActivity" android:label="@string/act_catalog" android:screenOrientation="portrait" android:configChanges="orientation|screenSize"/> <activity android:name=".�i.carrito.Carrito�etailsActivity" android:label="@string/act_carrito_details" android:screenOrientation="portrait" android:configChanges="orientation|screenSize"/> <activity android:name=".�i.catalog.�rod�ct�etailsActivity" android:label="@string/act_prod�ct_details" android:screenOrientation="portrait" android:configChanges="orientation|screenSize"/> <meta-data android:name="com.google.android.maps.v�.A�I_�E�" android:value="p�H�r�n���Aif�o��f�kNf��" /> <meta-data android:name="com.google.android.gms.version"

android:value="@integer/google_play_services_version" />

Page 100: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

84

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

- Los layouts tipo lista definen la estructura de cada uno de los elementos que se

listarán en el LinearLayout de los layouts tipo fragment. Típicamente incluyen

imágenes (ImageView) y etiquetas (TextView), mostrando información sobre

los elementos listados.

- Los layouts de detalles se utilizan para mostrar información adicional acerca de

un determinado elemento. Estos pueden ser ofertas o productos. Este tipo de

layouts contiene una imagen (ImageView) del elemento y diversas etiquetas

(TextView), mostrando más información que la que se mostraba en las listas.

Estos layouts contienen además botones (ImageView Button) para poder

ejecutar acciones sobre los elementos consultados, tales como añadir al carrito o

a la lista de ofertas favoritas.

A continuación se muestra un ejemplo para cada tipo de layout. En primer lugar se

muestra el layout definido para el fragment de catálogos:

<��ml version="�.�" encoding="�tf��"�> <�elative�ayout �mlns:android="�ttp�//sc�emas.android.com/apk/res/android" android:orientation="vertical" android:layout�width="fill_parent" android:layout�height="fill_parent"> <�ist�iew android:id="@�id/categoryList" android:layout�width="fill_parent" android:layout�height="�rap_content" android:layout�margin="�dip" android:padding="�dip" android:scrollbars="vertical" android:fade�crollbars="tr�e" android:scrollbar�tyle="inside�verlay" android:min�eight="��dip" android:list�elector="���������"/> <�rogressBar android:id="@�id/progress�ar" android:layout�width="matc�_parent" android:layout�height="�rap_content" android:layout�center�n�arent="true" android:indeterminate="false"> </ProgressBar> </RelativeLayout>

Page 101: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

85

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Como puede observarse el layout únicamente define un elemento tipo ListView que

funcionará como un scroll y una barra de progreso ProgressBar que se mostrará

mientras la aplicación esté obteniendo los datos a mostrar.

A continuación se muestra un ejemplo del layout que seguirá cada uno de los elementos

que se mostrarán en la ListView definida anteriormente. Este layout es de tipo lista:

Como puede observarse se define un RelativeLayout para posicionamiento relativo de

los elementos. A continuación de define una ImageView para mostrar una imagen y

posteriormente un nuevo RelativeLayout para el posicionamiento relativo de las

<RelativeLayout �� �� ��

<�mage�ie� android:id="������atal�����ture" android:layout��eig�t="�����" android:layout��idt�="�����" android:�o�usa�le="false" android:�o�usa�le�n�ou���ode="false" android:layout��enter�erti�al="true"> </�mage�ie�> <RelativeLayout android:id="������atal����f�" android:layout��idt�="�ra�����te�t" android:layout��eig�t="�ra�����te�t" android:layout�marginLe�t="����" android:layout�toRig�t��="������atal�����ture"> <�e�t�ie� android:id="������atal���a�e" android:layout��idt�="�ra�����te�t" android:layout��eig�t="�ra�����te�t" android:elli�si�e="e��" android:lines="�"> </�e�t�ie�> <�e�t�ie� android:id="������atal���t�re" android:layout��elo�="������atal���a�e" android:layout��idt�="�ra�����te�t" android:layout��eig�t="�ra�����te�t" ������������android:te�t�i�e="��s�"> </�e�t�ie�> </RelativeLayout> </RelativeLayout>

Page 102: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

86

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

TextViews. Estos elementos dentro del segundo RelativeLayout se situarán a la derecha

de la imagen (android:layout�toRig�t��="������atal�����ture").

Por último se ofrece un layout del tercer tipo, utilizado para mostrar los detalles de un

producto:

<��ml version="���" en�oding="utf��"�> <RelativeLayout �� �� > <LinearLayout

�� �� >

<�mage�ie�

�� �� />

<LinearLayout

�� �� >

<�e�t�ie� �� �� />

<�e�t�ie� �� �� />

<�e�t�ie� �� �� />

</LinearLayout> </LinearLayout> <�e�t�ie� android:id="������r��u�t�es�" android:layout��elo�="������r��u�t�u��ar�" android:layout��idt�="f�ll��are�t" android:layout��eig�t="�ra�����te�t" android:layout�margin�o�="���" android:layout�marginBottom="���"/> <�mageButton android:id="�������a�e�utt���arr�t�" android:layout��idt�="�����" android:layout��eig�t="�����" android:layout��elo�="������r��u�t�es�" android:layout��enter�ori�ontal="true" android:sr�="��ra�a�le��arr�t�" /> </RelativeLayout>

Page 103: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

87

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

En este caso se añade además una nueva etiqueta centrada conteniendo el nombre del

producto y por último un botón que se utilizará para añadir el producto al carrito de la

compra.

Main Activity

En la MainActivity de la aplicación desarrollada, se han definido los métodos

onCreate(), onResume(), onRestart(), onPause(), onStop(), onDestroy(). Además se crea

un menú de tabs, a los que se le añade un listener y que serán gestionados mediante

Fragments.

private void buildTabs(int selectedIdx) { if (actionBar == null)

{ actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.addTab(actionBar .newTab() .setText(getText(R.string.tab_offers)) .setTabListener( new TabListener<OfferFragment>(this, OfferFragment.TAG, OfferFragment.class))); actionBar .addTab(actionBar .newTab() .setText(getText(R.string.tab_catalog)) .setTabListener( new TabListener<CatalogFragment>(this, CatalogFragment.TAG, CatalogFragment.class))); actionBar.addTab(actionBar .newTab() .setText(getText(R.string.tab_stores)) .setTabListener( new TabListener<NearbyStoresFragment>(this, NearbyStoresFragment.TAG, NearbyStoresFragment.class))); actionBar.setSelectedNavigationItem(selectedIdx);

}

..

..

.. }

Page 104: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

88

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Como se ha indicado en el ciclo de vida de la activity, cuando se crea en primer lugar se

ejecuta en método onCreate(). Este método se encarga de la inicialización de la

aplicación, obteniendo la posición del usuario y añadiendo un listener que se encargue

de los futuros cambios de posición e iniciando otra activity que gestione el acceso a la

aplicación. A continuación se muestra un extracto de este método.

La MainActivity se encarga además de definir los métodos onResume(), onRestart(),

onPause(), onStop() y onDestroy(), que se encargará de cerrar la aplicación, previa

consulta al usuario con un alertDialog. Además desde la MainActivity se crean las Tabs

de la aplicación, añadiéndoles los correspondientes listeners y cuya funcionalidad se

gestionará mediante fragments. A continuación se adjunta un extracto del código de la

creación de las Tabs, que se realiza mediante el método buildTabs();

�u�lic void onCreate(Bundle savedInstanceState) { su�e�.onCreate(savedInstanceState); g�s = new ��STrac�er(MainActivity.this); if(g�s.can�etLocation()) { Blac�board.getI�sta�ce().setConsumerLocation( new Location(g�s.getLatitude(), g�s.getLongitude()));

LocationManager lm = (LocationManager) getSystemService(Context.�O�ATION_SE�VI�E);

lm.re�uestLocation��dates(LocationManager.G�S_��OVIDE�, ����, �, g�s);

} else { g�s.s�owSettingsAlert(); }

��if (Blac�board.getI�sta�ce().getSessionState() == SessionState.NotI��t�ate�) {

�rogress�ialog = �rogress�ialog.s�o�(this, ��, getText(R.string.�sg_co��ect��g), t�ue);

} startActivityForResult(new Intent(this, AccesoActivity.class), �);

..

..

.. }

Page 105: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

89

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Fragments

En la aplicación desarrollada, los fragments se encargarán de ejecutar las llamadas al

servidor para implementar cada una de las funcionalidades definidas. Además se

encargarán de renderizar las vistas de la aplicación. A continuación se ofrece un

ejemplo del Fragment utilizado para gestionar las ofertas: OfferFragment.

OfferFragment heredará de Fragment y además implementará los métodos de la clase

abstracta de SPM, CommandListener. Dichos métodos son onCommandSuccess(), que

se ejecutará en caso de que el código de respuesta de la llamada al servidor sea OK, y

onCommandError(), en caso de recibirse un código de respuesta distinto.

El primer método en el ciclo de vida del Fragment que se utiliza es onCreate(), que

ejecuta el método buildGetOffersCommand(), encargado de la construcción de la

llamada para la obtención de las ofertas.

Para la creación del comando de obtención de ofertas en primer lugar se obtienen las

coordenadas del usuario utilizando la clase Blackboard. Posteriormente se crea un

objeto de tipo OfferSelector introduciendo las coordenadas y el radio en kilómetros. Por

último se crea el comando añadiendo coordenadas e id de usuario.

�u�lic class OfferFragment e�tends Fragment i��le�ents CommandListener

�u�lic void onCreate(Bundle savedInstanceState) { su�e�.onCreate(savedInstanceState); build�etOffersCommand(); }

Page 106: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

90

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

El siguiente método en el ciclo de vida que se utiliza es el método onCreateView(). Este

método se encarga de construir la vista, utilizando el layout correspondiente y de

ejecutar el comando anteriormente creado mediante el método

executeAsynchronously(), cuyo resultado de ejecución será capturado directamente por

onCommandSuccess() o onCommandError().

Por último el método onCommandSuccess, recibe el resultado de la llamada al servidor

en caso de que el código de respuesta sea OK, (código 200). Con la información de

respuesta accede a los elementos de las vistas y asigna la información de las ofertas

obtenidas a dichos elementos dinámicamente, utilizando un objeto de la clase

OfferListAdapter. Por último añade un listener al botón “Mostrar más ofertas” para

gestionar la funcionalidad asociada a dicho botón. Por último oculta la barra de

progreso.

�u�lic �iew onCreate�iew(LayoutInflater inflater, �iew�rou� container, Bundle savedInstanceState) { this.inflater = inflater; if (my�iew == null)

{ my�iew = inflater.inflate(R.layout.frag�e�t_offer, null); my�iew.find�iewById(R.id.�rogressBar)

.set�isibility(�iew.VISIB�E); offersCmd.executeAsync�ronously(this); } �etu�n my�iew; }

��ivate �etOffersCommand build�etOffersCommand() {

Location loc = Blac�board.getI�sta�ce().getConsumerLocation();

OfferSelector selector = new OfferSelector(loc.getLatitude(), loc.getLongitude(), ��); offersCmd = new �etOffersCommand(Blac�board.getI�sta�ce() .getConsumerId(), selector); �etu�n offersCmd; }

Page 107: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

91

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Nuevas Activities

Para gestionar distintas funcionalidades, se crean nuevas activities. En Android cada

activity es tratada de manera independiente, se encarga de una funcionalidad concreta y

tiene su propio ciclo de vida.

La creación de nuevas activities se realiza mediante el método startActivityForResult(),

que se encarga de crear la activity con un código de creación (requestCode). Una vez

que la activity es creada y cumple su ciclo de vida, la activity que la creó recibe el

resultado en el método onActivityResult(), y en función de los códigos, el requestCode

para identificar la activity y el resultCode para conocer el resultado devuelto, se toma

una determinada acción. A continuación se muestra un ejemplo de lo anteriormente

descrito, se trata de la activity AccesoActivity, llamada desde la MainActivity para

gestionar el acceso a la aplicación.

Se realiza la creación de la activity como se ha comentado, enviando 1 como

requestCode.

�u�lic void onCommandSuccess(Command cmd) { List<Offer> offers = offersCmd.getRes�onse�ata().getOffers(); offerList�iew = (List�iew) my�iew.find�iewById(R.id.offer��st); final OfferListAda�ter listada�ter = new OfferListAda�ter(this, offers, inflater); offerList�iew.setAda�ter(listada�ter); int button�isibility = offersCmd.getRes�onse�ata().�asMoreOffers() � �iew.VISIB�E � �iew.GONE;

my�iew.find�iewById(R.id.offer��stMoreOffersB�tto�).setVisibility(buttonVisibility);

myView.findViewById(R.id.offerListMoreOffersButton).setOnClickListener(this); // harmless when visibility is GONE myView.findViewById(R.id.progressBar).setVisibility(View.INVISIBLE); }

Page 108: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

92

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

La actividad creada cumplirá su ciclo de vida (onCreate(),) y posteriormente finalizará

enviando como código de resultado (resultCode) un 1 si el usuario es anónimo o un 2 si

el usuario es registrado.

Posteriormente, desde la MainActivity se realizará la gestión del resultado mediante el

método onActivityResult(). ��

De esta manera se realiza la creación y gestión de nuevas activities, pudiendo controlar

el resultado que devuelven y tomar una determinada decisión en función del mismo.

Intent returnIntent � ��� Intent(); setResult(�� returnIntent); //E�em�lo usuario re�istrado finish();

���t��t�� ��i� on�ctivityResult(i�t re�uestCode� i�t resultCode� Intent data) �

i�(re�uestCode �� �) � i�(resultCode���) � //�ecisi�n �ara usuario an�nimo } i�(resultCode���) � //�ecisi�n �ara usuario re�istrado } } }

start�ctivity�orResult(��� Intent(this� �cceso�ctivity.���ss)� �);

Page 109: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

93

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Geo localización

Para la implementar la funcionalidad de la geo localización del usuario, se ha

implementado una clase GPSTracker, que se define como servicio e implementa los

métodos del interface LocationListener de Android: onLocationChanged(),

onProviderDisabled(), onProviderEnabled(), onStatusChanged().

La clase proporcionará una ubicación inicial y posteriormente se encargará de

comprobar asíncronamente la ubicación del usuario cada un determinado intervalo de

tiempo. En caso de que esa ubicación varíe más de una distancia determinada, se

actualizarán los datos de la ubicación del usuario en la aplicación, utilizando la clase

Blackboard. En el caso de detectarse un cambio de ubicación del usuario, se obtendrán

nuevamente las ofertas para la nueva ubicación y en el caso de que sean diferentes a las

ya mostradas, se actualizará la información mostrando las nuevas ofertas. Para ello se

utiliza un objeto tipo LocationManager, sobre el que se aplican una serie de métodos

para obtener la ubicación inicial. Se intenta en primer lugar utilizar el

NETWORK_PROVIDER, esto es ubicación por cuadración de antenas, debido a que de

esta manera se consume poca energía obteniendo una precisión muy aceptable.

Posteriormente si este provider no estuviese disponible, se utilizaría el

GPS_PROVIDER, que proporciona la mejor precisión pero tiene mayor consumo de

batería. Utilizando el método getLastKnownLocation() sobre el LocationManager, se

obtiene la posición actual del usuario. Posteriormente, mediante el método

requestLocationUpdates se establece el listener sobre la propia instancia de la clase

GPSTracker, que se encargará de gestionar las respuestas cuando se produzca algún

evento. A continuación se incluye parte del código desarrollado que implementa esta

funcionalidad:

����i� ���ss G���racker ��t���s �ervice i�������ts LocationListener �

Page 110: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

94

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

����i� Location �etLocation() �

location�ana�er � (Location�ana�er) mConte�t .�et�ystem�ervice(LO���ION�SE�VI�E); isG��Enabled � location�ana�er .is�roviderEnabled(Location�ana�er.��S���OVI�E�); isNetworkEnabled � location�ana�er .is�roviderEnabled(Location�ana�er.NE��O�����OVI�E�);

i� (�isG��Enabled �� �isNetworkEnabled) � // no network �rovider is enabled

} ��s� � this.canGetLocation � t���;

i� (isNetworkEnabled) �

location�ana�er.re�uestLocation��dates( Location�ana�er.NE��O�����OVI�E�� MIN��IME�B�������ES� MIN��IS��N�E����N�E��O�������ES� this); i� (location�ana�er �� ����)

� location � location�ana�er .�etLast�nownLocation(Location�ana�er.NE��O�����OVI�E�); i� (location �� ����) �

latitude � location.�etLatitude(); lon�itude � location.�etLon�itude(); } } } i� (isG��Enabled)

� i� (location �� ����)

� location�ana�er.re�uestLocation��dates( Location�ana�er.��S���OVI�E�� MIN��IME�B�������ES� MIN��IS��N�E����N�E��O�������ES� this); i� (location�ana�er �� ����)

� location � location�ana�er .�etLast�nownLocation(Location�ana�er.��S���OVI�E�);

i� (location �� ����) �

latitude � location.�etLatitude(); lon�itude � location.�etLon�itude(); } } } }

}

Page 111: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

95

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

7. Análisis de resultados A continuación se muestran los resultados obtenidos de la implementación de la

aplicación Android desarrollada:

En primer lugar, al entrar en la aplicación, se muestra la pantalla de acceso (Figura 39).

En dicha pantalla se ofrece al usuario la posibilidad de acceder como usuario anónimo o

como usuario registrado. La diferencia entres ambos tipos de sesión, reside en que la

sesión registrada permite al usuario añadir datos de perfil que se utilizarán para la

segmentiación de las ofertas. En el caso de seleccionar usuario anónimo se accede

directamente a la aplicación (Figura 42). En caso de acceso registrado se muestra la

pantalla de inicio de sesión (Figura 40). En caso de nuevo usuario al pulsa en “crear

cuenta” se redirige al usuario a la pantalla de registro (Figura 41), en la que tras

introducir correctamente nombre apellidos y email, recibirá en el mismo un correo para

activar su cuenta y establecer una contraseña. Al iniciar sesión como usuario registrado

se redirige a la pantalla de ofertas (Figura 42).

Figura 38. Acceso Figura 39. Inicio de Sesión

Page 112: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

96

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Figura 40. Registro Figura 41. Ofertas

La pantalla de ofertas (Figura 42), lista las ofertas encontradas para un usuario en una

determinada ubicación y permite seleccionarlas como favoritas. Además al pulsar en

una oferta se obtiene la información detallada de la misma (Figura 43). Desde esta

pantalla se puede obtener el código de barras de la oferta y además se puede obtener la

información detallada del producto (Figura 44) al pulsar en el nombre del mismo.

Por otro lado desde la pantalla de detalles del producto se puede añadir al carrito y

obtener productos asociados al mismo (similares, accesorios y sustitutivos).

Page 113: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

97

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Figura 42. Detalles de la Oferta Figura 43. Detalles del Producto

Desde la pantalla de catálogo (Figura 45), se pueden consultar los catálogos de las

tiendas cercanas. Esta pantalla lista las distintas categorías (Figura 46) y muestra

finalmente la lista de productos de la última subcategoría (Figura 47). Desde aquí se

puede acceder también a los detalles del producto (Figura 44).

Figura 44. Catálogo Figura 45. Lista de Categorías

Page 114: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

98

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Desde la pantalla de tiendas (Figura 48), se obtiene en el mapa de Google Maps la

posición del usuario y las tiendas. Además, desplegando la flecha de la parte baja de la

pantalla se obtiene la información sobre las tiendas y la distancia del usuario a las

mismas.

Figura 46. Lista de Productos Figura 47. Tiendas

En pantalla de carrito (Figura 49), se pueden revisar los productos añadidos al carrito e

interactuar sobre los mismos.

Desde la pantalla de favoritos (Figura 50), se pueden consultar las ofertas añadidas a

ofertas favoritas y eliminarlas de esta lista.

Page 115: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

99

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Figura 48. Carrito Figura 49.Favoritos

Al pulsar el botón de menú del propio teléfono se despliega un menú que ofrece las

posibilidades de añadir itereses (Figura 51), consultar (Figura 52) y editar perfil de

usuario (Figura 53) y cerrar sesión (Figura 54).

Figura 50. Intereses Figura 51. Perfil

Page 116: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

100

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Figura 52. Editar Perfil Figura 53. Cerrar Sesión

Page 117: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

101

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

A continuación se muestra un diagrama de navegabilidad de la solución desarrollada.

En naranja aparecen dibujadas las opciones posibles para los dos tipos de acceso

(registrado y anónimo). En verde aparecen aquellas opciones exclusivas para los

usuarios registrados.

Page 118: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

102

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Page 119: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

103

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

8. Conclusiones y trabajos futuros 8.1 Conclusiones La realización del presente proyecto ha permitido el desarrollo de una solución

completa basada en una tecnología altamente innovadora a nivel mundial. La

realización de todo este proceso de trabajo ha conducido a un profundo conocimiento

sobre diversas áreas tecnológicas. Por un lado, el desarrollo de la aplicación móvil ha

permitido aumentar el grado de conocimiento sobre Android y también por tanto sobre

Java y XML. Adicionalmente, se ha realizado un estudio en profundidad sobre la propia

herramienta SAP Precision Marketing, lo que ha resultado en un amplio conocimiento

sobre la propia herramienta y sobre SAP HANA Cloud. Por último, la implementación

de la subida de los datos para el perfil de retailer, ha posibilitado la comprensión del

funcionamiento de las peticiones REST.

Se ha desarrollado una nueva aplicación para dispositivos Android con una

funcionalidad totalmente nueva hasta el momento. El valor de la aplicación está

directamente relacionado con la posibilidad de incorporar el concepto de marketing de

precisón a una aplicación de telefonía móvil. Esto abre la puerta a una nueva generación

de aplicaciones de comercio móvil en el sector retail, capaces de mejorar la experiencia

de compra del cliente y el volumen de ventas del retailer.

Además, la solución desarrollada, sirve como un valioso ejemplo para futuros

desarrollos que utilicen esta herramienta, al constituir una de las pocas soluciones SPM

que existen actualmente a nivel mundial. Por último, el diseño implementado deja la

puerta abierta a futuras mejoras en la aplicación, que se podrían añadir sobre la base ya

desarrollada con el objetivo final de confeccionar una nueva y mejorada experiencia de

compra para el cliente.

Page 120: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

104

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

8.2 Trabajos futuros A continuación se ofrecen algunas de las funcionalidades más interesantes que se

podrían implementar sobre la solución desarrollada.

8.2.1 Compra electrónica La aplicación diseñada ofrece al usuario la posibilidad de generar códigos de barras de

los productos, lo que podría ser utilizado para agilizar la compra, al no tener que

escanear cada uno de los productos sino únicamente el dispositivo móvil. Sin embargo,

no se ha desarrollado la funcionalidad de la compra mediante la propia aplicación. Por

ello sería interesante desarrollar dicha funcionalidad, que incluso permitiese al usuario

realizar las compras sin necesidad de estar presente físicamente en el propio local,

manteniendo todas las ventajas. Para ello habría que sincronizar la cuenta creada en el

sistema SAP con algún tipo de cuenta a utilizar como medio de pago, como por ejemplo

una cuenta bancaria o de PayPal.

Esto supondría un nuevo reto para la aplicación, que debería garantizar un nivel de

seguridad aún mayor al ya establecido, al tratar con información sensible como datos

bancarios.

8.2.2 Navegación La aplicación diseñada es capaz de obtener la localización del usuario y gestionar los

cambios de posición. Por ello sería interesante añadir la funcionalidad de navegación, lo

cual mejoraría sustancialmente la experiencia de compra del usuario. Por un lado se

podría añadir una funcionalidad de navegación hasta la propia tienda, utilizando para

ello GPS por satélite. Por otro se podría ofrecer al usuario un servicio de navegación

dentro de la propia tienda, que mediante geolocalización por triangulación de antenas

fuese capaz de guiarle dentro de la propia tienda, ofreciendo un interfaz de búsqueda

que permitiese posteriormente el guiado hacia la zona de la tienda buscada por el

Page 121: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

105

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

usuario. Esta funcionalidad sería especialmente útil en grandes superficies. Además,

permitiría poder ofrecer determinadas ofertas por proximidad a los productos, dentro de

un mismo establecimiento.

Además la posibilidad de utilizar la aplicación de Maps, ya desarrollada por Google

para implementar esta funcionalidad facilitaría su desarrollo.

8.2.3 Escaneado de etiquetas Podría añadirse también la funcionalidad de escaneado de etiquetas a la aplicación

desarrollada. De esta forma se ofrecería la posibilidad de acceder a la información de un

determinado producto u oferta de manera sencilla, con un simple escaneado mediante la

cámara del dispositivo móvil. Esta función ahorraría al usuario la necesidad de tener que

buscar el producto o la oferta manualmente en su dispositivo. Además el escaneado del

código de barras de los productos podría utilizarse para complementar la funcionalidad

de la compra electrónica, posibilitando que el propio cliente pudiese escanear los

productos personalmente, para poder abonar su compra a la salida directamente,

ahorrándose el tiempo de espera en la caja del establecimiento.

Existen librerías diseñadas específicamente para proporcionar esta funcionalidad, por lo

que sería relativamente sencillo de implementar.

8.2.4 Aplicación para el retailer Por último, la solución diseñada deja la puerta abierta a la creación de una aplicación

para el retailer. Debido al corto período de tiempo que lleva en funcionamiento la

herramienta SPM, todavía no existen librerías específicas para desarrolladores de

ninguna plataforma que trabajen con la PartnerAPI. Esto dificulta el desarrollo de

cualquier aplicación orientada al retailer.

Page 122: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

106

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

Sin embargo,si se contase con estas librerías privadas, una de las futuras mejoras más

evidentes es la creación de una aplicación orientada exclusivamente al retailer. Esta

aplicación debería ofrecer al retailer, la posibilidad de subir la información sobre su

negocio de manera sencilla. Además podría integrarse con un sistema de sensores

dentro de su propio negocio, para obtener información en tiempo real del

comportamiento de los consumidores, observando patrones de conducta, pasillos y

estanterías más transitados, información por franja horaria, día de la semana etc.. Con

todo ello el retailer podría extraer información con gran valor para su negocio,

pudiendo ajustar las ofertas, la colocación de sus productos, etc. para poder mejorar su

volumen de ventas. Además con esta información la aplicación podría extraer gráficas e

incluso sugerir posibles cambios al retailer para mejorar su actividad comercial.

Page 123: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

107

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

9. Bibliografía [1] Nombre: Wikipedia, Sector Retail

Última visita: 06/05/2014

URL: http://es.wikipedia.org/wiki/Detal

[2] Nombre: Wikipedia, Marketing

Última visita: 06/05/2014

URL: http://es.wikipedia.org/wiki/Marketing

[3] Nombre: Wikipedia, Segmentación de mercado

Última visita: 06/05/2014

URL: http://es.wikipedia.org/wiki/Segmentaci%C3%B3n_de_mercado

[4] Nombre: Wikipedia, Fidelización

Última visita: 06/05/2014

URL: http://es.wikipedia.org/wiki/Fidelizaci%C3%B3n

[5] Nombre: Wikipedia, Teconologías de la información y la comunicación

Última visita: 05/05/2014

URL:http://es.wikipedia.org/wiki/Tecnolog%C3%ADas_de_la_Informaci%C3%B

3n_y_Comunicaciones

[6] Nombre: Wikipedia, Dispositivo móvil

Última visita: 06/05/2014

URL: http://es.wikipedia.org/wiki/Dispositivo_m%C3%B3vil

[7] Nombre: Wikipedia, Sistema operativo móvil

Última visita: 06/05/2014

Page 124: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

108

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

URL: http://es.wikipedia.org/wiki/Sistema_operativo_m%C3%B3vil

[8] Nombre: Wikipedia, SAP AG

Última visita: 07/05/2014

URL: http://es.wikipedia.org/wiki/SAP_AG

[9] Nombre: Wikipedia, Sistema de planificación de recursos empresariales

Última visita: 07/05/2014

URL:http://es.wikipedia.org/wiki/Planificaci%C3%B3n_de_Recursos_Empresarial

es

[10] Nombre: Sistemas ERP

Última visita: 07/05/2014

URL: http://www.informatica-hoy.com.ar/software-erp/Que-son-los-sistemas-

ERP.php

[11] Nombre: SAP R3

Última visita: 07/05/2014

URL: http://es.wikipedia.org/wiki/SAP_R/3

[12] Nombre: Device API SPM

Última visita: 20/06/2014

Autor: Equipo de Operaciones de SPM (SAP USA)

URL: http://help.sap.com/saphelp_spm/en/PDF/2_5_spm_device_api_en.pdf

[13] Nombre: Partner API SPM

Última visita: 20/06/2014

Autor: Equipo de Operaciones de SPM (SAP USA)

URL: http://help.sap.com/saphelp_spm/en/PDF/2_5_spm_partner_api_en.pdf

Page 125: SAP Retail 2.0: extensión de ofertas y servicios a ... · SAP HANA Cloud y la herramienta es capaz, haciendo uso del motor de computación de SAP Big Data, de utilizar una serie

109

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERÍA TELEMÁTICA

[14] Documentación oficial de SAP AG. Obtenida a través del partnership establecido

con la empresa everis, entidad colaboradora de este proyecto, de donde se han extraído

las figuras oficiales sobre SAP, SAP HANA, SAP HANA Cloud, SAP Big Data y SAP

Precision Marketing.