Saltar al contenido principal

Domo University Videos

Domo

Preguntas frecuentes sobre Beast Mode

Importante: Cuando haga referencia a esta página fuera de la Base de conocimientos, use este vínculo: http://knowledge.domo.com?cid=beastmodefaqs

Introducción

Obtenga respuesta a las preguntas frecuentes sobre Beast Mode.

¿Cómo puedo empezar a utilizar Beast Mode?

Para obtener información detallada sobre cómo agregar cálculos mediante Beast Mode, consulte Adición de un cálculo en Beast Mode al diagrama. Para acceder a una guía de referencia completa en la que se enumeran todas las funciones por categorías, consulte Guía de referencia sobre las funciones de Beast Mode.

¿Por qué aparece el error "Consulta no válida" cuando intento guardar mi cálculo de Beast Mode?

A continuación, se determinan algunas razones comunes por las que puede aparecer el error de consulta no válida como resultado de prácticas incorrectas de configuración de un cálculo de Beast Mode:

  • Los nombres de columna deben aparecer entre comillas invertidas: `column`. Los usuarios suelen utilizar comillas simples en lugar de invertidas, que es lo que causa el error.

  • Un valor de cadena debe aparecer entre comillas simples: ‘text’.

  • Una declaración CASE siempre debe presentar la estructura CASE, WHEN, THEN y END. Este es un ejemplo de una declaración CASE básica:

    CASE WHEN `column1` = ‘good’ THEN ‘Yes’ ELSE ‘No’ END

    La parte ELSE es opcional; de hecho, si no existe ELSE, el valor será NULO en caso de que no coincida con la primera parte.

Si tiene otras preguntas sobre cómo implementar funciones correctamente en Beast Mode, lea este artículo: Guía de referencia sobre las funciones de Beast Mode

¿Puedo usar operadores "AND" en Beast Mode?

Sí. Por ejemplo, podría hacer lo siguiente en una función CASE:

case when `Name` like 'Ca%' AND `id` < 10 then 0 else 1 end

¿Puedo crear números de resumen personalizados o múltiples con Beast Mode?

Sí. Para obtener información y ejemplos, consulte Cálculos de ejemplo de Beast Mode: creación de un número de resumen personalizado.

¿Puedo hacer una "suma de valores" en Beast Mode?

Sí que puede. Por ejemplo:

CASE WHEN `Status` in ('New Sales','Renewed') THEN SUM(`Revenue`)

ELSE 0

END

Tenga en cuenta, sin embargo, que probablemente no obtendrá el valor sumado que desea, ya que la operación SUM se realiza en la celda en lugar de en la columna. Si no le sirve, considere la posibilidad de usar un número de resumen en lugar de Beast Mode.

¿Puedo hacer comparaciones numéricas con Beast Mode? Por ejemplo, ¿podría crear una declaración CASE para indicar si una cadena está entre un intervalo de números?

No; de hecho, la siguiente declaración CASE de Beast Mode generaría un error:

case when

postcode > 0 then 1

else 0

end

¿Cómo puedo filtrar varias columnas y condiciones?

Supongamos que desea saber cuántas oportunidades de venta de clientes ha cerrado (ganadas o detenidas), pero, con el filtro nativo de Domo, no puede aplicar varias condiciones a un filtro a nivel de fila. Para filtrar varias columnas y condiciones no inclusivas, puede crear un cálculo lógico en Beast Mode.  

Para esta situación, el cálculo de Beast Mode presentaría un formato parecido al siguiente:

CASE

WHEN `opportunity_type` = ‘upsell’ AND `opportunity_won` = ‘true’ THEN ‘Yes’

WHEN `opportunity_type` = ‘upsell’ AND `opportunity_paused` = ‘true’ THEN ‘Yes’

ELSE ‘No’

END

¿Cómo puedo filtrar determinadas fechas?

