- Impresión
Detalles técnicos del editor de expresiones
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()
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.