Detalles técnicos del editor de expresiones
  • 19 Mar 2023
  • 10 Minutos para leer
  • Colaboradores

Detalles técnicos del editor de expresiones


Article Summary

Visión General

Aquí hay una lista de todos los tipos de datos y funciones dentro del Editor de Expresiones.

Esta lista le ayudará a entender todas las funciones y tipos de datos del Editor de Expresiones.

Aquí hay una guía para usar el Editor de Expresiones en el Editor de Aplicaciones y una guía para usarlo en el Editor Analítico.

Tipos

Cada campo, valor y sub-expresión tiene un tipo de dato que permite al sistema Tulip verificar si tu Expresión es válida. Esto evita que la expresión realice operaciones como añadir 3 a un día de la semana. Mientras tu expresión tenga sentido lógico no deberías encontrarte con ningún error de tipo; sin embargo, si lo haces, el editor mostrará un error con la regla que has violado. El Editor de Expresiones utiliza los siguientes tipos:

  • Texto: Una secuencia de caracteres, como "foo" o "abc123".
  • Entero: Un número entero (un número sin componente fraccionario), como -3, 0 o 5.
  • Número: Cualquier número real, como -3,2, 0, 3 o 4,2345.
  • Intervalo: Una cantidad de tiempo, medida en segundos.
  • Booleano: verdadero o falso.
  • Díade la semana: Un día de la semana, como lunes o sábado.
  • Fecha: Una fecha, como miércoles 29 de noviembre de 2017.
  • Hora: Una hora y una fecha, como miércoles, 29 de noviembre de 2017 a las 13:05 EST.
  • Semana: Una semana, como la semana que comienza el lunes 27 de noviembre de 2017.
  • Mes: Un mes, como noviembre de 2017.
  • Usuario: Cualquier usuario del sistema Tulip, como se describe aquí.
  • Estación: Cualquier estación en el taller, como se describe aquí.
  • App: Cualquier app de Tulip.
  • Versión de aplicación: Una versión de una app, como se describe aquí.

Operadores

¡!

NOT lógico. Devuelve verdadero si y sólo si su argumento es falso.

Ej: @variable.numero_orden_trabajo != 123456

=

Comprueba si el valor de dos operandos son iguales o no, en caso afirmativo, entonces la condición se convierte en verdadera.

Ej: (A = B)

>

Comprueba si el valor del operando izquierdo es mayor que el valor del operando derecho, en caso afirmativo, la condición se cumple.

Ej: (A > B) no es verdadera.

<

Comprueba si el valor del operando izquierdo es menor que el valor del operando derecho, en caso afirmativo, la condición se convierte en verdadera.

Ej: (A < B) es verdadero.

>=

Comprueba si el valor del operando izquierdo es mayor o igual que el valor del operando derecho, en caso afirmativo, la condición se convierte en verdadera.

Ej: (A >= B) no es verdadero.

<=

Comprueba si el valor del operando izquierdo es menor o igual que el valor del operando derecho, en caso afirmativo, la condición se convierte en verdadera.

Ej: (A <= B) es verdadero.

&

AND lógico. Si ambos operandos son distintos de cero, entonces la condición se convierte en verdadera.

Ej: (A & B) es verdadero.

|

Si cualquiera de los dos operandos es distinto de cero, la condición se cumple.

Ejemplo: (A | B) es verdadera.

+

Suma dos operandos

Ej: A + B dará 30

-

Resta el segundo operando del primero

Ej: A - B dará -10

*

Multiplica ambos operandos

Ej: A * B dará 200

/

Divide el numerador por el denominador

Ej: B / A dará 2

%

Da el resto de una división entera

Ej: B % A dará 0

Funciones

Estas son todas las funciones disponibles tanto en el Analytics Editor como en el App Editor. Tenga en cuenta que todos los ejemplos se basan en las finalizaciones de la aplicación. Por tanto, cuando utilice una función MAXIMUM() o MINIMUM(), por ejemplo, estará buscando el valor máximo o mínimo de una variable en todas las finalizaciones de una aplicación.

Editor de análisis y editor de aplicaciones

TEXTTOBOOLEAN()

Convierte texto en un booleano.

"y", "yes", "t", "true" y "on" y cualquier variante en mayúsculas se reconocen como true, y "n", "no", "f" "false" y "off" se reconocen como false.

