MicroStrategy Pass Through Functions
Joaquin Attanasio

Joaquin Attanasio

Business Intelligence Consultant | Microstrategy Expert | Data Specialist

Otros Artículos:

MicroStrategy Pass Through Functions

Share on linkedin
LinkedIn
Share on facebook
Facebook
Share on twitter
Twitter
Share on whatsapp
WhatsApp

¡Buenos días a todos, una semana más aquí estamos con nuestro #BestInMicro! Un espacio donde nos juntamos a ver curiosidades, compartir experiencias y pasar tips para ser los consultores más cool y con más conocimiento.

Esta semana traigo una funcionalidad muy útil en MicroStrategy: Las funcionalidades Pass-through, que nos permiten agregar a mano una consulta (o, mejor dicho, parte de la consulta) para dar un poco más de flexibilidad a la consulta que queramos crear o utilizar.  

Introducción

También conocida como “Apply” function es una funcionalidad que tiene MicroStrategy, que nos permite escribir de forma manual una consulta en la base de datos. Tiene como característica que nos permite poner variables o parámetros en la consulta, por lo que incluso hay un poco más de flexibilidad a la hora de utilizarlo.

¿Dónde y para qué se utilizan?

Esto depende de la función que estemos utilizando (debajo explicamos cada una), pero, por ejemplo, el ApplyComparison, aparece principalmente a la hora de definir filtros, ya sea de integrados dentro de un reporte o un indicador, o como un objeto filtro per se. Por otro lado, el ApplySimple está más relacionado a la hora de definir indicadores o atributos. En realidad, se puede utilizar en cualquier lugar donde se precise hacer una inyección manual  de codigo a utilizar en una query. 

Para simplificar la explicación, esta función sirve para aplicar expresiones SQL no estándar que MicroStrategy no admite o no soporta.

Apply Comparison
Attention

Tipos de variables

Antes de entrar en detalles de los tipos de Apply Functions, voy a destacar que estas funciones requieren que se les pase ciertas variables por parámetro. Es decir, nosotros crearemos una consulta SQL y le pasaremos un atributo o un valor que será incrustado de forma dinámica en nuestra consulta. 

Por ejemplo, si hacemos la función ApplySimple(«days_between(sysdate,#0)”,Date@ID), estaremos obteniendo los días que han pasado entre hoy y la fecha que estemos utilizando en el atributo date… ¿se entiende? Ponemos entre comillas la consulta que estará inyectado con sus variables (que serán definidas con un # y un número, que definirá el orden), y luego, separados por comas, los campos que rellenaran dichas variables.

Y acá viene un truco importante, así que atenti. Es posible utilizar prompts en lugar de atributos. Pero, para esto, en lugar de utilizar la expresión #n hay que utilizar #En, indicando que estamos insertando un elemento del atributo. Vamos al ejemplo:

Aquí estoy utilizando una función que utiliza el atributo Month y lo reemplaza en el primer parámetro, mientras que utiliza un prompt para el segundo. Un prompt devuelve un elemento, un valor

Applycomparison Month

Esta query terminaría traduciéndose así:

Query Month

¿Qué funciones hay disponibles?

Dependiendo la situación, tenemos distintos tipos de Apply functions. Acá les explico cuales existen, cómo se usan y para qué sirven. Para ver ejemplos de la estructura y entrar más en detalle, les recomiendo que se miren esta nota técnica de MicroStrategy.

ApplySimple

 Se utiliza para crear distintos objetos de MicroStrategy. Sirve para insertar valores no agregables (para esas está el ApplyAgg) y utilizar funciones nativas del motor SQL que estemos consultando. 

Applysimple Greatest

Por ejemplo, aquí vemos como se crea un indicador basado en la formula greatest y pasándole distintos parámetros.

ApplyComparison

Esta function se utiliza principalmente en filtros avanzados. Nos permite escribir a mano la condición que va a aparecer dentro del where. Es importante tener habilitados los filtros avanzados yendo a Tools > My Preferences > Editors > Filters > Show advanced qualifications.

Filtering Options

En este ejemplo, utilizamos el ApplyComparison para agregar el filtro que la descripción del atributo customer city sea la misma que call center

Applycomparison Customer City
Applycomparison Example

ApplyOlap

Este se utiliza cuando se requieren aplicar funciones de procesamiento analítico. Recordemos que nos referimos a realizar ordenamientos, agregaciones, y operaciones dinámicas.

Applyolap

ApplyLogic

Esta función se utiliza en filtros cuando se requiere implementar operadores lógicos (por ejemplo, Y, O y NO). Se caracteriza por tener la respuesta booleana, es decir, por true o false 

Applylogic

ApplyAgg

Estas funciones se utilizan cuando se pueden utilizar funciones agregadas (por ejemplo, Sum).

Applyagg

Conclusiones

Estas funcionalidades son muy útiles en distintos escenarios, en especial cuando se tiene algún tipo de dato complejo de extraer a través del SQL engine propio de MicroStrategy, o cuando simplemente se tienen limitaciones a la hora de crear objetos. 

Es importante considerar el lenguaje en el que se escribe, como mencione anteriormente. No es lo mismo hacer una consulta que será ejecutada en un Oracle que en un Teradata, por ejemplo, por lo que hay que tener especial cuidado en esos aspectos, y analizar bien como queda la query a la hora de generarse.

En fin, espero que haya resultado de utilidad, que les sirva ¡y los espero la próxima semana para un nuevo artículo!

Referencias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Business Data Master Logo

No te pierdas el

WEBINAR
Gratuito

Explicaremos en detalle los contenidos y objetivos del Business Data Master

29/11/2021

18:30 (GTM+1)

Online

BUSINESS DATA MASTER

* Tu información será utilizada exclusivamente para contactarte en relación al Business Data Master. No hacemos spam ni compartimos datos con terceros.