Supongamos que desea saber cuántas oportunidades cerradas se han ganado al día en un diagrama de barras, pero quiere filtrar valores atípicos, como las oportunidades ganadas en el plazo de 10 días. Para ello, deberá crear un cálculo en Beast Mode para usarlo en el campo Filtro que calculará el tiempo transcurrido desde que la oportunidad se abrió hasta que se cerró y, a continuación, debe categorizar las ventas como “Sí” o “No” según el criterio de que se hayan cerrado o no en el plazo de 10 días.

El cálculo de Beast Mode creado para esto podría llamarse "¿Oportunidades cerradas durante 10 días?" y presentar un formato como el siguiente:

CASE

WHEN DATEDIFF(`Opportunity_Closed_Date`,`Opportunity_Open_Date`) <= 10 THEN ‘Yes’

WHEN DATEDIFF(`Opportunity_Closed_Date`,`Opportunity_Open_Date`) > 10 THEN ‘No’

ELSE ‘Outlier’

END

¿Cómo puedo saber la diferencia entre dos columnas de fecha sin incluir los fines de semana?

Use una función DATEDIFF y, a continuación, reste 2 para cada semana.

¿Cómo puedo filtrar los datos para que el número de resumen coincida con el valor mostrado en la tarjeta?

Supongamos que tiene una tarjeta de mapa de los Estados Unidos que calcula la cantidad de ventas desglosada por estado y que el número de resumen muestra la cantidad total de ventas. Sin embargo, la cantidad total de ventas de la leyenda de la tarjeta de los Estados Unidos es inferior a la cantidad reflejada en el número de resumen. El motivo por el que la cantidad de ventas del número de resumen es mayor es porque el número de resumen tiene en cuenta todas las cantidades de venta, con independencia del país, mientras que la leyenda de la tarjeta solo muestra la cantidades de ventas para los Estados Unidos. Para este escenario, necesitará crear un cálculo de Beast Mode en el que se filtren las cantidades de ventas no correspondientes a los Estados Unidos.

El formato del cálculo de Beast Mode para esto sería parecido al siguiente:

CASE

WHEN `Country` = ‘United States’ THEN ‘Yes’

ELSE ‘No’

END

Para obtener más información sobre los números de resumen, consulte Configuración del número de resumen del diagrama.

¿Puedo utilizar funciones de "Porcentaje de total" en Beast Mode?

No, pero puede insertar una identificación de datos en el diagrama que contenga el valor de porcentaje total; para ello, debe hacer lo siguiente:

  1. En Analyzer, abra Propiedades del diagrama.

  2. En Configuración de identificación de datos, escriba %_PERCENT_OF_TOTAL en el campo Texto.

¿Por qué no puedo insertar cálculos de Beast Mode en el campo Filtro?

El filtro de Analyzer se basa en el filtrado a nivel de fila en el nivel de DataSet, por lo que no filtra las totalizaciones. Para corregir esto, puede usar las herramientas Magic – Extracción, transformación y carga o DataFlow de SQL (Lenguaje de consulta estructurado) para agrupar y totalizar las columnas para el uso de tarjetas y filtros. Para obtener más información sobre estas herramientas, consulte Preparar.

¿Puedo crear un cálculo promedio rotativo mediante Beast Mode?

No puede crear un cálculo promedio rotativo con Beast Mode, pero sí una tarjeta en la que se muestre un promedio trimestral. También puede crear un DataFlow que realice este cálculo. 

Motivo por el que Beast Mode no puede hacer esto:

Una función de Beast Mode se calcula en un único registro o grupo de registros, en función de cómo se agrupen los datos en la tarjeta. Por ello, el cálculo no puede hacer referencia a otros registros. Por ejemplo, si busca un promedio para abril, no puede crear un cálculo que busque en otros registros anteriores a abril para que los sume.

Alternativa 1: Mostrar un promedio trimestral en una tarjeta.

Siga estos pasos para mostrar un promedio trimestral en una tarjeta. 

Para mostrar un promedio trimestral en una tarjeta:

  1. Establezca el detalle por fecha en "por trimestre" en el parte superior de la tarjeta.
    Para obtener más información, consulte Agregar filtros al diagrama.

  2. Agregue las columnas de fechas y valores a los ejes X e Y, respectivamente.
    Para obtener más información, consulte Aplicación de columnas de un DataSet al diagrama.

  3. Defina la opción de totalización de la columna de valores en AVG.

