Modello di articolo
Informazioni su Building Expressions
Le espressioni vengono utilizzate in XM DISCOVER per filtrare i dati e trasformare i campi dati. Ad esempio, è possibile utilizzare le 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 possono essere utilizzate per eseguire operazioni matematiche e confronti. Ad esempio, è possibile utilizzare una data costante, come la data di lancio del sondaggio annuale sulla CX, per calcolare l’età della risposta di un partecipante al sondaggio.
Note sull’uso delle costanti:
- Le stringhe di testo sono trattate in modo sensibile alle maiuscole e alle minuscole. Utilizzare le funzioni UPPER o LOWER come soluzione per la sensibilità alle maiuscole e alle minuscole.
- Le stringhe di testo e le date devono essere inserite tra virgolette.
- I numeri non hanno bisogno di virgolette (un numero all’interno delle virgolette viene trattato come testo).
Campi
I campi sono i campi dati disponibili dal connettore dati in entrata. Sono inclusi campi numerici, stringhe di testo e date, che possono essere utilizzati per eseguire operazioni matematiche e confronti. Ad esempio, se il dataset contiene un campo per la data di nascita 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 contrassegnati dalle seguenti icone:
Funzioni
È possibile utilizzare le funzioni numeriche, di testo e di data elencate in questa sezione.
Per aggiungere una funzione, trascinarla dalla sezione Funzioni alla casella Espressione.
I tipi di funzione sono contrassegnati dalle seguenti icone:
ABS
Restituisce il valore assoluto di un numero.
Sintassi: ABS(numero)
COALESCE
Lista che restituisce il primo valore non nullo di una lista.
Sintassi: COALESCE(valore1, valore2, valore3)
SOFFITTO
Restituisce il valore arrotondato di un numero.
Sintassi: CEILING(numero)
CONCAT
Unisce diverse stringhe di testo in una sola.
Sintassi: CONCAT(“stringa 1”, “stringa 2”, “stringa 3”)
CONTIENE
Restituisce true se una stringa di testo (“entro il testo”) contiene un’altra stringa di testo (“trova il testo”). Altrimenti restituisce false.
Sintassi: CONTAINS(“all’interno del testo”, “trova testo”)
CONVERTIRE_IN_FUSO_ORARIO
Converte la data e l’ora da una zona all’altra.
Sintassi: CONVERT_TO_TIMEZONE(“data e ora”, “fuso orario da cui convertire”, “zona in cui convertire”)
Note sulla formattazione della data:
- Fornire le zone orarie utilizzando i nomi dei database tz.
- Fornire la data e l’ora in formato ISO 8601 o come aaaa-mm-gg hh:mm:ss.
- Se la data e l’ora sono fornite con informazioni sul fuso orario, queste vengono ignorate a favore del parametro “fuso orario da cui convertire”.
- La data convertita utilizza il formato ISO 8601. Utilizzare la funzione TODATE se si desidera modificare questo dato.
DATAZIONE
Converte un campo data in un timestamp Unix.
Sintassi: DATETONUMERO(“data”)
TESTO DATTICO
Converte un campo data in una stringa di data nel formato richiesto.
Sintassi: DATETOTEXT(“data”, “formato data”)
GIORNO DELLA SETTIMANA
Restituisce il giorno della settimana corrispondente a una data.
Sintassi: GIORNO DELLA SETTIMANA(“data”)
DINAMICOLOOKUP
Sostituisce i valori dei campi utilizzando una tabella di ricerca caricata dinamicamente. I valori della ricerca vengono presi dal campo specificato nel primo argomento (“nome campo”).
Sintassi: DYNAMICLOOKUP(“nome campo”, “valore”)
ELEMENTOFARRAY
Estrarre l’ennesimo valore da un array, quindi mappare i valori dell’array 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 lancia un errore.
- Se il numero è maggiore della dimensione di un array, la funzione restituisce null. I numeri in ordine crescente partono da 0.
CAMPO
Avvolge i nomi campo 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 del 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 dei caratteri in “all’interno del testo” da cui iniziare la ricerca (a partire da 1). Se si omette il numero_ordine, si assume che sia 1.
Restituisce -1 se “trova testo” non viene trovato in “all’interno del testo”
Sintassi: FIND(“trova testo”, “all’interno del testo”, numero_ordine)
FINFIRST
Individua la prima occorrenza di una stringa di testo (“trova testo”) all’interno di un’altra stringa di testo (“all’interno del 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”)
TROVARE
Individua l’ultima occorrenza di una stringa di testo (“trova testo”) all’interno di un’altra stringa di testo (“all’interno del 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”)
PAVIMENTO
Restituisce il valore arrotondato per difetto di un numero.
Sintassi: FLOOR(numero)
ID GENERATO
Genera un ID univoco. Questa funzione non richiede parametri aggiuntivi.
Sintassi: GENERATE_ID()
GIORNATE TRA
Restituisce il numero di giorni tra due date.
Sintassi: GETDAYSBETWEEN(“data inizio”, “data fine”)
OTTENERE ORE TRA
Restituisce il numero di ore tra due date.
Sintassi: GETHOURSBETWEEN(“data inizio”, “data fine”)
OTTENEREMINUTITRA
Restituisce il numero di minuti tra due date.
Sintassi: GETMINUTESBETWEEN(“data inizio”, “data fine”)
SE
Restituisce un valore se l’affermazione è vera e un altro valore se l’affermazione è falsa.
Sintassi: IF(statement, “valore se vero”, “valore se falso”)
ISBLANK
Restituisce VERO quando un campo è vuoto e FALSO quando un campo non è vuoto.
Sintassi: ISBLANK(“nome campo”)
COMUNE
Unisce un array di elementi in una singola stringa con un delimitatore specificato.
Sinassi: JOINARRAY(array, delimitatore, escape, skipNull, removeDuplicates)
Nella sintassi precedente:
- array: array di stringhe o numeri da unire.
- delimitatore: carattere delimitatore da usare per unire l’array.
- escape: se vero, conserva gli elementi quotati.
- skipNull: se vero, salta gli elementi che sono nulli.
- removeDuplicated: Se vero, rimuove gli elementi duplicati.
LEN
Restituisce il numero di lettere in una stringa di testo.
Sintassi: LEN(“testo”)
Sintassi: LEN([“testo1”, testo2])
PIÙ BASSO
Converte il testo in minuscolo.
Sintassi: INFERIORE(“testo”)
MD5HASH
Applica l’hash MD5 ai dati di ingresso per generare ID unici basati su tali dati.
Sintassi: MD5HASH(“testo”)
MID
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 aggiuntivi.
Sintassi: ORA()
NUMERODATA
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
Risultati il risultato di x alla potenza di y.
Sintassi: POW(x, y)
PROPERCASE
Capitalizza la prima lettera di una stringa di testo.
Sintassi: PROPERCASE(“testo”)
Esempio: PROPERCASE(“practice makes perfect”) si risolve in Practice makes perfect.
RANDOMIZZATORE
Restituisce un numero reale casuale compreso tra 0 e 1. Questa funzione non richiede parametri aggiuntivi.
Sintassi: RANDOMIZZATORE()
TRA I DUE
Restituisce un numero intero casuale tra due numeri.
Sintassi: RANDOMBETEN(numero minimo, numero massimo)
RIMUOVERE I TASSI HTML
Rimuove i tag HTML da una stringa di testo.
Sintassi: REMOVEHTMLTAGS(“testo”)
SOSTITUIRE
Sostituisce parte di una stringa di testo (“testo vecchio”) con una stringa di testo diversa (“testo nuovo”) per un determinato numero di volte (numero_di_sostituzioni) in base al numero di occorrenze di “testo vecchio” all’interno di “testo” (numero_occorrenze).
Sintassi: REPLACE(“testo”, “vecchio testo”, “nuovo testo”, numero_occasioni, sensibilità alle maiuscole, numero_di_sostituzioni)
SOSTITUIRE L’INDICE
Sostituisce parte di una stringa di testo (“testo vecchio”) con una stringa di testo diversa (“testo nuovo”), in base al numero di caratteri specificato.
La posizione (numero_ordine) parte da 1.
Sintassi: REPLACE(“vecchio testo”, numero_ordine, numero_caratteri, “nuovo testo”)
SOSTITUIRE CON UNA CASELLA DI TESTO
Sostituisce i valori di testo utilizzando le espressioni regolari.
Sintassi: REPLACEBYREGEXP(“testo”, “espressione regolare per la corrispondenza dei modelli”, “espressione regolare per il valore di sostituzione”)
TONDO
Restituisce il valore di un numero arrotondato al numero intero più vicino.
Sintassi: ROUND(numero)
CERCA
Individua una stringa di testo (“trova testo”) all’interno di un’altra stringa di testo (“all’interno del 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 dei caratteri in “all’interno del testo” da cui iniziare la ricerca (a partire da 1). Se si omette il numero_ordine, si assume che sia 1.
Restituisce -1 se “trova testo” non viene trovato in “all’interno del testo”
Sintassi: SEARCH(“trova testo”, “all’interno del testo”, numero_ordine)
SPLIT
Divide una stringa data 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 uscita deve essere una stringa.
Sintassi: SPLIT(“string_to_split”, “_”)
SOSTITUTIVO
Sostituisce il “vecchio testo” con il “nuovo testo” in una stringa di testo.
Consente di specificare quale occorrenza del “vecchio testo” si desidera sostituire. Se si specifica il numero di occorrenze, viene sostituita solo quell’istanza del “vecchio testo”. Altrimenti, ogni occorrenza di “vecchio testo” nel testo viene cambiata in “nuovo testo”
Sintassi: SUBSTITUTE(“testo”, “vecchio testo”, “nuovo testo”, numero_occorrenza)
SUBSTR
Restituisce una porzione 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(“testo”, numero_ordine)
TITOLARE
Capitalizza la prima lettera di ogni parola in una stringa di testo.
Sintassi: TITLECASE(“testo”)
DATA TESSERA
Converte una stringa di data in un campo data nel seguente formato: AAAA-MM-DDThh:mm:ssZ.
Sintassi: TEXTTODATE(“data”, “formato data”)
TESSUTO
Converte il testo in numero.
Sintassi: TESTO(testo)
TRADURRE
Traduce i dati in entrata.
Sintassi: TRANSLATE (“codice lingua di origine”, “codice lingua di destinazione”, “testo”).
Note:
- Questa funzione è disponibile solo per gli account con credenziali API di Google Translate
- Per una lista completa dei codici lingua supportati, consultare la documentazione di Google Cloud Translation.
TRIMESTRE
Rimuove gli spazi dall’estremità sinistra di una stringa di testo.
Sintassi: TRIMLEFT(“testo”)
TRIMRIGIO
Rimuove gli spazi dall’estremità destra di una stringa di testo.
Sintassi: TRIMRIGHT(“testo”)
SUPERIORE
Converte il testo in maiuscolo.
Sintassi: UPPER(“testo”)
Operatori
È possibile utilizzare gli operatori aritmetici e di confronto elencati nelle seguenti tabelle.
Operatori aritmetici
Operatore | Descrizione |
+ | Aggiungi |
– | Sottrarre o negare |
* | Moltiplica |
/ | Dividi |
Ad esempio, la seguente espressione restituirà la media dei due valori numerici.
(VALUTAZIONE1 + VALUTAZIONE2) / 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, la seguente espressione restituirà “cattiva valutazione” quando RATING è inferiore o uguale a 3 e “buona valutazione” quando RATING è superiore a 3.
IF(RATING <= 3, “valutazione negativa”, “valutazione buona”)
Operatori logici
Usare gli operatori logici per specificare condizioni multiple quando si usa la funzione IF o i filtri di lavoro.
Operatore | Descrizione |
e | Condizione è vera se tutte le condizioni separate da “e” sono vere. |
in | La condizione è vera se c’è una corrispondenza con uno qualsiasi dei valori elencati.
Sintassi: in[“valore 1”, “valore 2”, “valore 3”] Consiglio Q: utilizzare questa funzione al posto di più operatori “o”.
|
o | Condizione è vera se una qualsiasi delle condizioni separate da “o” è vera. |
Ad esempio, la seguente espressione restituirà “Mediterraneo” se il campo PAESE contiene uno dei valori specificati. In caso contrario, il risultato sarà “Non mediterraneo”
SE(LOWER(COUNTRY) in [“france”, “portugal”, “italy”, “spain”, “greece”, “malta”, “cyprus”], “Mediterranean”, “Non-Mediterranean”)
Suggerimenti per la sintassi
Seguite questi consigli per evitare espressioni non valide:
- Quando si combinano più funzioni in un’espressione, assicurarsi che il numero di parentesi di apertura e di chiusura corrisponda.
Esempio: IF(GETDAYSBETWEEN(feedback_date, response_date) > 3, “delayed”, “not delayed”).
- Per ogni funzione utilizzata nell’espressione, devono essere presenti tutti gli argomenti richiesti. Ad esempio, la funzione TODATE richiede sia l’argomento della data che quello del formato della data per funzionare correttamente.
- Assicuratevi di utilizzare il tipo di dati corretto supportato da una funzione o da un’operazione aritmetica o di confronto. Ad esempio, la funzione ABS ha bisogno di un numero per funzionare correttamente e non funziona su un campo di testo o di data.
- Se nell’espressione sono presenti dei punti (“.”), avvolgerli con la funzione FIELD e con le virgolette (singole o doppie). Ad esempio, se si dispone di un campo chiamato “agentParticipants.0.agentLoginName”, ecco come avvolgerlo in una potenziale trasformazione:
IF(CONTAINS(LOWER(FIELD(“agentParticipants.0.agentLoginName”)), “bot”), “YES”, “NO”).