Ej. TEXTTOBOOLEAN("sí")

TEXTTONUMBER()

Convierte un texto o una marca de tiempo en un número.

Ej. TEXTTONUMBER("2.4")

TEXTTOINTEGER()

Convierte texto o intervalo en un número entero.

Ej. TEXTTOINTEGER("123")

TOTEXT()

Convierte cualquier cosa en texto.

Ej. TOTEXT(2)

REDONDEAR()

Redondea un número al número especificado de decimales. Máximo 3 decimales.

Ej. 1 - ROUND(123.123456, 1)

Devuelve 123.1

Ej. 2 - REDONDEAR(123.12)

Devuelve 123

SEGUNDOS_A_INTERVALO()

Convierte segundos en un intervalo.

SECONDS_TO_INTERVAL(seconds: Entero o Número) => Intervalo

Ej. SEGUNDOS_A_INTERVALO(20) => 0:00:20

LÍMITE()

Redondea al entero más cercano

SUELO()

Redondea hacia abajo al entero más cercano

ENLACE()

Devuelve el primero de los argumentos que no sea nulo.

Ej. LINK(peso, 70)

Esto devolverá el valor de peso si peso tiene un valor

SUSTITUIR()

Dentro de una cadena dada en el primer argumento, sustituye todos los ejemplos del segundo argumento por el tercer argumento

Ej. SUSTITUIR("A734", "7", "3")

Devolverá "A334".

SI()

Basándose en el primer argumento, devuelve el segundo argumento si el primer argumento es verdadero, o el tercer argumento si el primer argumento es falso.

Ej. IF(verdadero, 1, 2)

ROUNDDATETIME()

Trunca un valor Datetime a una unidad dada, como mes o día.

Ej. ROUNDDATETIME*(variable_tiempo_fecha*, "Mes", "América/Nueva_York")

Convierte un datetime a sólo el mes en hora estándar del este.

Nota: El último parámetro, la zona horaria, debe proceder de uno de los nombres de base de datos tz que aparecen aquí.

DATETIMETOTEXT()

Convierte un valor Datetime en un valor de texto fácilmente legible por un ser humano.

Ej. DATETIMETOTEXT*(datetime_variable*, "MMMM DD, YYYY", 'America/New_York')

Esto convertirá una fecha-hora a la hora estándar del Este y la mostrará en formato de fecha tradicional como "1 de enero de 2019".

Nota: El último parámetro, la zona horaria, debe proceder de uno de los nombres de base de datos tz que aparecen aquí.

TEXTTODATETIME()

Convierte un valor de texto en un valor Datetime con los parámetros especificados. Se utiliza normalmente si tiene una función de conector que comparte un Datetime en formato de texto y necesita convertirlo.

IZQUIERDA()

Devuelve una subcadena de un valor de texto, comenzando en la posición especificada por el segundo argumento.

DERECHA()

Devuelve una subcadena de un valor de texto, terminando en la posición especificada por el segundo argumento.

MEDIA()

Devuelve una subcadena de un valor de texto, comenzando en la posición especificada por el segundo argumento. El tercer argumento especifica la longitud del retorno.

DIVIDIR()

Divide un valor de texto en una matriz mediante un delimitador especificado.

ENCONTRAR()

Devuelve la posición en la que se encuentra el primer argumento dentro del segundo.

LEN()

Devuelve la longitud de un valor de texto.

TRIM()

Elimina una subcadena (especificada por el segundo argumento) de la parte anterior y posterior del primer argumento.

REGEX_MATCH()

Devuelve una matriz de coincidencias de expresiones regulares de un valor de texto. Las coincidencias se basan en la expresión regular y los modificadores dados.

ISNULL()

Devuelve true si el argumento es null, en caso contrario false.

Sólo App Editor

ARRAYCONTAINS()

Determina si un valor se encuentra en una matriz.

Ej. ARRAYCONTAINS([1,2,3], 1)

Devuelve "true".

ARRAY_MIN()

Devuelve el mínimo de un array dado

Ej. ARRAY_MIN([1,2,3])

Devuelve 1

ARRAY_MAX()

Devuelve el mínimo de una matriz dada

Ej. ARRAY_MAX([1,2,3])