Alternativa 2: Crear un cálculo de DataFlow

Puede crear este cálculo en un DataFlow. La transformación presentaría un aspecto similar a este:

SELECT

  `DateField`

  ,`ValueField`

  ,(SELECT

      SUM(`ValueField`) / COUNT(*) 

    FROM

      TABLE t2

    WHERE

      t2.`DateField` > LAST_DAY(DATE_SUB(t1.`DateField`, INTERVAL 3 MONTH))

      AND t2.`DateField` < LAST_DAY(t1.`DateField`) ) AS `Rolling_Average`

    FROM

      TABLE t1

En esta transformación se supone que el campo de fecha contiene una fecha que representa el mes, por ejemplo, "01-01-2015" para enero.

En el cálculo anterior, se va a hacer lo siguiente: 

  1. Usar una subconsulta para obtener la suma de los valores de los 3 últimos meses.

  2. Dividirlos por el número de registros encontrados en dicho intervalo.

  3. Llamar al campo "Rolling_Average".

También necesitaría cambiar los nombres de los campos "DateField" y "ValueField" y agregar cualquier otro que desee en el DataSet resultante y, a continuación, reemplazar "TABLE" con la tabla del DataSet que va a usar como entrada.

Para obtener más información sobre los DataFlows, consulte Preparar.

¿Cómo puedo crear sumas condicionales con Beast Mode?

Al usar una declaración CASE para crear un cálculo, puede que sea necesario totalizar los resultados de esta declaración CASE. Lamentablemente, muchos usuarios cometen el error de utilizar una función SUM dentro de una declaración CASE:

CASE

WHEN `Column_1` = 'Value_1’

THEN SUM(`Column_1`)

END

En su lugar, debe "ajustar" la declaración completa de una función SUM para que se ejecute correctamente:

SUM(CASE

WHEN `Column_1` = 'Value_1’

THEN SUM(`Column_1`)

END)

¿Cómo puedo totalizar un cálculo de Beast Mode para que esté disponible como número de resumen?

Los usuarios suelen intentar utilizar un cálculo de Beast Mode que contiene una declaración CASE como número de resumen. Para que un valor se utilice como número de resumen, dicho valor debe tener un tipo de datos numérico. Por tanto, si un cálculo contiene solo una declaración CASE, Domo la considerará como un tipo de datos de cadena en lugar de como un tipo de datos numérico.

La solución para ajustar un cálculo con la declaración CASE común en un campo con un tipo de datos numérico es idéntica a nuestra solución de sumas condicionales. Solo tiene que "ajustar" la declaración completa en una función de totalización, como SUM o COUNT, como:

SUM(CASE

WHEN `Column_1` = 'Value_1’

THEN SUM(`Column_1`)

END)

Para obtener más información sobre los números de resumen, consulte Configuración del número de resumen del diagrama.

¿Cómo puedo totalizar una columna existente con Beast Mode?

A veces, los usuarios piensan que la única forma de totalizar una columna consiste en usar un cálculo de Beast Mode. Sin embargo, existe una forma más conveniente basada en utilizar las herramientas en Analyzer de Domo para crear las totalizaciones de un valor que se usa en los ejes X, Y o en las series de la tarjeta en cuestión. Para obtener más información, consulte Totalizar los datos.

¿Cómo puedo ordenar cronológicamente los nombres de los meses en el eje X?

Supongamos que desea mostrar los nombres completos de los meses en el eje X de una tarjeta en lugar de la vista predeterminada de Domo de "Año – Mes abreviado" (por ejemplo, 2015 – Ene), pero al aplicar el campo del nombre del mes a la tarjeta, los meses estarán desordenados y no se ordenarán. Los nombres de los meses se ordenan alfabéticamente en lugar de cronológicamente, ya que la columna del nombre del mes es un tipo de datos de "cadena". Para corregir este comportamiento, puede asignar un valor numérico al nombre de cada mes y, a continuación, usar dicho valor para establecer el orden.

El formato del cálculo de Beast Mode para esto sería parecido al siguiente:

