10 elementos esenciales del plan de proyecto perfecto

Sin Comentarios

MicroStrategy: pasar atributo seleccionado entre Documents o Dashboards

logo_microstrategy

Aunque la navegabilidad en MicroStrategy sigue siendo tarea pendiente, podemos hacer algo de ingeniería para conseguir facilitar el acceso a la información a nuestros usuarios. Disponemos del Drill down para bucear a través de los datos (previamente habiendo configurado las jerarquías de los atributos), en algunas ocasiones nos interesará utilizar un valor de atributo para filtrar un documento nuevo. Por ejemplo, tenemos un grid con una dimensión geográfica y varios KPIs. Para mejorar la comprensión de los datos el cliente nos solicita que sea posible ver los datos en varios niveles de agregación y en detalle la evolución de los KPIs mediante varios gráficos y tablas. Para el primer requisito usaríamos el Drill down de forma que el usuario tenga una foto desagregada al nivel más alto (Región) y los siguientes subniveles (delegación, ciudad, código postal, etc). Para el segundo requisito podemos hacer dos cosas, o bien utilizar un PanelStack como Ventana de información o bien hacer esa ingeniería de la que hablábamos utilizando Prompts o Selecciones dinámicas.

logo_microstrategy

En el repositorio de ayuda de MicroStrategy podemos ver qué son y para qué se utilizan las Selecciones dinámicas. Básicamente lo que nos ofrecen es preguntar al usuario qué quiere ver en un Document en base a los atributos y métricas contenidas en el mismo. Los tipos de Selecciones dinámicas son:

  • Selección dinámica de Definición de Filtro: es una forma de ejecutar un Filtro sobre una jerarquía, seleccionar una métrica, un atributo o elementos de una lista de valores de atributo.
  • Selección dinámica de Objeto: con este prompt podemos seleccionar los objetos (atributos y métricas) que se van a mostrar en el Document
  • Selección dinámica de Expresión o Valor de atributo: el usuario puede introducir una expresión (cadena de texto, fecha o número) para filtrar un atributo o métrica concretos

¿Cómo se puede filtrar un Document con un atributo seleccionado desde otro Document?: Prompts o Selecciones dinámicas

Lo primero que vamos a necesitar son dos Reports independientes. Uno para el Document padre y otro para el hijo que mostrará los datos filtrados. Ambos Reports deben compartir un atributo a través del cual estarán conectados. El resto de atributos y métricas no tienen por qué compartirse. En el Report que servirá como fuente del Document hijo tendremos que añadir una Selección dinámica de tipo Definición de Filtro: lista de elementos de atributo.

Microstrategy: pasar atributo seleccionado de un Document a otro

Crearemos un prompt o selección dinámica con el atributo que vamos a usar de conector. A través del wizard seleccionamos el atributo en cuestión, indicamos los elementos de atributo que estarán disponibles (por defecto se seleccionan todos, pero podemos utilizar un filtro para coger sólo unos pocos o bien seleccionarlos a mano). Podemos configurar el comportamiento en la versión web (básicamente cómo se mostrará la pantalla de selección de elementos de atributo), si permitimos las Respuestas personales que tengan preconfiguradas los usuarios y varios límites de selección. Finalmente podemos añadir si lo consideramos algunas respuestas preseleccionadas. Una vez creada la Selección dinámica la añadimos como Filtro de visualización al Report hijo (incluso si está generado desde un cubo).

Microstrategy: pasar atributo seleccionado de un Document a otro

Ahora crearemos dos Documents o Dashboards. Asignaremos como origen de datos a cada uno los Reports que acabamos de crear según el rol de cada Document (padre e hijo) y creamos una tabla en el padre con el atributo que usaremos de conector (y si lo deseamos, otros atributos o métricas), mientras que en el hijo crearemos varios gráficos y tablas que tengan el mismo atributo. Si utilizáis el Desktop para crear los Documents al guardar os pedirá que confirméis si os debe volver a preguntar por el Prompt o si deseáis que guarde la selección como respuesta por defecto. Os recomiendo que lo guardéis para que os pregunte siempre al abrirlo.

img SRC=”http://www.n4gash.com/wp-content/2016/06/prompts_microstrategy3.png” ALT=”Microstrategy: pasar atributo seleccionado de un Document a otro” TITLE=”Microstrategy: pasar atributo seleccionado de un Document a otro”/>

