Maximiza la reutilización del código con DRY LookML: define una cadena una vez para usarla en todo tu proyecto de LookML

Puedes usar el parámetro constant de LookML dentro del archivo de manifiesto de tu proyecto para definir una cadena que se pueda usar en todo el proyecto. Las constantes de LookML pueden ser útiles cuando necesitas definir una cadena específica (como un número, un nombre o formato HTML para los valores de campo) y reutilizar ese valor en todo el proyecto.

En esta página, se incluyen los siguientes ejemplos de uso de constantes de LookML para definir y mantener valores de cadenas reutilizables en un solo lugar:

Componentes

Requisitos previos

Ejemplo: Usar la misma cadena en las etiquetas de varias exploraciones

Supongamos que quieres crear dos Exploraciones, etiquetadas como Usuarios de San Francisco y Pedidos de San Francisco en la IU, pero no quieres escribir el texto de cada etiqueta de forma manual.

Para ello, puedes definir una constante place_name con el valor "San Francisco" en el archivo de manifiesto del proyecto de tu proyecto:

constant: place_name {
  value: "San Francisco"
}

Luego, se puede hacer referencia a esta constante en cualquier parte de tu proyecto donde se acepte una cadena con la sintaxis @{place_name}. En este ejemplo, puedes definir las exploraciones users y orders, y especificar "@{place_name} Users" y "@{place_name} Orders" como valores para el parámetro label, como en el siguiente ejemplo:


explore: users {
  label: "@{place_name} Users"
}

explore: orders {
  label: "@{place_name} Orders"
}

En este ejemplo, Looker muestra Usuarios de San Francisco y Pedidos de San Francisco en el menú Explorar y en los títulos de las exploraciones, en lugar de las etiquetas predeterminadas Usuarios y Pedidos.

Supongamos que deseas actualizar todas las referencias a San Francisco a Bay Area.

En lugar de tener que actualizar cada referencia de forma manual, solo debes realizar una sola actualización de la constante place_name en el archivo de manifiesto de tu proyecto:

constant: place_name {
  value: "Bay Area"
}

Como definiste la constante place_name, no es necesario que cambies manualmente San Francisco a Bay Area en varios lugares. Las referencias a San Francisco con la constante place_name se reemplazarán por Área de la Bahía, por lo que Looker mostrará Usuarios del Área de la Bahía y Pedidos del Área de la Bahía en el menú Explorar y en los títulos de las exploraciones.

Ejemplo: Aplica el mismo formato a los valores negativos de varios campos

Imagina que deseas que los valores de datos negativos se muestren en rojo y entre paréntesis dondequiera que aparezcan en gráficos o consultas.

Si estableces este formato como el valor de una constante de LookML, puedes especificar el formato solo una vez con variables de Liquid y HTML. Luego, podrás hacer referencia a la constante cada vez que quieras aplicar ese formato a un campo.

Por ejemplo, puedes crear una constante llamada negative_format que puedes usar para aplicar este formato a un campo:


constant: negative_format {
  value: "{% if value < 0 %}
            <p style='color:red;'>({{rendered_value}})</p>
          {% else %}
            {{rendered_value}}
          {% endif %}"
}

Este código crea la constante negative_format, que especifica que los valores de datos negativos deben tener una fuente roja y estar rodeados de paréntesis. Luego, puedes aplicar este formato a las dimensiones y mediciones de tu conjunto de datos con el parámetro html.

Por ejemplo, puedes crear la medida Total Amount de type: sum y especificar @{negative_format} como el valor para el parámetro html:


measure: total_amount {
  type: sum
  value_format_name: usd
  sql: ${amount} ;;
  html: @{negative_format} ;;
}

En tu tabla, los valores negativos de la medida Total Amount tendrán el formato especificado en la definición de la constante negative_format, con una fuente roja y entre paréntesis.

Si deseas aplicar el mismo formato a los valores negativos de otros campos, puedes hacer referencia a la constante negative_format en el parámetro html de esos campos.