CASE

WHEN `MonthName` = ‘January’ THEN 1

WHEN `MonthName` = ‘February’ THEN 2

WHEN `MonthName` = ‘March’ THEN 3

WHEN `MonthName` = ‘April’ THEN 4

WHEN `MonthName` = ‘May’ THEN 5

WHEN `MonthName` = ‘June’ THEN 6

WHEN `MonthName` = ‘July’ THEN 7

WHEN `MonthName` = ‘August’ THEN 8

WHEN `MonthName` = ‘September’ THEN 9

WHEN `MonthName` = ‘October’ THEN 10

WHEN `MonthName` = ‘November’ THEN 11

WHEN `MonthName` = ‘December’ THEN 12

END

Para obtener más información sobre la clasificación de los datos en un diagrama, consulte Clasificación de los datos del diagrama.

¿Cómo puedo aplicar formato a las fechas del eje X para realizar comparaciones de año contra año?

Supongamos que desea realizar una comparación de año contra año en una tarjeta, pero no sabe cómo empezar. Quizá en el eje X aparecen varios años en lugar de uno solo, por lo que no es posible realizar una comparación. También cabe la posibilidad de que aparezca el error "No existen datos" al aplicar las series para la comparación de año contra año.

Para realizar una comparación de año contra año, debe crear los tres cálculos de Beast Mode siguientes:

  1. Un cálculo llamado "Meses" que aplique formatos a las fechas en el eje X, a fin de que solo se muestre el mes y no el año:

    DATE_FORMAT(`DateColumn`,'%M')
     
  2. Un cálculo llamado "Año contra año" que cree una serie en las que los valores se desglosen por año:

    YEAR(`DateColumn`)
  1. Un cálculo llamado "Orden mensual" que ordene los meses en el eje X:

    MONTH(`DateColumn`)
¿Cómo puedo cambiar una columna de fecha de un tipo de datos de "cadena" a un tipo de datos de "fecha"?

Supongamos que desea usar fechas en la tarjeta, pero que la columna de fechas que desea utilizar se lee como un tipo de datos de "cadena", que da lugar a que los valores de fecha de la columna estén desordenados y que, por tanto, no se puedan ordenar en la tarjeta. Puede cambiar el tipo de datos de una columna que contiene fechas de un valor de cadena a un valor de fecha mediante un cálculo de Beast Mode como se indica a continuación:

STR_TO_DATE(`DateColumn`,’%d/%m/%Y’)

Nota: Asegúrese de que solo los valores de fecha, como 1/1/2016, se utilizan como valores en la columna. De lo contrario, el cálculo no funcionará.

Para obtener más información sobre los tipos de datos, consulte Qué son los datos de diagrama.

¿Cómo puedo aplicar formato a los valores de fecha en el eje X?

Supongamos que desea ver los valores de fecha con un formato específico en lugar del formato de tarjeta estándar. Por ejemplo, en la tarjeta se ve el mes actual por día, de tal forma que los valores de fecha del eje X muestran el día, el mes y el año (por ejemplo, 15-01-2016). Sin embargo, puede que solo desee ver los valores de día y mes (15-01).

Puede cambiar la visualización de los valores de fecha para que solo vea el día y el mes, con la función DATE_FORMAT() para dar formato a los valores de fecha:

DATE_FORMAT(`DateColumn`,’%d-%m’)

También puede dar formato a las fechas en Propiedades del diagrama. Para obtener más información, consulte Modificación del formato de fecha del diagrama.

¿Cómo puedo cambiar la columna de fecha para que represente una zona horaria distinta?

Puede ajustar la zona horaria de la empresa en Configuración del administrador, como se describe aquí: Configuración de la zona horaria de la empresa

Sin embargo, algunas veces será necesario usar Beast Mode cuando las zonas horarias no coincidan entre DataSets.