Para conectar ambos documentos nos vamos a MicroStrategy Web Administrator y abrimos el Document padre. Seleccionamos la vista Diseño o Modo editable. Hacemos clic derecho sobre la cabecera de la tabla, en concreto en la del atributo que usaremos como filtro y pulsamos sobre Editar vínculos….

Microstrategy: pasar atributo seleccionado de un Document a otro

En el nuevo hipervínculo debemos seleccionar el Document hijo que acabamos de crear (pulsamos sobre el botón […] para seleccionar el destino del link). Automáticamente reconoce que tiene una Selección dinámica y la muestra en el listado (en caso de que hubiera varias, las mostraría todas). Por cada Selección dinámica podemos personalizar el comportamiento que tendrá. En nuestro caso queremos que automáticamente al hacer clic en el elemento de atributo del Document padre nos abra un nuevo informe de gráficos con los datos del elemento seleccionado (sin que le solicite al usuario), por lo que debemos configurarlo como Responder dinámicamente. La opción de los Pasar todos los valores de selector la explicaré más adelante, es otra forma de pasar selecciones de un Document a otro, pero en este caso de los valores seleccionados de los Selectores. Pulsamos aceptar y veremos que se subrayan los valores de atributo (no os preocupéis, sólo es en el Modo editable).

Microstrategy: pasar atributo seleccionado de un Document a otro

Si accedemos desde un dispositivo móvil o vía web, observaremos que tendremos un informe con varias métricas y que pulsando sobre el valor del atributo accedemos a un nuevo informe con varios gráficos con datos del atributo seleccionado.

Sin Comentarios

MicroStrategy: Usar URL API para simular el botón Volver Atrás

logo_microstrategy

Por defecto un Documetn o Cuadro de Mando en MicroStrategy tiene una cabecera negra con varios botones (cerrar, volver atrás, compartir, imprimir, etc). Por recomendación para aprovechar al máximo las pantallas de dispositivos móviles se recomienda ocultar esta barra de herramientas, de forma que sólo sea visible si pulsamos en la esquina superior derecha.

MicroStrategy: Usar URL API para simular el botón Volver Atrás

Aunque conseguimos aumentar el tamaño disponible para presentar nuestros datos, estamos perdiendo navegabilidad, ya que para que el usuario pueda volver atrás está obligado a hacer dos clics: primero para abrir la barra de herramientas y luego para volver a atrás ¿solución? crear nuestro propio botón para que ejecute la acción de Volver a atrás.

Veamos un pequeña tabla de ventajas y desventajas de utilizar este método:

Ventajas de usar el botón “Volver a atrás”

  • Mayor velocidad: el Document fuente no debe volver a cargarse, se coge de la caché ya generada
  • Se mantienen las selecciones (selectores, paneles, etc)

Desventajas

  • Si filtramos en el Document target, al volver atrás no se mantienen las selecciones realizadas.

MicroStrategy URL API: botón “Volver atrás”

De nuevo la URL API viene a solventar los problemas de personalización y navegabilidad de las que carece el editor de Documents. La acción por defecto de Volver Atrás en Micro se realiza a través del evento:

mstr://?evt=3124

Para implementarlo podemos utilizar una imagen o un botón. En el primer caso pulsamos botón derecho y accedemos a Propiedades y fromato…. En la pestaña General activamos el checkbox de Es hipervínculo e indicamos la url parametrizada mstr://?evt=3124:

MicroStrategy: Usar URL API para simular el botón Volver Atrás
En el caso de que utilicemos un Botón debemos configurar las acciones del mismo. Hacemos botón derecho sobre el botón y accedemos Propiedades y fromato…. En la pestaña Botón indicamos en el campo Navegar a esta URL la url mstr://?evt=3124.

MicroStrategy: Usar URL API para simular el botón Volver Atrás

MicroStrategy: Usar URL API para simular el botón Volver Atrás

Sin Comentarios

Error MicroStrategy -2147205488: Se superó el número máximo de filas de resultados recuperadas por informe [32000]

logo_microstrategy

El límite por defecto de un proyecto en MicroStrategy 9.4.1 son 32.000 filas. Cuando ejecutamos un informe con dimensiones de alta cardinalidad es muy probable que nos arroje un error al intentar recuperar más filas de las permitidas:

