martes, 7 de abril de 2009
Set Analysis Bug
Recientemente he experimentado un caso en el que, tras completar un documento en mi equipo (versión Enterprise), y subirlo al servidor de producción (versión Server), ciertas expresiones han dejado de verse.
La gente de QlikView ha confirmado tratarse de un bug en versiones anteriores a la 8.50.6231 y en el caso en que un campo no se le asigna ningún valor.
Este es el ejemplo en cuestión:
sum({$/Grupo=,TiendasNombre=,año={2009},idtienda={99903}\} unidades)
La respuesta por parte de soporte ha sido incluir siempre algún valor en el campo aunque sea utilizando el carácter comodín (*) quedando resuelto de la siguiente forma:
sum({$/Grupo={*},TiendasNombre={*},año={2009},idtienda={99903}\} unidades)
Por supuesto, la otra solución es actualizar todos los clientes y versiones enterprise a versiones posterior a la citada.
Un saludo, y espero que no perdáis el tiempo que he perdido yo...
P.D: QlikTech ha respondido pronto, eso sí...
Un detalle: en las fórmulas he sustituido los caracteres "<" y ">" por "/" y "\" respectivamente
miércoles, 1 de abril de 2009
Nueva versión QlikView 9 (Beta 1)
Habemus QlikView 9!Después de lanzar al mercado una esperada versión 8.5 que marcará un antes y un después, QlikTech lanza al mercado (aunque de momento con fines de test), la versión Beta 1 de QlikView 9.
Pues tan pronto me he enterado, y cuando he podido sacar algo de tiempo, me he puesto manos a la obra para probar el producto.
El procedimiento para probar ha sido sencillo (no sin antes salvar algún problemilla de la web), y a bastado con registrarme (totalmente gratis) en http://www.qlikcommunity.com/qv9beta/ y ponerme a descargar todo el material necesario para probar, versiones x32 y x64 del producto Enterprise, Server, incluso de un cliente mobile para dispositivos iPhone, BlackBerry, etc... (he de decir que para probar el producto "Server" debes solicitar una llave de licencia temporal que es funcional 100% salvo por una marca de agua en los objetos.
Pues de momento no os puedo contar mucho, salvo que, como dicen en mi tierra, la primera en la frente...
Acabo de comprobar que justo después de instalar el setup de turno y de cambiar la ruta de instalación por defecto para que no me afectara a mi instalación 8.5 anterior, se me ha ventilado los ejecutables de la 8.5. Lo curioso es que en los manuales pdf y hojas de producto facilitados por QlikTech hace mención a que no hay "ningún" problema con versiones anteriores del producto instaladas en la máquina, .... (;-(
Bueno, por lo menos tengo la 9Beta y que, como toda Beta, debería llamarse Peta, pues solo han pasado 30 segundos y ya se ha colgado una vez. En fin, "aceptamos Beta como versión de pruebas..."
Os iré contando...
lunes, 2 de febrero de 2009
Para aclararnos las ideas un poco
Recientemente he tenido que "dibujar" todos los procesos en mi empresa y aunque al final los he dibujado con el simple Open Office, he descubierto herramientas (algunas de ellas free) perfectas para este trabajo.
Están relacionadas con el mundo del BPM (Business Process Management) y pueden ayudar mucho a directores y analistas informáticos a aclarar y simplificar procesos, tareas y demás.
Este es un tema bastante interesante aunque, como pasa en muchas ocasiones, no acaba teniendo la acogida que se pretendía en un principio llegando ciertas empresas desarrolladoras a distribuir su software libremente.
La idea de BPM (en teoría buenísima aunque en la práctica estamos a años luz de poder aplicar esta tecnología), es la de modelizar los procesos empresariales en capas. BPM utiliza SOA para comunicarse con los diferentes sistemas transaccionales (ERP, SGA, etc) con el fin de abstraer al analista de las modificaciones necesarias para adaptar nuestro ERP a un cambio ocurrido en la forma de operar de la empresa. En los días que corren el éxito de una empresa radicará en su capacidad de adaptación al cliente y de la velocidad de cambio frente a su competencia. Es bastante frecuente tener que esperar semanas e incluso meses cuando un director logístico (por ejemplo) decide cambiar un proceso que llevaba años realizándolo de cierta forma. Pues bien, suponiendo que nuestro SGA (sistema de gestión de almacén) permita la integración con SOA, dicho cambio no supondría nada más que cambiar gráficamente (realmente puede llegar a ser algo no tan simple como lo pinto) nuestro diagrama de workflow.
Como idea es genial aunque en la práctica conozco muy pocas empresas capaces de explotar estos tipos de softwares.
He recopilado una lista de software orientado a BPM que podéis descargar desde la web del fabricante. La gran mayoría es software libre.
Para dibujar simples diagramas os sugiero
- Visio (Familia Microsoft).
- Open Project
- Procesadores de texto (Open Office, por ejemplo)
- DIA
- BONITA
Para modelar, simular, workflows, etc
- TIBCO
- Eclipse
- NetBeans
- Intalio
Relacionándolo con BI hay productos interesantes como
Espero que lo disfrutéis y nos lo contéis por el blog.
A continuación os pongo un link para el que quiera adentrarse y conocer algo más de BPM: SOA Agenda
Ejemplo de diagrama
Del.icio.us : BPM BAM Análisis SGA Workflow ERP
domingo, 12 de octubre de 2008
QlikView: novedades generales en la versión 8.5
Hoy voy a escribiros las notas que tomé en la presentación de la nueva versión de QlikView del pasado martes en Valencia.No me centraré en la parte del día que se habló del programa para partners y de la filosofía de Qlikview para con su relación con los clientes y partners. Únicamente hablaré de la última parte de la presentación, la parte más técnica, donde Jose Antonio Miguélez (un saludo) explicaba las mejoras de esta versión.
La primera sensación que recuerdo que me transmitió el evento fue de "desilusión" pues vimos pocas mejoras en esta versión, sobre todo si tenemos en cuenta que yo salto de las versiones 6.07 a la 8.x. Esperaba un cambio brutal al saltar 2 versiones pero el interfaz seguía siendo el mismo, el lenguaje de script el mismo, los objetos los mismos, y poco más.
De vuelta a Alicante comencé a "digerir" los conceptos de los que había hablado José Antonio en su ponencia y empecé a ver la luz al final del túnel. En 2 horas estaba en casa, con la versión 8.5 developer en mi portátil, y empezaba a trastear lo que había visto en la demo.
Esta sensación de la que había hablado antes de desilusión, comenzaba a transformarse en sorpresa y admiración. Sí que es cierto que visualmente habían mejorado muy muy poco, en lo que han hecho un esfuerzo importante la gente de Qliktech ha sido en la parte de detrás del telón, en el back-office, no porque hayan incluído 50 sentencias nuevas (no creo que lleguen a 10 las nuevas) sino por que han conseguido que todo sea dinámico, incluyendo las dimensiones y han incluido un set de instrucciones para el manejo de conjuntos que dota a Qlikview de toda la funcionalidad que se podría pedir (como lo llaman ellos SET ANALYSIS). Pero, ¿qué es esto de los conjuntos?, pues intentaré explicarlo lo más sencillo que pueda.

Set Analysis nos va a permitir comparar selecciones entre ellas mismas. Hasta ahora, Qlikview nos muestra los datos que tenemos seleccionados, reduciendo cada vez más según sumamos selecciones en ciertos campos, dejando fuera de la vista los datos excluídos ¿me seguís?. Si tenemos un documento con ventas de 2 años (2006 y 2007), y seleccionamos el valor 2007 para la dimensión AÑO, la suma de las ventas será igual a las ventas del año 2007 y todo el resto del documento estará filtrado a los registros relacionados con el año 2007, con lo que si tuviéramos una gráfica que nos comparara las ventas de estos 2 años, sólo mostraría la expresión para el año 2007.
Con "Set analysis" podemos tener acceso a cualquier conjunto de datos independientemente de las selecciones del usuario; selecciones para uno o más campos, bookmarks, y variables.
Introducen 3 operadores importantes :
- {1}: significa el conjunto completo de datos del documento.
- {0}: o conjunto vacío, sería equivalente a la selección de ningún dato.
- {$}: la/s selección/es actuales. Ojo!, o una selección especificada por nosotros, no por el usuario (una variable, un bookmark, o un valor o varios para un campo).
Un ejemplo directo en QlikView:

La primera columna "Sum({1} Ventas)" : Calcula el total de las ventas para cada dimensión en todo el conjunto de datos sin selecciones
"Sum({1-$} Ventas)": Calcula el total de las ventas menos las selecciones actuales para cada dimensión.
"Sum({$} Ventas)": El total de ventas según las selecciones actuales (vamos, lo normal), para cada valor de la dimensión.
"Sum({$} Ventas )": El total de ventas según las selecciones actuales teniendo como referencia el año 2008 aunque no esté seleccionado, para cada valor de la dimensión.
Ojo en el ejemplo que tengo la dimensión "Nombre Tienda" seleccionada en un valor. Por eso aparecen las cifras "0" en las tiendas que no son "Alicante 1".
Tradicionalmente esto se podía conseguir (en parte) con el operador IF. Con la 8.5 debemos dejar de recurrir a este operador que es mucho menos eficiente (desde el punto de vista del consumo de memoria y de la velocidad de cálculo) que la lógica de conjuntos.
Hay un buen apartado de ejemplos en la ayuda del programa buscando como "análisis de conjuntos" donde explican de una forma muy buena todo el tema de conjuntos. Realmente interesante.
Ahora voy a citar una lista corrida de mejoras en la versión 8.x a mi entender importantes:
- Servidor Web integrado en la solución server (no requiere IIS).
- DSC (Directory Service Connector). Ya no se requiere AD de Microsoft, se puede conectar con otros LDAP.
- DMS: Gestión Integral de documentos. Esto es realmente un logro y los usuarios os lo van a agradecer (aunque nos va a representar algún curro más). Lo que permite DMS es una centralización de todo lo que crea el usuario, ya no se guarda en el registro del usuario, en carpetas por ahí ocultas. Todo se centraliza, bookmarks, objetos, tablas, gráficos, personalizaciones, ...
- Los objetos que el usuario crea (no el programador), pueden ser compartidos al resto de los usuarios (por decisión propia del usuario que es propietario de ese objeto).
- Integración mediante OCX en software de terceros como por ejemplo un PPT (Power Point). (siempre que el usuario que lo abra tenga la licencia correspondiente del cliente).
- Seguridad a nivel de campo.
- Mejoras en la potencia de los informes (tampoco para tirar cohetes pero bueno).
- Búsqueda difusa. Si el usuario maneja y conoce la definición de campos del documento pues se puede hacer búsquedas del tipo "pvp_articulo > 20 and pvp_articulo<40". Por supuesto, siempre que el coco del usuario de para esto ;-)
- Dimensiones dinámicas: la bomba. Ya no tengo por qué definir varias gráficas (clonando) con diferentes dimensiones o crear grupos cíclicos y que el usuario elija de la lista. Podemos combinar como dimensión el uso de la expansión de dólar o utilizar una variable que el usuario puede definir en tiempo de ejecución, pudiendo así crear un objeto "reutilizable" por el usuario para distintos análisis. Pocas herramientas hay que te permitan hacer esto. Pensad bien quien se haya pegado con cubos OLAP, en el coste de cambiar la estructura de nuestros cubos, ¿qué tiempo tardamos en regenerarlo?,¿debe el usuario pasar por nuestro departamento/consultoría para hacer esa petición?. En Qlikview ya no.
- Podemos abrir un documento con una selección determinada (por ejemplo un bookmark de documento) en base a la sección de acceso de nuestro documento. Imaginemos un departamento de compras con 3 compradores (uno compra lo referente a la sección de Gimnasio, otro la sección de Running, y el otro la sección de Bicicletas). Pues podemos filtrarle a cada uno el documento con sus secciones de forma predeterminada aunque luego él puede ver el conjunto de datos.
- Por fin, han introducido el password en el editor de macros. Ya estarán a salvo nuestro código de macro. Una anotación, intentad huir de las macros en la medida de lo posible.
- Podemos abrir un documento sin cargar los datos en el caso de algún error raro o que nuestro equipo donde desarrollamos no tenga suficiente RAM para cargar cierto documento y queremos rectificar el script.
- Podemos cargar campos tipo imagen por ODBC e incluso reducir el tamaño en la recarga.
- Podemos establecer con apenas un par de líneas de código, jerarquías "no-balanceadas" del tipo empleado-superior donde tanto el empleado como su superior se encuentran en la misma tabla. Sentencia "Hierarchy" & "BelongsTo".
- Si empezamos a tener problemas de falta de memoria en alguna recarga o en el acceso, ya está disponible el software compilado para 64bits. Siempre y cuando tengamos una máquina que lo soporte y lo tenga habilitado.
Bueno, pues una vez más espero haberos ayudado en algo.
Un saludo a tod@s
QlikView: Análisis Dupont
Por rizar el rizo, pues me he permitido el lujo de internacionalizarlo y que lo podáis ver en 2 idiomas, inglés y español.martes, 23 de septiembre de 2008
BI ¿lo cualo?
Me gustó una definición que hizo la gente de MicroStrategy: "BI es convertir los datos en información y conocimiento". ;-)
Recuerdo aún el día que me hicieron en la empresa una demo de un software "que era la hostia" (así es como me lo definieron....;-) y nos reunimos.
Yo venía de entornos (software para hoteles) donde nos pagaban por hacer informes y más informes, cada cosa que se le ocurría al director de turno, un informe, y otro, y otro más. De repente me ponen delante un programa (QlikView) que, con no más de 5 minutos, el comercial se había currado un informe de ventas. Hasta ahí, pues bien (era un software más moderno que el SO que yo tenía así que poco mérito, pensé), pero empecé a flipar cuando me dejó el ratón y empecé yo mismo a mover columnas por filas, filas por columnas, agrupar columnas con otras, y todo esto sin rascar nada de código.
El tío me lo dejó instalado una semana y cuando vino a la semana siguiente, ya habíamos montado un pequeño cuadro de mandos de ventas y dirección lo flipaba igual que yo. Sin formación, sin tiempo, sin saber nada, ...¡qué bestia!.
Así fue como "perdí mi virginidad", jeje, y fuí investigando más sobre eso que llamaban BI.
Por intentar definirlo de alguna forma sencilla, yo diría que BI es algo más que una base de datos. Realmente es un mogollón de programas que se utilizan para varias tareas alrededor de algo parecido a una base de datos. En el mundo del BI no se habla de tablas, registros y campos, se habla de cubos, dimensiones, atributos y valores (entre otros). BI se utiliza cuando ya tienes una (o más) bases de datos pero necesitamos sacar valores agregados. Siempre habrá una base de datos relacional por detrás donde se guardan los datos de las transacciones financieras, pedidos, ventas, clientes, proveedores, etc.
Podríamos pensar que con un simple "group by" ya está, y en cierta medida, se parece (espero que me disculpen los que ya tengan experiencia), pero el tema chungo es cuando hablamos de millones de registros con relaciones entre varias o muchas tablas. Por mucho Oracle, Sql Server, CPU, RAM, que tengas, créeme le va a costar algunos minutos una consultita.
Pues bien, el secreto y por lo que se diferencia de las bases de datos relacionales es que BI "precompila" las combinaciones entre las tablas relacionadas de forma que cualquier consulta que pudiéramos pedirle a posteriori ya la tuviera calculada y solo nos la tiene que servir en bandeja. En un artículo que estoy preparando explicaré la diferencia entre las distintas tecnologías OLAP (que es como se llama a la forma de almacenar los datos en un entorno de BI)
Todos los que empezamos en esto creo que pasamos por unas fases y vamos descubriendo las bondades de estos entornos a medida que las utilizamos y hacemos más proyectos. Voy a intentar hacer una lista del uso que le fuí dando yo :
- El primer uso: reporting puro y duro. Por otros temas que no vienen al caso, para mi fue una forma rápida de hacer que los usuarios tuvieran sus listados. Algo como cristal reports pero en plan bestia y rápido.
-El segundo uso: limpiar, limpiar y limpiar. Depuramos la base de datos. Si algo tiene es que te va enseñar registros nulos, incoherentes y errores en un simple vistazo por la forma misma de presentar los datos.
-El tercero: empiezas a hacer algo más que listados y los adornas con indicadores, gráficos, flechas, dibujos, relojes, .... y es cuando los usuarios lo flipan. Ya tienen que ir al departamento de sistemas a pedir que les ordenen un informe, que si tal que si cual, ... ¿no es la leche esto?
-El cuarto: leches!, mi primer cuadro de mandos (llamados por ahí "dashboard") que no es otra cosa que un resumen de ratios, valores e indicadores destinados a tomar decisiones.
-De aquí en adelante ya depende de la herramienta que utilices pues algunas permiten temas avanzados como por ejemplo:
- Enviar alertas cuando suceda algo en la Base de datos (lo llamaremos Cubo mejor).
- Distribuir y entregar los datos a los usuarios de acuerdo a horarios, departamentos, etc.
- Una palabreja de estas raras que se llama "Data-mining" o "minería de datos" que ya hablaré más adelante y que mucha gente dice que es el siguiente paso a instalar BI.
- Integrar tus diseños de indicadores, tablas y gráficos
Y todo esto con un diseño sorprendente e intuitivo.
Cuando hablaba en mi artículo anterior de "Herramientas de BI" me refería a fabricantes de software que han desarrollado plataformas para que alguien como tú (o un consultor externo) monte encima análisis, cuadros de mando y que esto se pueda visualizar. Suele haber 2 entornos mínimo; el del desarrollador y el front-end para visualizar los datos (que al final es de lo que se trata). Además el desarrollador deberá tener varias herramientas paracrear los cubos de datos y otras para "pintar" las pantallas y el formato adecuado para los usuarios.
Como ejemplo os invito a entrar a la web de la gente de QlikView (http://www.qliktech.com/) donde vienen varias demos ilustrativas de herramientas de este tipo (para los que jugáis al golf, os puede ser muy interesante...)
Espero haber ayudado a despejar alguna duda, un saludo.
domingo, 21 de septiembre de 2008
Herramientas para entornos BI

- Web Focus de la gente de Information Builders.
- SAS Intitute
- Business Objects (an SAP Company, no digo más)
- Microstrategy (muy buena pinta)
- QlikView (esta ya os iré comentando en breve). Si puedo adelantaros algo de esta es el corto período de desarrollo en cualquier tipo de proyecto y hablo de incluso horas.
- EBA (Exact Business Analytics), esta estoy deseando que la semana que viene me la dejen probar la gente de Exact, ¡Nacho, por favor, envíame el software!
- MS Analysis Services. Esta no necesita presentación pues es el producto de Microsoft en su versión 2005. También espero comentarla pronto y poner links y casos de éxito.
- Pentaho: Una Suitte completa para BI; reporting, análisis, cuadros de mando, "data mining", e integración de datos, y todo esto Open Source!!!.
- Palo: Esta es una herramienta de Jedox free para entornos windows y linux integrada con MS Excel. Ideal para escenarios financieros (presupuestación y otros) ya que permite introducción de datos desde páginas web desarrolladas sobre Excel. Algo curioso, de verdad.