Devuelve 3

ARRAY_AVG()

Devuelve la media de todos los números de una matriz

Ej. ARRAY_AVG([1,2,3])

Devuelve 2

ARRAY_STDEV_POBLACIÓN()

Devuelve la desviación estándar de la población de una matriz numérica dada

Ej. ARRAY_STDEV_POPULATION([1,2,3])

Devolvería 0.816496580927726

ARRAY_STDEV_SAMPLE()

Devuelve la desviación típica de la muestra de una matriz numérica dada

Ej. ARRAY_STDEV_SAMPLE([1,2,3])

Devuelve 1

ARRAY_CONCAT()

Devuelve una única matriz con todos los elementos de las matrices incluidas en los argumentos. Sólo funciona con matrices del mismo tipo, es decir, todas las matrices de texto.

Ej. ARRAY_CONCAT([1,2],[3,4],[5,6])

Devolvería [1,2,3,4,5,6].

HEX_TO_INT()

Devuelve la representación numérica de una cadena hexadecimal dada.

Ej. HEX_TO_INT('0xAB18') = '43800'

INT_TO_HEX()

Devuelve la representación hexadecimal de un número dado.

Ej. INT_TO_HEX('43800') = '0xAB18'

RANDOMSTRING()

Devuelve una cadena aleatoria de 17 caracteres. Sirve para crear un ID para un nuevo registro de tabla.

MAX()

Sólo App Editor

Devuelve el argumento con el valor más alto

Ej. MAX(var1, var2)

Esto devolverá el valor de var1 si es mayor que el valor de var2

MIN()

Sólo App Editor

Devuelve el argumento con el valor más alto

Ej. MIN(var1, var2)

Devuelve el valor de var1 si es menor que el valor de var2

MAYÚSCULAS()

Convierte una cadena a mayúsculas

MINÚSCULAS()

Convierte una cadena a minúsculas

SIN()

Devuelve el seno de la entrada dada

COS()

Devuelve el coseno de la entrada dada

TAN()

Devuelve la tangente de la entrada dada

ABS()

Devuelve el valor absoluto de un número

SQRT()

Devuelve la raíz cuadrada de un número

SUBIR()

Devuelve el primer argumento elevado al segundo argumento

Ej. POW(3,2)

Devuelve 9

CONTIENE()

Devuelve si una cadena contiene una subcadena dada

Ej. CONTIENE("123ABC", "123")

Devuelve "true".

RAND()

Genera un número decimal aleatorio entre 0 y 1

RANDBETWEEN()

Genera un número entero aleatorio entre dos números especificados

Ej. RANDBETWEEN(5,10)

RANDOM_COLOR()

Genera un color aleatorio

Ej. RANDOM_COLOR() = ##c537a5

RGB(r: Entero, g:Entero, b:Entero) => Color

Devuelve un color de los componentes rojo, verde y azul especificados

Ej. RGB(255, 255, 0) = ##ffff00

RGA(r: Entero, g:Entero, b:Entero, a:Entero) => Color

Devuelve un color de los componentes rojo, verde, azul y alfa especificados

Ej. RGA(255, 255, 0, 0.5) = ##ffff00 (50% opacidad)

MAP_TO_BOOLEAN_LIST*(a:* {} array, b: text) => array

Convierte un array de objetos en un array base para la clave dada

Ej. MAP_TO_BOOLEAN_LIST([{clave: valor}], 'clave') = [valor]

MAP_TO_NUMBER_LIST*(a:* {} array, b: text) => array

Convierte un array objeto en un array base para la clave dada

Ej. MAP_TO_NUMBER_LIST([{clave: valor}], 'clave') = [valor]

MAP_TO_INTEGER_LIST*(a:* {} matriz, b: texto) => matriz

Convierte un array objeto en un array base para la clave dada

Ej. MAP_TO_INTEGER_LIST([{clave: valor}], 'clave') = [valor]

MAP_TO_TEXT_LIST*(a:* {} matriz, b: texto) => matriz

Convierte un array objeto en un array base para la clave dada

Ej. MAP_TO_TEXT_LIST([{clave: valor}], 'clave') = [valor]

USER_ID_TO_USER(id: Texto) => Usuario

Convierte un id de usuario en un objeto usuario