Supongamos que las fechas de la columna de fechas de una tarjeta se basan en la zona horaria EST, mientras que su empresa tiene la zona horaria PST, y que desea ver los datos basados en PST y no en EST. Puede cambiar los valores de fecha a otra zona horaria; para ello, debe sumar o restar la hora a los valores de fecha en función de cuál sea la zona horaria a la que quiere cambiar. Las funciones para sumar y restar horas son DATE_ADD() y DATE_SUB(). Por ejemplo, para cambiar los valores de fecha de EST a PST, sería necesario restar 3 horas, para lo que se puede utilizar un cálculo de Beast Mode como el siguiente:

DATE_SUB(`DateColumn`, interval 3 HOUR)

¿Puedo usar Beast Mode para calcular el cambio porcentual (%) del año anterior con respecto al actual?

Este tema se trata aquí: Cálculos de ejemplo de Beast Mode: Cálculo del cambio porcentual del año anterior con respecto al actual.

¿Cómo puedo crear un diagrama de período contra período con Beast Mode?

Este tema se trata aquí: Cálculos de ejemplo de Beast Mode: Creación de un diagrama de período contra período.

¿Cómo puedo dividir por un valor NULO o por cero?

Puede dividir por un valor NULO o por cero mediante la siguiente declaración CASE:

CASE

WHEN iFNULL(`value2`,0) = 0 THEN 0

ELSE `value1` / `value2`

END

¿Cómo puedo crear una suma condicional?

Al usar una declaración CASE para crear un cálculo, puede que sea necesario totalizar los resultados de esta declaración CASE. Lamentablemente, muchos usuarios cometen el error de utilizar la función SUM dentro de una declaración CASE, como en el caso siguiente:

CASE WHEN `Column_1` = 'Value_1’ THEN SUM(`Column_1`) END

En su lugar, debe "ajustar" la declaración completa de una función SUM para que se ejecute correctamente:

SUM(CASE WHEN `Column_1` = 'Value_1’ THEN SUM(`Column_1`) END)

He agregado un cálculo compartido, pero parece que solo se muestra en las nuevas tarjetas.  ¿Existe alguna forma de usarlo en las tarjetas existentes?

Cuando se comparte un cálculo de Beast Mode, se almacena en la fuente de datos que alimenta la tarjeta. El cálculo compartido se encuentra disponible en otras tarjetas alimentadas por esa misma fuente de datos.

¿Qué puedo hacer si mi cálculo de Beast Mode "desaparece" después de guardarlo?

La causa más común de este problema es que varios usuarios editan la misma tarjeta al mismo tiempo, provocando así que los cambios de cada uno se sobrescriban. Si el cálculo de Beast Mode se comparte en el DataSet, la causa también puede ser que los usuarios editan distintas tarjetas en el DataSet, de tal forma que los cambios de cada uno se sobrescriben en los cálculos de Beast Mode compartidos en dicho DataSet.

La solución más sencilla a este problema es establecer una coordinación con otros usuarios para asegurarse de no sobrescribir los cambios de los demás, o bien realizar ediciones cuando los demás no vayan a hacerlas.

Este problema también se plantea al intentar crear cálculos de Beast Mode en una tarjeta en una ruta de sondeo. Como las tarjetas de una ruta de sondeo no son tarjetas reales, los cálculos de Beast Mode creados en un ruta de sondeo no se guardarán. Para asegurarse de que los cálculos se guardan, deben crearse en la capa superior de la tarjeta y la casilla Compartir cálculo en DataSet debe estar marcada. Para obtener más información sobre la ruta de sondeo, consulte Agregar rutas de sondeo a un diagrama.

¿Cómo trato los valores NULOS al agregar columnas?

Si intenta SUMAR los valores de una columna con valores NULOS, necesita convertir dichos valores a cero mediante la función IFNULL.

Por ejemplo:

IFNULL(`col`,0)

Por tanto, supongamos que tiene una columna "Categoría" con los valores "A", "B" y "C", además de una columna "Cantidad" con los valores "20", "10" y una celda vacía (cuyo valor es NULO). Al SUMAR la columna Cantidad, el cálculo IFNULL convierte el valor NULL a 0 y luego aplica la SUMA de la forma habitual.

¿Puedo usar vínculos para localizar direcciones URL de archivos en los cálculos de Beast Mode?

No en este momento.