Las búsquedas dentro de grandes catálogos siempre ha sido un problema mal resuelto desde el punto de vista de la experiencia del usuario de SAP, en el escenario actual de bigdata las aplicaciones cada vez tienen más datos disponibles y tener herramientas potentes de búsqueda empieza a ser imprescindibles.
Para solucionar este problema hemos creado un widget en SAPUI5 que implementa lo que se conoce como fuzzy searcher y que se puede usar de la misma forma que usamos un matchcode de ABAP.
Posibilidades muy limitadas en SAP estándar
En el módulo SAP ISH MED nos encontramos con multitud de catálogos, uno de ellos es el de diagnósticos. Los médicos tienen la necesidad de encontrar un diagnóstico dentro de un catálogo de 50.000 elementos con herramientas como la siguiente:
En la solución estándar de SAP esta búsqueda es realmente complicada, los resultados son muy poco visuales. Se necesita usar comodines como * que para usuarios casuales del sistema es una solución poco viable.
¿Cómo lo hemos resuelto con SAPUI5?
Hemos creado un widget SAPUI5 que implementa la siguiente funcionalidad:
- Búsqueda por palabras enteras
- Búsqueda por inicio o fin de palabras
- Combinación de distintas palabras
- Búsqueda admitiendo errores ortográficos
En el siguiente vídeo se puede ver un ejemplo.
fuzzy searcher SAPUI5 – SAP Fiori from newUIBCN on Vimeo.
¿Cómo se utiliza?
Más sencillo imposible. Hemos creado un módulo de funciones ABAP que contiene un HTML VIEWER. Dentro de este visor ejecutamos nuestro widget SAPUI5. Aquí se puede ver el ejemplo de esta utilización dentro de SAP. El resultado es tan sencillo como el que se muestra en la imagen.
Este módulo de funciones se podrá utilizar en cualquier punto del sistema. Solamente tiene un parámetro donde informaremos el catálogo y una tabla de salida donde tendremos informados los registros seleccionados. Esta es la implementación más sencilla, pero podemos heredar de la solución sin problemas para añadir otras funcionalidades (guardar en favoritos del usuario, gestionar memoria de últimas ejecuciones…)
En la próxima entrada del blog explicaremos cómo hemos implementado la solución en SAPUI5. Veremos que algoritmo hemos utilizado y compartiremos el código para poderlo usar en vuestros sistemas.