-2147205488 Maximum number of result rows retrieved per report was exceded. 32000

error_microstrategy_2147205488_screen

Para solucionarlo podemos modificar la configuración a nivel de proyecto o de Report. Os recomiendo hacerlo a nivel de informe para controlar comportamientos extraños que de otra forma pasarían desapercibidos (por ejemplo, puede ser que la query que construye el Report esté generando un producto cartesiano porque no están bien mapeados los campos en el Architect). Para ello debemos abrir en Vista de Diseño (Design View) del report en cuestión:

  1. Nos dirigimos a Datos > Propiedades de VLDB…
  2. En la sección de Control (Governance) modificamos los parámetros Intermediate Row Limit y Results Set Row Limit configurándolos con el valor 0 (podemos especificar un límite concreto, dejarlo a 0 para infinitos resultados o -1 para que tome la configuración por defecto del proyecto).
  3. Guardamos los cambios y volvemos a ejecutar el informe.

error_microstrategy_2147205488

En caso de que uses un Cubo Intelligente, tendrás que modificar la configuración a nivel de proyecto. Supongo que será un error y en nuevas versiones solucionarán esta incidencia, porque a pesar de que se pueden configurar los límites en un Cubo, los informes que leen de éste están limitados por la configuración del proyecto.

  1. Hacemos clic derecho sobre el proyecto en la lista de carpetas y pulsamos en Configuración del proyecto….
  2. Desplegamos la opción Reglas Aplicables
  3. En la sección Conjunto de resultados especificamos los parámetros Filas de resultados finales (Cubos Inteligentes y Resto de informes) a 0 (recordad que este valor significa infinitos resultados).

logo_microstrategy

Sin Comentarios

Texturas en alta resolución tileables o seamless

Texturas en alta resolución tileables o seamless

Llevo varias semanas en un proyecto de diseño para crear tapetes para mesas de juego que representen campiñas y zonas rurales. La idea es representar una vista aérea de una porción de terreno, similar a la vista de pájaro de Google Maps. Estos tapetes se imprimen en PVC (material similar a los manteles o hules de casa), lo que permite almacenarlos de forma cómoda ocupando poco espacio.

El primer tapete con el que he empezado representaría una región de la campiña francesa con algunos campos de cereal o arados y una carretera que atraviesa diagonalmente todo el área. Con el fin de representar lo más realista posible cada elemento es necesario utilizar texturas de alta resolución que además sean tileables. Por este término se conoce a las texturas de repetición o seamless que pueden repetirse indefinidamente de manera que coincidan los bordes sin que se noten cortes. Este tipo de texturas se suele utilizar habitualmente en el diseño y modelado 3D para videojuegos.

Texturas en alta resolución tileables o seamless

Aunque podríamos construir nuestras propias texturas tileables con fotografías, photoshop y paciencia, tenemos a nuestra disposición recursos online. La mayoría de texturas de calidad son de pago (sistema similar a las galerías de fotos profesionales, donde pagas una tarifa plana o pago por uso), pero por suerte podemos encontrar mucho material gratis. Sólo debes prestar atención a la resolución según la finalidad. Si buscas texturas para diseñar tapetes para wargames no necesitarás más de 100ppp ya que la impresión en PVC a esta resolución es más que suficiente.

  • Textures: portal de pago, pero si te registras tienes 10 descargas diarias. La calidad y cantidad es increíble, además de que todas las texturas están generadas por fotografías reales. Debes seleccionar texturas “seamless” si sólo quieres texturas tileables.
  • mb3d: especialmente orientadas a videojuegos, no todas las texturas tienen alta resolución válida para imprenta.
  • Texturemate: gran cantidad de texturas, pero la mayoría son diseñadas por ordenador.
Sin Comentarios

MicroStrategy URL API: mejora la navegación de tu cuadros de mando en mobile

MicroStrategy URL API: especificar un panel de un panelstack

