Maximiza la reutilización de 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 en el archivo de manifiesto de tu proyecto para definir una string que se pueda usar en todo tu proyecto. Las constantes de LookML pueden ser útiles cuando necesitas definir una string 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 del uso de constantes de LookML para definir y mantener valores de strings reutilizables en un solo lugar:

Componentes

Requisitos previos

Ejemplo: Cómo usar la misma cadena en las etiquetas de varias exploraciones

Supongamos que quieres crear dos exploraciones, etiquetadas como San Francisco Users y San Francisco Orders en la IU, pero no quieres escribir el texto para 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 para tu proyecto:

constant: place_name {
  value: "San Francisco"
}

Luego, se puede hacer referencia a esta constante en cualquier parte del proyecto en la que se acepte una cadena, mediante 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 en San Francisco en el menú Explorar y en los títulos de las exploraciones, en lugar de mostrar las etiquetas Usuarios y Pedidos predeterminados.

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

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

constant: place_name {
  value: "Bay Area"
}

Dado que definiste la constante place_name, no tienes que cambiar manualmente San Francisco a Bay Area en varios lugares. Las referencias a San Francisco con la constante place_name se reemplazarán por Bay Area, 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: aplicar el mismo formato a valores negativos en varios campos

Imagina que quieres que los valores de datos negativos se muestren en rojo y entre paréntesis cuando aparezcan en los informes.

Si estableces este formato como el valor de una constante de LookML, puedes especificar el formato solo una vez con Variables de líquido y HTML. Luego, puedes 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: "{% dynamic if value < 0 %}
            <p style='color:red;'>({{rendered_value}})</p>
          {% dynamic else %}
            {{rendered_value}}
          {% dynamic endif %}"
}

Este código crea la constante negative_format, que especifica que los valores de datos negativos deben tener una fuente roja y estar entre paréntesis. Luego, puedes aplicar este formato a las dimensiones y medidas 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 la tabla, los valores negativos para la medida Total Amount tendrán el formato que se especifica 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 para otros campos, puedes hacer referencia a la constante negative_format en el parámetro html para esos campos.