Ej. User_id_to_user("abc") = Usuario

ENCODE_URI(componente: Texto) => Texto

Devuelve una versión de cadena codificada en URL de una URI.

Ej. ENCODE_URI("http://example.com/a=foo&b=a prueba") ="http://example.com/a=foo&b=a%20test"

ENCODE_URI_COMPONENT(componente: Texto) => Texto

Devuelve una versión de cadena codificada en URL de un componente URI.

EJ. ENCODE_URI_COMPONENT("a & b") = "a%20%26%20b"

**TEXTTOIMAGEURL(**url:Texto) => URL de imagen

Convierte una cadena de texto en una URL de imagen.

EJ. TEXTTOIMAGEURL("https://example.com/photo.jpg")

INTERVAL_TO_SECONDS(interval: Intervalo) => Número

Devuelve la longitud de un Intervalo en segundos

EJ. INTERVALO(segundos_a_intervalo(30.0))

ADD_TIME()

Incrementa un valor Datetime en una cantidad y unidad de intervalo especificados.

Ej. ADD_TIME*(variable_tiempo_fecha,* 2, 'años')

RESTAR_TIEMPO()

Disminuye un valor Datetime en una cantidad y unidad de intervalo especificados.

Ej. SUBTRACT_TIME(variable_tiempo_fecha*,* 3, 'meses')

REGEX_REPLACE()

Devuelve una Matriz modificada con los reemplazos de cadena definidos en la expresión.

Ej. REGEX_REPLACE("BaNaNa", "N", "n", "g") = "Plátano"

FILETOTEXT("url: Archivo") => Texto

Convierte Archivo en una cadena de texto de la URL

Ej: FILETOTEXT("http://www.africau.edu/images/default/sample.pdf")

Sólo Analytics Editor

CONTAR()

Devuelve el número de finalizaciones que coinciden con la condición.

Ej. COUNT(temperatura > 70)

CONTARCOMPLETACIONES()

Devuelve el número total de finalizaciones. No toma argumento.

Ej. COUNTOFCOMPLETIONS()

SUMA()

Devuelve la suma de argumentos de todas las finalizaciones.

Ej. SUM(peso)

SUMFILTRADO()

Devuelve la suma de los argumentos de todas las terminaciones, filtrada para que coincida con una condición.

Ej. SUMFILTERED(peso, temperatura > 70)

MEDIA()

Devuelve la media de los argumentos de todas las terminaciones.

Ej. PROMEDIO(peso)

PROMEDIO()

Alias de AVERAGE()

PROMEDIOFILTRADO()

Devuelve la media de los argumentos de todas las terminaciones, filtrada para que coincida con una condición

Ej. AVERAGEFILTERED(peso, temperatura > 70)

AVGFILTRADO()

Alias de AVERAGEFILTERED()

MÁXIMO()

Sólo editor de análisis

Devuelve el máximo de argumentos de todas las terminaciones

EJ. MÁXIMO(peso)

MÁX()

Sólo editor de análisis

Alias de MAXIMUM()

MÍNIMO()

Sólo editor de análisis

Devuelve el mínimo de argumentos de todas las terminaciones

EJ. MÍNIMO(peso)

MIN()

Sólo editor de análisis

Alias de MINIMUM()

MÁXIMOFILTRADO()

Devuelve el máximo de argumentos de todas las terminaciones, filtrado para que coincida con una condición

Ej. MAXIMUMFILTERED(peso, temperatura > 70)

MAXFILTRADO()

Alias de MAXIMUMFILTERED()

MÍNIMOFILTRADO()

Devuelve el mínimo de argumentos, filtrados para que coincidan con una condición

Ej. MINIMUMFILTERED(peso, temperatura > 70)

MINFILTRADO()

Alias de MINIMUMFILTERED()

NULLIF()

La función NULLIF devuelve un valor nulo si argumento_1 es igual a argumento_2, en caso contrario devuelve argumento_1.

Ej. NULLIF(argumento_1, argumento_2)

Esto devolvería null si argument_1 fuera 1 y argument_2 fuera 1


¿Ha encontrado lo que buscaba?

También puedes dirigirte a community.tulip.co para publicar tu pregunta o ver si otras personas se han enfrentado a una pregunta similar.


¿Te ha sido útil este artículo?