Uno de los grandes hándicaps de MicroStrategy 9.4.1. a la hora de diseñar cuadros de mando para mobile (tablets y dispositivos móviles) es la navegación y usabilidad. Especialmente si vienes del diseño web, echarás de menos facilidades para pasar variables de una pantalla a otra para mantener las selecciones (próximamente publicaré una guía para usar prompts en Reports que capturen los atributos seleccionados previamente), ocultar/mostrar elementos, poder activar simultáneamente objetos de distinto tipo de la pantalla (por ejemplo, que un botón me permita seleccionar un valor de atributo y al mismo tiempo, mostrar un panel específico de un PanelStack), implementar la funcionalidad de Volver atrás, etc. Confío que con la versión 10 hayan facilitado y mejorado este aspecto del diseño. Por el momento, tenemos a nuestra disposición la MicroStrategy URL API con la que podemos conseguir evitar algunos baches de usabilidad.

MicroStrategy URL API

Lo que nos permite esta API (podéis consultarla aquí) es a utilizar una URL parametrizada con el protocolo especial mstr:// para ejecutar eventos como abrir un informe, activar la pantalla de configuración, responder a prompts de un informe, activar un panel específico de un panelStack, etc. Lo que vamos a abordar en este artículo es este último punto para mejorar la navegación de un Document. Los PanelStacks o Pilas de paneles son bloques de información que nos permiten implementar en el mismo documento varias pantallas distintas que podemos activar a través de un Selector, deslizando el dedo de hacia los lados (slide)o bien utilizando el URL API

MicroStrategy URL API: especificar un panel de un panelstack

Imaginad un Document en el que tenemos una pantalla principal con varios botones que distribuye el contenido segmentado en categorías a través de un PanelStack en el que cada panel tiene la información (gráficos, grids, KPIs, etc) de cada categoría. En la parte superior del Document queremos tener un listado de filtros que afecten a todas las categorías. Si queremos implementar la navegación por defecto de MicroStrategy tenemos que usar un Selector que active cada panel, pero nuestra idea no es mostrar en la página principal un montón de botones. Queremos mostrar un resumen de información de cada categoría y un botón para ampliar la información. Además, una vez estemos dentro del panel de la categoría, queremos poder volver a la pantalla principal. Esto con los selectores de MicroStrategy no puede hacerse. Por suerte, contamos con la URL API.

MicroStrategy URL API: especificar un panel de un panelstack

Seleccionar un Panel específico de un PanelStack utilizando MicroStrategy URL API

Los botones (tanto los que activan los paneles de las categorías, como los de “volver”) vamos a configurarlos para que el Link aproveche la URL API para activar un panel u otro, incluso paneles de distintos PanelStacks (imaginad que en una categoría queremos cambiar los filtros de la cabecera, que están implementados en otro PanelStack). Vamos a utilizar el evento 2048076:

mstr://?evt=2048076&psKey=XXXX&pKey=YYYY

La URL está formada por:

  • Protocolo especial mstr://
  • Parámetro evt que en este caso es 2048076 (como podéis comprobar en la documentación, cada acción tiene un código de evento, abrir un nuevo documento sería el 2048001).
  • psKey: nos permite especificar el ID del PanelStack
  • pKey: especificamos el ID del Panel

En caso de que busquemos activar paneles de varios PanelStack distintos, simplemente añadimos los IDs correspondientes separados por la barra vertical o slash “|”. Es necesario ordenar correctamente los IDs. En el parámetro psKey indicamos los PanelStacks (x1, x2 y x3), y en el parámetro pKey debemos indicar los paneles correspondientes a cada PanelStacks respetando el orden, es decir, el primer panel que debemos especificar es el del PS “x1”, el segundo será el del panel “x2”, etc.

mstr://?evt=2048076&psKey=x1|x2|x3&pKey=x1y1|x2y1|x3y1

La única forma que tenemos de obtener los IDs es buscándolos en el código fuente desde el editor Microstrategy Web Administrator. Dentro del código buscamos el PanelStack que deseamos activar y el Panel correspondiente. La forma más rápida de hacerlo es utilizando el Inspector de código de Google Chrome (el resto de navegadores tienen algo similar como Herramientas de desarrollador). Pulsamos la tecla F12, nos aparece la ventana del inspector. Pulsamos sobre el botón Inspect y seleccionamos el área del PanelStack. Inmediatamente el código fuente se reposiciona en esta ubicación:

MicroStrategy URL API: especificar un panel de un panelstack

De esta forma, la url completa para activar el Panel B de ese PanelStack sería:

mstr://?evt=2048076&psKey=K143&pKey=K566

MicroStrategy URL API: especificar un panel de un panelstack

Sin Comentarios