Creazione di espressioni
Informazioni sulla creazione di espressioni
Le espressioni vengono utilizzate in XM Discover per filtrare i dati e trasformarli. Ad esempio, è possibile utilizzare espressioni per modificare la formattazione dei campi data, valutare i dati per i record vuoti ed eseguire calcoli matematici.
Le espressioni possono contenere 4 componenti:
- Costanti: è possibile utilizzare numeri costanti, stringhe di testo e date per eseguire operazioni matematiche e di confronto.
- Campi: è possibile utilizzare i campi numerici, di testo e di data disponibili tramite un connettore dati specifico per eseguire operazioni matematiche e di confronto su tali campi.
- Funzioni: è possibile utilizzare le funzioni per eseguire trasformazioni sui campi e sulle costanti.
- Operatori: è possibile utilizzare gli operatori per eseguire operazioni matematiche e confrontare i campi e le costanti.
Costanti
Le costanti sono numeri, stringhe di testo e date che è possibile utilizzare per eseguire operazioni matematiche e confronti. Ad esempio, puoi utilizzare una data costante, come la data in cui hai lanciato il tuo sondaggio CX annuale, per calcolare l’età della risposta di un partecipante al sondaggio.
Note sull’utilizzo delle costanti:
- Le stringhe di testo vengono trattate come case sensitive. Utilizzare le funzioni UPPER o LOWER come soluzione alternativa per la distinzione tra maiuscole e minuscole.
- Le stringhe di testo e le date devono essere inserite tra virgolette.
- I numeri non richiedono virgolette (un numero all’interno delle virgolette viene trattato come testo).
Campi
I campi sono i campi dati disponibili dal connettore dati in entrata. Ciò include i campi numerici, stringa di testo e data, che è possibile utilizzare per eseguire operazioni matematiche e confronti. Ad esempio, se il set di dati contiene un campo per il compleanno di un cliente, è possibile calcolare l’età del cliente.
Per aggiungere un campo, trascinarlo dalla sezione Campi alla casella Espressione.
I tipi di campo sono etichettati con le seguenti icone:
Funzioni
È possibile utilizzare le funzioni numeriche, testuali e di data elencate in questa sezione.
Per aggiungere una funzione, trascinarla dalla sezione Funzioni alla casella Espressione.
I tipi di funzione sono etichettati con le seguenti icone:
ABS
Restituisce il valore assoluto di un numero.
Sintassi: ABS(numero)
COALESCE
Restituisce il primo valore diverso da null in un elenco.
Sintassi: COALESCE(value1, value2, value3)
CEILING
Restituisce il valore arrotondato per eccesso di un numero.
Sintassi: CEILING(numero)
CONCAT
Unisce più stringhe di testo in una.
Sintassi: CONCAT(“stringa 1”, “stringa 2”, “stringa 3”)
CONTENUTI
Restituisce true se una stringa di testo (“all’interno del testo”) contiene un’altra stringa di testo (“Trova testo”). In caso contrario, restituisce false.
Sintassi: CONTAINS(“all’interno del testo”, “trova testo”)
CONVERT_TO_TIMEZONE
Converte data e ora da un fuso orario a un altro.
Sintassi: CONVERT_TO_TIMEZONE(“data e ora”, “fuso orario da convertire da”, “fuso orario da convertire in”)
Note sulla formattazione della data:
- Fornire i fusi orari utilizzando i relativi nomi database.
- Fornire la data e l’ora in ISO 8601 o aaaa-mm-gg hh:mm:ss.
- Se la data e l’ora vengono fornite con informazioni sul fuso orario, vengono ignorate a favore del parametro “Fuso orario da cui convertire”.
- La data convertita utilizza il formato ISO 8601. Utilizzare la funzione TODATE se è necessario modificarla.
DATETONUMBER
Converte un campo data in un’indicazione data e ora Unix.
Sintassi: DATETONUMBER(“data”)
DATETOTEXT
Converte un campo data in una stringa data nel formato richiesto.
Sintassi: DATETOTEXT(“data”, “formato data”)
DAYOFWEEK
Restituisce il giorno della settimana corrispondente a una data.
Sintassi: DAYOFWEEK(“data”)
DYNAMICLOOKUP
Sostituisce i valori del campo utilizzando una tabella di ricerca caricata dinamicamente. I valori di ricerca vengono rilevati dal campo specificato nel primo argomento (“nome campo”).
Sintassi: DYNAMICLOOKUP(“nome campo”, “valore”)
ELEMENTOFARRAY
Estrai l’ennesimo valore da un array, quindi mappa i valori della matrice agli attributi in XM Discover.
Sintassi: ELEMENTOFARRAY([“elemento array 1”, “elemento array 2”, “elemento array 3”], numero)
Note:
- Se l’input non è una matrice, la funzione genera un errore.
- Se il numero è maggiore delle dimensioni di una matrice, la funzione restituisce null. I numeri in ordine crescente iniziano da 0.
CAMPO
Riporta a capo i nomi dei campi che contengono spazi o punti.
Sintassi: FIELD(“nome campo”)
TROVARE
Individua una stringa di testo (“Trova testo”) all’interno di un’altra stringa di testo (“all’interno di testo”) e restituisce il numero della posizione iniziale di “Trova testo” dal primo carattere di “all’interno del testo” (a partire da 1).
Consente di specificare l’ordine del carattere in “all’interno del testo” in cui avviare la ricerca (a partire da 1). Se si omette order_number, si presume che sia 1.
Restituisce -1 se “Trova testo” non è presente in “all’interno del testo”.
Sintassi: FIND(“trova testo”, “all’interno del testo”, numero_ordine)
FINDFIRST
Individua la prima occorrenza di una stringa di testo (“Trova testo”) all’interno di un’altra stringa di testo (“all’interno di testo”) e restituisce il numero della posizione iniziale di “Trova testo” dal primo carattere di “all’interno del testo” (a partire da 1).
Sintassi: FINDFIRST(“all’interno del testo”, “trova testo”)
FINDLAST
Individua l’ultima occorrenza di una stringa di testo (“Trova testo”) all’interno di un’altra stringa di testo (“all’interno di testo”) e restituisce il numero della posizione iniziale di “Trova testo” dal primo carattere di “all’interno del testo” (a partire da 1).
Sintassi: FINDLAST(“all’interno del testo”, “trova testo”)
FLOOR
Restituisce il valore arrotondato per difetto di un numero.
Sintassi: FLOOR(numero)
GENERATE_ID
Genera un ID univoco. Questa funzione non richiede parametri supplementari.
Sintassi: GENERATE_ID()
GETDAYSBETWEEN
Restituisce il numero di giorni tra due date.
Sintassi: GETDAYSBETWEEN(“data di inizio”, “data di fine”)
GETHOURSBETWEEN
Restituisce il numero di ore tra due date.
Sintassi: GETHOURSBETWEEN(“data di inizio”, “data di fine”)
GETMINUTESBETWEEN
Restituisce il numero di minuti tra due date.
Sintassi: GETMINUTESBETWEEN(“data di inizio”, “data di fine”)
SE
Restituisce un valore se l’istruzione è true e un altro valore se l’istruzione è falsa.
Sintassi: IF(istruzione, “value if true”, “value if false”)
ISBLANK
Restituisce TRUE quando un campo è vuoto e FALSE quando un campo non è vuoto.
Sintassi: ISBLANK(“nome campo”)
JOINARRAY
Unisce una matrice di elementi in una singola stringa con un delimitatore specificato.
Synax: JOINARRAY(array, delimitatore, escape, skipNull, removeDuplicates)
Nella sintassi sopra riportata:
- array: matrice di stringhe o numeri da unire.
- delimitatore: carattere delimitatore da utilizzare quando si unisce la matrice.
- Esci: se true, conservare gli elementi tra virgolette.
- skipNull: se true, saltare gli elementi null.
- removeDuplicated: se true, rimuovere gli elementi duplica.
LEN
Restituisce il numero di lettere in una stringa di testo.
Sintassi: LEN(“text”)
Sintassi: LEN([“text1”, text2])
PIÙ BASSO
Converte il testo in minuscolo.
Sintassi: LOWER(“text”)
MD5HASH
Applica l’hash MD5 ai dati di input per generare ID univoci basati su tali dati.
Sintassi: MD5HASH(“text”)
IDM
Restituisce un numero specifico di caratteri da una stringa di testo, a partire dalla posizione specificata.
La posizione (numero_ordine) inizia da 1.
Sintassi: MID(“testo”, numero_ordine, numero_caratteri)
MOD
Restituisce il resto quando un numero viene diviso per un divisore.
Sintassi: MOD(numero, divisore)
ORA
Restituisce la data e l’ora correnti. Questa funzione non richiede parametri supplementari.
Sintassi: NOW()
NUMBERTODATE
Converte un timestamp Unix in un campo data. Il timestamp Unix è il numero di millisecondi trascorsi dal 1° gennaio 1970.
Sintassi: NUMBERTODATE(numero)
NUMBERTOTEXT
Converte un numero in testo.
Sintassi: NUMBERTOTEXT(numero)
POW
Restituisce il risultato di x alla potenza di y.
Sintassi: POW(x, y)
PROPERCASO
Applica la lettera maiuscola alla prima lettera di una stringa di testo.
Sintassi: PROPERCASE(“text”)
Esempio: PROPERCASE(“la pratica rende perfetta”) si risolve in Practice rende perfetto.
RANDOM
Restituisce un numero reale casuale compreso tra 0 e 1. Questa funzione non richiede parametri supplementari.
Sintassi: RANDOM()
RANDOMBETWEEN
Restituisce un numero intero casuale compreso tra due numeri.
Sintassi: RANDOMBETWEEN(numero minimo, numero massimo)
REMOVEHTMLTAGS
Rimuove i tag HTML da una stringa di testo.
Sintassi: REMOVEHTMLTAGS(“text”)
SOSTITUISCI
Sostituisce parte di una stringa di testo (“testo precedente”) con una stringa di testo diversa (“nuovo testo”) un numero di volte impostato (number_of_replacements) in base al numero di occorrenza del “testo precedente” all’interno di “text” (numero_occorrenza).
Sintassi: REPLACE(“text”, “old text”, “new text”, occorrence_number, case_sensitive, number_of_replacements)
REPLACEBYINDEX
Sostituisce parte di una stringa di testo (“testo precedente”) con una stringa di testo diversa (“nuovo testo”), in base al numero di caratteri specificato.
La posizione (numero_ordine) inizia da 1.
Sintassi: REPLACE(“testo precedente”, numero_ordine, numero_carattere, “nuovo testo”)
REPLACEBYREGEXP
Sostituisce i valori di testo utilizzando espressioni regolari.
Sintassi: REPLACEBYREGEXP(“text”, “espressione regolare per pattern matching”, “espressione regolare per valore sostitutivo”)
ROUND
Restituisce il valore di un numero arrotondato all’intero immediatamente successivo.
Sintassi: ROUND(numero)
CERCA
Individua una stringa di testo (“Trova testo”) all’interno di un’altra stringa di testo (“all’interno di testo”) e restituisce il numero della posizione iniziale di “Trova testo” dal primo carattere di “all’interno del testo” (a partire da 1).
Consente di specificare l’ordine del carattere in “all’interno del testo” in cui avviare la ricerca (a partire da 1). Se si omette order_number, si presume che sia 1.
Restituisce -1 se “Trova testo” non è presente in “all’interno del testo”.
Sintassi: SEARCH(“trovare testo”, “all’interno del testo”, order_number)
SPLIT
Suddivide una determinata stringa in un array di sottostringhe in base a un delimitatore specificato. Questa funzione può essere utilizzata come parametro per le funzioni JOINARRAY o ELEMENTOFARRAY poiché il valore di output deve essere una stringa.
Sintassi: SPLIT(“string_to_split”, “_”)
SUBSTITUTE
Sostituisce “testo precedente” con “nuovo testo” in una stringa di testo.
Consente di specificare quale occorrenza del “testo precedente” si desidera sostituire. Se si specifica numero_occorrenza, viene sostituita solo l’istanza di “testo precedente”. In caso contrario, ogni occorrenza di “testo precedente” nel testo viene modificata in “nuovo testo”.
Sintassi: SUBSTITUTE(“text”, “old text”, “new text”, occorrence_number)
SOTTOSTR
Restituisce una parte di una stringa di testo a partire dal primo carattere della stringa e fino al numero di caratteri specificato (a partire da 1).
Sintassi: SUBSTR(“text”, order_number)
TITLECASE
Applica la lettera maiuscola alla prima lettera di ogni parola di una stringa di testo.
Sintassi: TITLECASE(“text”)
TEXTTODATE
Converte una stringa data in un campo data nel seguente formato: AAAA-MM-GGThh:mm:ssZ.
Sintassi: TEXTTODATE(“data”, “formato data”)
TEXTTONUMBER
Converte il testo in numero.
Sintassi: TEXTTONUMBER(text)
TRANSLATE
Converte i dati in entrata.
Sintassi: TRANSLATE (“codice lingua sorgente”, “codice lingua di destinazione”, “testo”).
Note:
- Questa funzione è disponibile solo per gli account con credenziali API Google Translate
- Per un elenco completo dei codici lingua supportati, fare riferimento alla documentazione di traduzione di Google Cloud.
TRIMLEFT
Rimuove gli spazi dall’estremità sinistra di una stringa di testo.
Sintassi: TRIMLEFT(“text”)
TRIMRIGHT
Rimuove gli spazi dall’estremità destra di una stringa di testo.
Sintassi: TRIMRIGHT(“text”)
UPPER
Converte il testo in maiuscolo.
Sintassi: UPPER(“text”)
Operatori
È possibile utilizzare gli operatori aritmetici e di confronto elencati nelle seguenti tabelle.
Operatori aritmetici
Operatore | Descrizione |
+ | Aggiungi |
– | Sottrai o nega |
* | Moltiplica |
/ | Dividi |
Ad esempio, l’espressione seguente restituirà la media dei due valori numerici.
(RATING1 + RATING2) / 2
Operatori di confronto
Operatore | Descrizione |
== | Uguale a |
> | Maggiore di |
< | Minore di |
>= | Maggiore di o uguale a |
<= | Minore di o uguale a |
!= | È diverso da |
Ad esempio, l’espressione seguente restituisce “rating errato” quando RATING è minore o uguale a 3 e “buona valutazione” quando RATING è maggiore di 3.
IF(VALUTAZIONE <= 3, “Valutazione negativa”, “Valutazione positiva”)
Operatori logici
Utilizzare gli operatori logici per specificare più condizioni quando si utilizzano i filtri di job o funzione IF.
Operatore | Descrizione |
e | La condizione è vera se tutte le condizioni separate da “e” sono vere. |
in | La condizione è vera se esiste una corrispondenza con uno qualsiasi dei valori elencati.
Sintassi: in[“valore 1”, “valore 2”, “valore 3”] Consiglio Q: utilizzare questo anziché più operatori “o”.
|
o | La condizione è vera se una qualsiasi delle condizioni separate da “o” è vera. |
Ad esempio, la seguente espressione restituirà “Mediterraneo” se il campo PAESE contiene uno qualsiasi dei valori specificati. Altrimenti tornerà “Non-Metiterranean”.
IF(LOWER(COUNTRY) in [“france”, “portugal”, “italy”, “spain”, “greece”, “malta”, “cyprus”], “Mediterranean”, “Non-Mediterranean”)
Suggerimenti sintassi
Seguire i seguenti suggerimenti per evitare espressioni non valide:
- Quando si combinano più funzioni in un’espressione, assicurarsi che il numero di parentesi di apertura e chiusura corrisponda.
Esempio: IF(GETDAYSBETWEEN(feedback_date, response_date) > 3, “in ritardo”, “non in ritardo”).
- Per ogni funzione utilizzata nell’espressione, devono essere presenti tutti gli argomenti richiesti. Ad esempio, la funzione TODATE richiede il corretto funzionamento degli argomenti di formato data e data.
- Assicurarsi di utilizzare il tipo di dati corretto supportato da una funzione o da un’operazione aritmetica o di confronto. Ad esempio, la funzione ABS richiede un numero per funzionare correttamente e non funziona su un campo di testo o data.
- Se nell’espressione sono presenti punti (“.”), inserirli con la funzione CAMPO e le virgolette (‘singolo’ o “doppio”). Ad esempio, se si dispone di un campo denominato “agentParticipants.0.agentLoginName”, qui è possibile inserirlo in una trasformazione potenziale:
IF(CONTAINS(LOWER(FIELD(“agentParticipants.0.agentLoginName”)), “bot”),”YES”, “NO”).