Creación de expresiones
Acerca de la creación de expresiones
Las expresiones se utilizan en XM Discover para filtrar sus datos y transformar campos de datos. Por ejemplo, puede utilizar expresiones para modificar el formato de campo de fecha, evaluar datos para registros vacíos y realizar cálculos matemáticos.
Las expresiones pueden contener 4 componentes:
- Constantes: Puede utilizar números constantes, cadenas de texto y fechas para realizar operaciones matemáticas y de comparación.
- Campos: Puede utilizar campos numéricos, de texto y de fecha disponibles a través de un conector de datos específico para realizar operaciones matemáticas y de comparación en esos campos.
- Funciones: Puede utilizar funciones para realizar transformaciones en sus campos y constantes.
- Operadores: Puede utilizar operadores para realizar operaciones matemáticas y comparar sus campos y constantes.
Constantes
Las constantes son números, cadenas de texto y fechas que puede utilizar para realizar operaciones matemáticas y comparaciones. Por ejemplo, puede utilizar una fecha constante, como la fecha en que lanzó su encuesta anual sobre CX, para calcular la antigüedad de la respuesta de un encuestado.
Notas sobre la utilización de constantes:
- Las cadenas de texto se tratan como sensibles a mayúsculas y minúsculas. Utilice las funciones SUPERIOR o INFERIOR como solución alternativa para distinguir entre mayúsculas y minúsculas.
- Las cadenas de texto y las fechas deben estar entre comillas.
- Los números no necesitan comillas (un número entre comillas se trata como texto).
Campos
Los campos son los campos de datos disponibles desde su conector de datos de entrada. Esto incluye campos numéricos, de cadena de texto y de fecha, que puede utilizar para realizar operaciones matemáticas y comparaciones. Por ejemplo, si el conjunto de datos contiene un campo para el cumpleaños de un cliente, puede calcular la antigüedad del cliente.
Para agregar un campo, arrástrelo desde la sección Campos hasta el cuadro Expresión.
Los tipos de campo se etiquetan con los siguientes iconos:
Funciones
Puede utilizar las funciones numéricas, de texto y de fecha enumeradas en esta sección.
Para agregar una función, arrástrela desde la sección Funciones al cuadro Expresión.
Los tipos de función se etiquetan con los siguientes iconos:
ABS
Devuelve el valor absoluto de un número.
Sintaxis: ABS(número)
COALESCIA
Devuelve el primer valor no nulo de una lista.
Sintaxis: COALESCE(value1, value2, value3)
CEILING
Devuelve el valor redondeado por exceso de un número.
Sintaxis: CEILING(number)
CONCAT
Combina varias cadenas de texto en una.
Sintaxis: CONCAT(“string 1”, “string 2”, “string 3”)
CONTIENE
Devuelve verdadero si una cadena de texto (“dentro del texto”) contiene otra cadena de texto (“buscar texto”). De lo contrario, devuelve falso.
Sintaxis: CONTAINS(“within text”, “find text”)
CONVERT_TO_TIMEZONE
Convierte la fecha y la hora de un huso horario a otro.
Sintaxis: CONVERT_TO_TIMEZONE(“fecha y hora”, “huso horario desde el que convertir”, “huso horario al que convertir”)
Notas sobre el formato de la fecha:
- Proporcione los husos horarios utilizando sus nombres de base de datos tz.
- Indique la fecha y hora en ISO 8601 o como aaaa-mm-dd hh:mm:ss.
- Si la fecha y la hora se proporcionan con información de huso horario, se ignoran a favor del parámetro “huso horario desde el que convertir”.
- La fecha convertida utiliza el formato ISO 8601. Utilice la función TODATE si necesita modificarla.
DATETONUMBER
Convierte un campo de fecha en un cronomarcador Unix.
Sintaxis: DATETONUMBER(“date”)
DATETOTEXT
Convierte un campo de fecha en una cadena de fecha en el formato solicitado.
Sintaxis: DATETOTEXT(“date”, “date format”)
DAYOFWEEK
Devuelve el día de la semana correspondiente a una fecha.
Sintaxis: DAYOFWEEK(“date”)
DYNAMICLOOKUP
Sustituye los valores del campo utilizando una tabla de búsqueda cargada dinámicamente. Los valores de búsqueda se toman del campo especificado en el primer argumento (“nombre de campo”).
Sintaxis: DYNAMICLOOKUP(“nombre de campo”, “valor”)
ELEMENTOFARRAY
Extraiga el enésimo valor de una matriz y, a continuación, asigne los valores de matriz a los atributos de XM Discover.
Sintaxis: ELEMENTOFARRAY([“array element 1”, “array element 2”, “array element 3”], number)
Notas:
- Si la entrada no es una matriz, la función genera un error.
- Si el número es mayor que el tamaño de una matriz, la función devuelve nulo. Los números en orden creciente empiezan desde 0.
CAMPO
Envuelve los nombres de los campos que contienen espacios o puntos.
Sintaxis: FIELD(“nombre de campo”)
ENCONTRAR
Localiza una cadena de texto (“buscar texto”) dentro de otra cadena de texto (“dentro del texto”) y devuelve el número de la posición inicial de “buscar texto” a partir del primer carácter de “dentro del texto” (empezando por 1).
Permite especificar el orden del carácter en “dentro del texto” en el que iniciar la búsqueda (empezando por 1). Si omite order_number, se supone que es 1.
Devuelve -1 si “buscar texto” no se encuentra en “dentro del texto”.
Sintaxis: FIND(“find text”, “within text”, order_number)
FINDFIRST
Localiza la primera aparición de una cadena de texto (“buscar texto”) dentro de otra cadena de texto (“dentro del texto”) y devuelve el número de la posición inicial de “buscar texto” a partir del primer carácter de “dentro del texto” (empezando por 1).
Sintaxis: FINDFIRST(“dentro del texto”, “buscar texto”)
FINALIZAR
Localiza la última aparición de una cadena de texto (“buscar texto”) dentro de otra cadena de texto (“dentro del texto”) y devuelve el número de la posición inicial de “buscar texto” a partir del primer carácter de “dentro del texto” (empezando por 1).
Sintaxis: FINDLAST(“dentro del texto”, “buscar texto”)
FLOOR
Devuelve el valor redondeado por defecto de un número.
Sintaxis: FLOOR(número)
GENERATE_ID
Genera un ID unívoco. Esta función no requiere parámetros adicionales.
Sintaxis: GENERATE_ID()
GETDAYSBETWEEN
Devuelve el número de días entre dos fechas.
Sintaxis: GETDAYSBETWEEN(“fecha de inicio”, “fecha de fin”)
GETHOURSBETWEEN
Devuelve el número de horas entre dos fechas.
Sintaxis: GETHOURSBETWEEN(“fecha de inicio”, “fecha de fin”)
GETMINUTESBETWEEN
Devuelve el número de minutos entre dos fechas.
Sintaxis: GETMINUTESBETWEEN(“fecha de inicio”, “fecha de fin”)
Si
Devuelve un valor si el enunciado es verdadero y otro valor si el enunciado es falso.
Sintaxis: IF(sentencia, “value if true”, “value if false”)
ISBLANK
Devuelve VERDADERO cuando un campo está vacío y FALSO cuando un campo no está vacío.
Sintaxis: ISBLANK(“nombre de campo”)
JOINARRAY
Joins an array of items into a single string with a specified delimiter.
Synax: JOINARRAY(array, delimiter, escape, skipNull, removeDuplicates)
In the above syntax:
- array: array of strings or numbers to join.
- delimiter: delimiter character to use when joining the array.
- escape: if true, preserve quoted elements.
- skipNull: if true, skip elements that are null.
- removeDuplicated: If true, remove duplicate elements.
LEN
Devuelve el número de letras de una cadena de texto.
Sintaxis: LEN(“text”)
Syntax: LEN([“text1”, text2])
INFERIOR
Convierte el texto en minúsculas.
Sintaxis: LOWER(“text”)
MD5HASH
Aplica hash MD5 a los datos de entrada para generar ID únicos basados en esos datos.
Sintaxis: MD5HASH(“text”)
IDM
Devuelve un número específico de caracteres de una cadena de texto, empezando por la posición que especifique.
La posición (order_number) empieza por 1.
Sintaxis: MID(“texto”, número_orden, número_carácter)
MOD
Devuelve el resto cuando un número se divide por un divisor.
Sintaxis: MOD(número, divisor)
AHORA
Devuelve la fecha y la hora actuales. Esta función no requiere parámetros adicionales.
Sintaxis: NOW()
NUMBERTODATE
Convierte un cronomarcador Unix en un campo de fecha. El cronomarcador Unix es el número de milisegundos que han transcurrido desde el 1 de enero de 1970.
Sintaxis: NUMBERTODATE(number)
NUMBERTOTEXT
Convierte un número en texto.
Sintaxis: NUMBERTOTEXT(number)
POW
Devuelve el resultado de x a la potencia de y.
Sintaxis: POW(x, y)
PROPERCASO
Pone en mayúscula la primera letra de una cadena de texto.
Sintaxis: PROPERCASE(“text”)
Ejemplo: PROPERCASE(“la práctica hace perfecto”) resuelve que Practicar hace perfecto.
RANDOM
Devuelve un número real aleatorio entre 0 y 1. Esta función no requiere parámetros adicionales.
Sintaxis: RANDOM()
RANDOMBETWEEN
Devuelve un número entero aleatorio entre dos números.
Sintaxis: RANDOMBETWEEN(cantidad mínima, cantidad máxima)
REMOVEHTMLTAGS
Elimina etiquetas HTML de una cadena de texto.
Sintaxis: REMOVEHTMLTAGS(“text”)
REEMPLAZAR
Reemplaza parte de una cadena de texto (“texto antiguo”) por una cadena de texto diferente (“texto nuevo”) un número determinado de veces (number_of_replacements) basado en el número de ocurrencia de “texto antiguo” dentro de “text” (ocurrence_number).
Sintaxis: REPLACE(“texto”, “texto antiguo”, “texto nuevo”, número_ocurrencia, sensibilidad_de_caso, número_de_sustituciones)
REPLACEBYINDEX
Reemplaza parte de una cadena de texto (“texto antiguo”) por una cadena de texto diferente (“texto nuevo”), en función del número de caracteres que especifique.
La posición (order_number) empieza por 1.
Sintaxis: REPLACE(“texto antiguo”, número_orden, número_caracteres, “texto nuevo”)
REEMPLAZAR YREGEXP
Sustituye los valores de texto mediante expresiones regulares.
Sintaxis: REPLACEBYREGEXP(“texto”, “expresión regular para coincidencia de patrones”, “expresión regular para valor de sustitución”)
ROUND
Devuelve el valor de un número redondeado al entero más cercano.
Sintaxis: ROUND(number)
BUSCAR
Localiza una cadena de texto (“buscar texto”) dentro de otra cadena de texto (“dentro del texto”) y devuelve el número de la posición inicial de “buscar texto” a partir del primer carácter de “dentro del texto” (empezando por 1).
Permite especificar el orden del carácter en “dentro del texto” en el que iniciar la búsqueda (empezando por 1). Si omite order_number, se supone que es 1.
Devuelve -1 si “buscar texto” no se encuentra en “dentro del texto”.
Sintaxis: SEARCH(“find text”, “within text”, order_number)
SPLIT
Splits a given string into an array of substrings based on a specified delimiter. This function can be used as a parameter for JOINARRAY or ELEMENTOFARRAY functions since the output value must be a string.
Syntax: SPLIT(“string_to_split”, “_”)
SUBSTITUTO
Sustituye “texto antiguo” por “texto nuevo” en una cadena de texto.
Permite especificar qué ocurrencia de “texto antiguo” desea sustituir. Si especifica ocurrence_number, solo se sustituirá esa instancia de “texto antiguo”. De lo contrario, cada aparición de “texto antiguo” en el texto se cambia a “texto nuevo”.
Sintaxis: SUBSTITUTE(“texto”, “texto antiguo”, “texto nuevo”, número_ocurrencia)
SUBSTR
Devuelve una parte de una cadena de texto que comienza a partir del primer carácter de la cadena y hasta el número especificado de caracteres (empezando por 1).
Sintaxis: SUBSTR(“text”, order_number)
TITLECASE
Pone en mayúsculas la primera letra de cada palabra en una cadena de texto.
Sintaxis: TITLECASE(“text”)
TEXTTODATE
Convierte una cadena de fecha en un campo de fecha con el siguiente formato: AAAA-MM-DDThh:mm:ssZ.
Sintaxis: TEXTTODATE(“date”, “date format”)
TEXTTONUMBER
Convierte el texto en número.
Sintaxis: TEXTTONUMBER(text)
TRADUCIR
Traduce los datos de entrada.
Sintaxis: TRANSLATE (“código de idioma fuente”, “código de idioma de destino”, “texto”).
Notas:
- Esta función solo está disponible para cuentas con credenciales de API de Google Translate
- Para obtener una lista completa de los códigos de idioma admitidos, consulte la documentación de traducción de Google Cloud.
TRIMLEFT
Elimina espacios del extremo izquierdo de una cadena de texto.
Sintaxis: TRIMLEFT(“text”)
TRIMRIGHT
Elimina espacios del extremo derecho de una cadena de texto.
Sintaxis: TRIMRIGHT(“text”)
SUPERIOR
Convierte el texto en mayúsculas.
Sintaxis: UPPER(“text”)
Operadores
Puede utilizar operadores aritméticos y de comparación enumerados en las siguientes tablas.
Operadores aritméticos
Operador | Descripción |
+ | Añadir |
– | Restar o negar |
* | Multiplicar |
/ | Dividir |
Por ejemplo, la siguiente expresión devolverá el promedio de los dos valores numéricos.
(RATING1 + RATING2) / 2
Operadores de comparación
Operador | Descripción |
== | Igual a |
> | Mayor que |
< | Menor que |
>= | Mayor o igual que |
<= | Menor o igual que |
!= | No es igual a |
Por ejemplo, la siguiente expresión devolverá “mala valoración” cuando RATING sea inferior o igual a 3, y “buena valoración” cuando RATING sea mayor que 3.
IF(RATING <= 3, “mala calificación”, “buena calificación”)
Operadores lógicos
Utilice operadores lógicos para especificar varias condiciones al utilizar la función IF o los filtros de job.
Operador | Descripción |
y | La condición es verdadera si todas las condiciones separadas por “y” son verdaderas. |
en | La condición es verdadera si hay una coincidencia con cualquiera de los valores enumerados.
Sintaxis: en[“valor 1”, “valor 2”, “valor 3”] Consejo Q: Utilice esto en lugar de varios operadores “o”.
|
o | La condición es verdadera si alguna de las condiciones separadas por “o” es verdadera. |
Por ejemplo, la siguiente expresión devolverá “Mediterráneo” si el campo COUNTRY contiene alguno de los valores especificados. De lo contrario, devolverá “no metiterraneo”.
IF(LOWER(COUNTRY) in [“france”, “portugal”, “italy”, “spain”, “greece”, “malta”, “cyprus”], “Mediterranean”, “Non-Mediterranean”)
Consejos de sintaxis
Siga estos consejos para evitar expresiones no válidas:
- Al combinar varias funciones en una expresión, asegúrese de que coincida el número de paréntesis de apertura y cierre.
Ejemplo: IF(GETDAYSBETWEEN(feedback_date, response_date) > 3, “retrasado”, “no retrasado”).
- Para cada función utilizada en la expresión, todos los argumentos necesarios deben estar presentes. Por ejemplo, la función TODATE requiere que los argumentos de formato de fecha y fecha funcionen correctamente.
- Asegúrese de utilizar el tipo de datos correcto admitido por una función o una operación aritmética o de comparación. Por ejemplo, la función ABS necesita un número para funcionar correctamente y no funcionará en un campo de texto o de fecha.
- Si hay puntos (“.”) en su expresión, ajústelos con la función FIELD y las comillas (“single” o “double”). Por ejemplo, si tiene un campo llamado “agentParticipants.0.agentLoginName”, aquí se muestra cómo se ajusta en una transformación potencial:
IF(CONTAINS(LOWER(FIELD(“agentParticipants.0.agentLoginName”)), “bot”),”YES”, “NO”).