Funzioni di mappatura della preparazione dati
Le funzioni di preparazione dati possono essere utilizzate per calcolare i valori in base a ciò che viene immesso nei campi sorgente.
Campi
Un nome di campo può essere un qualsiasi identificatore legale: una sequenza illimitata di lettere e cifre Unicode che inizia con una lettera, il simbolo del dollaro ($
) o il carattere di sottolineatura (_
). Anche i nomi delle variabili fanno distinzione tra maiuscole e minuscole.
Se un nome di campo non segue questa convenzione, il nome del campo deve essere racchiuso tra ${}
. Ad esempio, se il nome del campo è "First Name" o "First.Name", il nome deve essere racchiuso come ${First Name}
o ${First\.Name}
rispettivamente.
.
), è necessario utilizzare una barra rovesciata (\
) per eliminare i caratteri speciali. Per ulteriori informazioni, consulta la guida su escape di caratteri speciali.Se il nome di un campo è qualsiasi tra le seguenti parole chiave riservate, deve essere racchiuso con ${}{}
:
new, mod, or, break, var, lt, for, false, while, eq, gt, div, not, null, continue, else, and, ne, true, le, if, ge, return, _errors, do, function, empty, size
Inoltre, le parole chiave riservate includono anche una delle funzioni di mappatura elencate in questa pagina.
È possibile accedere ai dati all’interno dei sottocampi utilizzando la notazione del punto. Ad esempio, se è stato name
oggetto, per accedere al firstName
campo, utilizza name.firstName
.
Elenco delle funzioni
Nelle tabelle seguenti sono elencate tutte le funzioni di mappatura supportate, incluse le espressioni di esempio e i relativi output risultanti.
Funzioni stringa string
- STRING: le stringhe che verranno concatenate.
"Hi, there!"
\
: +, ?, ^, |, ., [, (, {, ), *, $, \
Se si includono più caratteri come delimitatore, il delimitatore verrà considerato come un delimitatore con più caratteri.- STRINGA: Obbligatorio Stringa da dividere.
- REGEX: Facoltativo Espressione regolare che può essere utilizzata per dividere la stringa.
["Hi,", "there"]
- INPUT: Obbligatorio Stringa in cui viene eseguita la ricerca.
- SOTTOSTRINGA: Obbligatorio Sottostringa da cercare all'interno della stringa.
- POSIZIONE_INIZIALE: Facoltativo La posizione da cui iniziare a cercare nella stringa.
- OCCORRENZA: Facoltativo L’ennesima occorrenza da cercare dalla posizione iniziale. Per impostazione predefinita, è 1.
- INPUT: Obbligatorio Stringa di input.
- TO_FIND: Obbligatorio Stringa da cercare all’interno dell’input.
- DA_SOSTITUIRE: Obbligatorio Stringa che sostituirà il valore all’interno di "TO_FIND".
- INPUT: Obbligatorio Stringa di input.
- START_INDEX: Obbligatorio Indice della stringa di input da cui inizia la sottostringa.
- LUNGHEZZA: Obbligatorio Lunghezza della sottostringa.
lcase
- INPUT: Obbligatorio Stringa che verrà convertita in minuscolo.
lcase("HeLo")
caso
- INPUT: Obbligatorio Stringa che verrà convertita in maiuscolo.
ucase("HeLo")
\
: \
. Se si includono più delimitatori, la stringa verrà suddivisa in base a qualsiasi dei delimitatori presenti nella stringa. Nota: Questa funzione restituisce solo indici non nulli dalla stringa, indipendentemente dalla presenza del separatore. Se tutti gli indici, compresi i valori Null, sono necessari nell'array risultante, utilizzare la funzione "explode".- INPUT: Obbligatorio Stringa di input che verrà divisa.
- SEPARATORE: Obbligatorio Stringa utilizzata per dividere l'input.
["Hello", "world"]
- SEPARATORE: Obbligatorio Stringa che verrà utilizzata per unire gli oggetti.
- OGGETTI: Obbligatorio Matrice di stringhe che verranno unite.
join(SEPARATOR, [OBJECTS])
join(" ", to_array(true, "Hello", "world"))
- INPUT: Obbligatorio La stringa che verrà imbottita. Questa stringa può essere null.
- CONTEGGIO: Obbligatorio Dimensione della stringa da aggiungere.
- SPAZIATURA: Obbligatorio Stringa con cui incollare l’input. Se null o vuoto, verrà considerato come un singolo spazio.
- INPUT: Obbligatorio La stringa che verrà imbottita. Questa stringa può essere null.
- CONTEGGIO: Obbligatorio Dimensione della stringa da aggiungere.
- SPAZIATURA: Obbligatorio Stringa con cui incollare l’input. Se null o vuoto, verrà considerato come un singolo spazio.
- STRINGA: Obbligatorio Stringa per la quale si stanno ottenendo i primi "n" caratteri.
- CONTEGGIO: Obbligatorio I caratteri "n" che si desidera ottenere dalla stringa.
- STRINGA: Obbligatorio Stringa per la quale si stanno ottenendo gli ultimi "n" caratteri.
- CONTEGGIO: Obbligatorio I caratteri "n" che si desidera ottenere dalla stringa.
- STRINGA: Obbligatorio Stringa da cui rimuovere lo spazio vuoto.
- STRINGA: Obbligatorio Stringa da cui rimuovere lo spazio vuoto.
- STRINGA: Obbligatorio Stringa da cui rimuovere lo spazio vuoto.
- STRINGA1: Obbligatorio La prima stringa che si desidera confrontare.
- STRINGA2: Obbligatorio Seconda stringa da confrontare.
- STRINGA1: Obbligatorio La prima stringa che si desidera confrontare.
- STRINGA2: Obbligatorio Seconda stringa da confrontare.
Funzioni espressione regolare
- STRINGA: Obbligatorio Stringa da cui si stanno estraendo i gruppi.
- REGEX: Obbligatorio Espressione regolare che si desidera associare al gruppo.
- STRINGA: Obbligatorio La stringa da controllare corrisponde all'espressione regolare.
- REGEX: Obbligatorio L’espressione regolare con cui stai effettuando il confronto.
Funzioni di hashing hashing
- INPUT: Obbligatorio Testo normale con hash.
- CHARSET: Facoltativo Nome del set di caratteri. I valori possibili includono UTF-8, UTF-16, ISO-8859-1 e US-ASCII.
- INPUT: Obbligatorio Testo normale con hash.
- CHARSET: Facoltativo Nome del set di caratteri. I valori possibili includono UTF-8, UTF-16, ISO-8859-1 e US-ASCII.
- INPUT: Obbligatorio Testo normale con hash.
- CHARSET: Facoltativo Nome del set di caratteri. I valori possibili includono UTF-8, UTF-16, ISO-8859-1 e US-ASCII.
- INPUT: Obbligatorio Testo normale con hash.
- CHARSET: Facoltativo Nome del set di caratteri. I valori possibili includono UTF-8, UTF-16, ISO-8859-1 e US-ASCII.
- INPUT: Obbligatorio Testo normale con hash.
- CHARSET: Facoltativo Nome del set di caratteri. I valori possibili includono UTF-8, UTF-16, ISO-8859-1 e US-ASCII.
Funzioni URL url
- URL: Obbligatorio URL da cui estrarre il protocollo.
- URL: Obbligatorio L’URL da cui deve essere estratto l’host.
- URL: Obbligatorio URL da cui estrarre la porta.
- URL: Obbligatorio URL da cui estrarre il percorso.
- PERCORSO_COMPLETO: Facoltativo Valore booleano che determina se viene restituito il percorso completo. Se impostato su false, viene restituita solo la fine del percorso.
- URL: Obbligatorio L’URL da cui stai tentando di ottenere la stringa di query.
- ANCORAGGIO: Obbligatorio Determina l'operazione che verrà eseguita con l'ancoraggio nella stringa query. Può essere uno dei tre valori seguenti: "keep", "remove" o "append".
Se il valore è "keep" (mantieni), l’ancoraggio verrà attaccato al valore restituito.
Se il valore è "remove", l’ancoraggio verrà rimosso dal valore restituito.
Se il valore è "append", l’ancoraggio verrà restituito come valore separato.
get_url_query_str("foo://example.com:8042/over/there?name=ferret#nose", "remove")
get_url_query_str("foo://example.com:8042/over/there?name=ferret#nose", "append")
{"name": "ferret#nose"}
{"name": "ferret"}
{"name": "ferret", "_anchor_": "nose"}
- URL: Obbligatorio L’URL di input con caratteri speciali che desideri sostituire o codificare con caratteri ASCII.
- URL: Obbligatorio L’URL di input con caratteri ASCII che desideri decodificare in caratteri speciali.
Funzioni data e ora date-and-time
date
è disponibile nella sezione date della sezione guida alla gestione del formato dei dati.2021-10-26T10:10:24Z
- DATA: Obbligatorio Data di input, come oggetto ZonedDateTime, che si desidera formattare.
- FORMATO: Obbligatorio Il formato in cui desideri modificare la data.
yyyy-MM-dd HH:mm:ss
")2019-10-23 11:24:35
- TIMESTAMP: Obbligatorio Il timestamp da formattare. Questo è scritto in millisecondi.
- FORMATO: Obbligatorio Il formato che vuoi che la marca temporale diventi.
yyyy-MM-dd'T'HH:mm:ss.SSSX
")2019-10-23T11:24:35.000Z
- DATA: Obbligatorio Stringa che rappresenta la data.
- FORMATO: Obbligatorio Stringa che rappresenta il formato della data di origine.Nota: Questo fa non rappresenta il formato in cui desideri convertire la stringa di data.
- DATA_PREDEFINITA: Obbligatorio Se la data specificata è nulla, viene restituita la data predefinita.
2019-10-23T11:24:00Z
- DATA: Obbligatorio Stringa che rappresenta la data.
- FORMATO: Obbligatorio Stringa che rappresenta il formato della data di origine.Nota: Questo fa non rappresenta il formato in cui desideri convertire la stringa di data.
2019-10-23T11:24:00Z
- DATA: Obbligatorio Stringa che rappresenta la data.
"year"
"yyyy"
"aa"
"quarter"
"qq"
"q"
"month"
"mm"
m"
"dayofyear"
"giorno"
"y"
"giorno"
"gg"
"d"
"week"
"ww"
"w"
"giorno feriale"
"dw"
"w"
"ora"
"hh"
"hh24"
"hh12"
"minute"
"mi"
"n"
"second"
"ss"
"s"
"millisecondi"
"SSS"
- COMPONENTE: Obbligatorio Stringa che rappresenta la parte della data.
- DATA: Obbligatorio La data, in un formato standard.
"year"
"yyyy"
"aa"
"month"
"mm"
m"
"giorno"
"gg"
"d"
"ora"
"hh"
"minute"
"mi"
"n"
"second"
"ss"
"s"
- COMPONENTE: Obbligatorio Stringa che rappresenta la parte della data.
- VALORE: Obbligatorio Il valore da impostare per il componente per una data specificata.
- DATA: Obbligatorio La data, in un formato standard.
- ANNO: Obbligatorio L'anno, composto da quattro cifre.
- MESE: Obbligatorio Il mese. I valori consentiti sono compresi tra 1 e 12.
- GIORNO: Obbligatorio Il giorno. I valori consentiti sono compresi tra 1 e 31.
- ORA: Obbligatorio Ora. I valori consentiti sono compresi tra 0 e 23.
- MINUTO: Obbligatorio Il minuto. I valori consentiti sono compresi tra 0 e 59.
- NANOSECONDI: Obbligatorio I valori dei nanosecondi. I valori consentiti sono compresi tra 0 e 999999999.
- FUSO ORARIO: Obbligatorio Il fuso orario per la data e l’ora.
2019-10-17T11:55:12Z
- DATA: Obbligatorio La data che stai tentando di convertire.
zone_date_to_utc​(2019-10-17T11:55:​12 PST
2019-10-17T19:55:12Z
- DATA: Obbligatorio La data che stai tentando di convertire.
- ZONA: Obbligatorio Fuso orario in cui si sta tentando di convertire la data.
zone_date_to_utc​(now(), "Europe/Paris")
2021-10-26T15:43:59Z
Gerarchie - Oggetti objects
- INPUT: Obbligatorio L'oggetto che si sta tentando di controllare è vuoto.
is_empty([1, null, 2, 3])
- INPUT: Obbligatorio Un raggruppamento di coppie chiave-array.
arrays_to_objects('sku', explode("id1|id2", '\\|'), 'price', [22.5,14.35])
[{ "sku": "id1", "price": 22.5 }, { "sku": "id2", "price": 14.35 }]
- INPUT: Obbligatorio Un elenco semplice di coppie chiave/valore.
{"firstName": "John", "lastName": "Doe"}
- STRINGA: Obbligatorio Stringa analizzata per creare un oggetto.
- DELIMITATORE_VALORE: Facoltativo Delimitatore che separa un campo dal valore. Il delimitatore predefinito è
:
. - DELIMITATORE_CAMPO: Facoltativo Il delimitatore che separa le coppie di valori di campo. Il delimitatore predefinito è
,
.
get()
funzione insieme a str_to_object()
per recuperare i valori per le chiavi nella stringa.- Esempio #1: str_to_object("firstName - John ; lastName - ; - 123 345 7890", "-", ";")
- Esempio #2: str_to_object("firstName - John ; lastName - ; phone - 123 456 7890", "-", ";").get("firstName")
- Esempio #1:
{"firstName": "John", "lastName": "Doe", "phone": "123 456 7890"}
- Esempio #2: "John"
is_set()
funzione.- INPUT: Obbligatorio Percorso da controllare se esiste nei dati di origine.
null
. Da utilizzare quando non si desidera copiare il campo nello schema di destinazione.null
- OGGETTO: Obbligatorio Oggetto da cui verranno estratte le chiavi.
["book1", "book2"]
- STRINGA: Obbligatorio Stringa da analizzare.
- CHIAVE: Obbligatorio Chiave per la quale estrarre il valore.
- DELIMITATORE_VALORE: Obbligatorio Il delimitatore che separa il campo e il valore. Se uno dei due
null
o viene fornita una stringa vuota, questo valore è:
. - DELIMITATORE_CAMPO: Facoltativo Il delimitatore che separa le coppie di campi e valori. Se uno dei due
null
o viene fornita una stringa vuota, questo valore è,
.
- MAPPA: Obbligatorio I dati della mappa di input.
- CHIAVE: Obbligatorio La chiave può essere una singola stringa o una matrice di stringhe. Se viene fornito un altro tipo primitivo (dati/numero), viene trattato come una stringa.
- MAPPA: Obbligatorio Dati della mappa di input
- CHIAVE: Obbligatorio La chiave può essere una singola stringa o una matrice di stringhe. Se viene fornito un altro tipo primitivo (dati/numero), viene trattato come una stringa.
- CHIAVE: Obbligatorio Le chiavi devono essere una stringa. Se vengono forniti altri valori primitivi come numeri interi o date, questi verranno automaticamente convertiti in stringhe e verranno trattati come stringhe.
- ANY_TYPE: Obbligatorio Fa riferimento a qualsiasi tipo di dati XDM supportato, eccetto Mappe.
- OGGETTO: Obbligatorio È possibile fornire un oggetto o un array di oggetti in ingresso e puntare a un attributo all'interno dell'oggetto come chiave.
- OGGETTO: Obbligatorio È possibile fornire un oggetto o un array di oggetti in ingresso e puntare a un attributo all'interno dell'oggetto come chiave.
Per informazioni sulla funzione di copia dell'oggetto, vedere la sezione sotto.
Gerarchie - Array arrays
- INPUT: Obbligatorio Matrice di cui trovare il primo oggetto non Null.
- INPUT: Obbligatorio L’array di cui desideri trovare il primo elemento.
- INPUT: Obbligatorio L’array di cui desideri trovare l’ultimo elemento.
- ARRAY: Obbligatorio Matrice a cui si stanno aggiungendo elementi.
- VALORI: gli elementi che desideri aggiungere alla matrice.
- ARRAY: Obbligatorio Matrice a cui si stanno aggiungendo elementi.
- VALORI: gli array che si desidera aggiungere all’array principale.
- INCLUDE_NULLS: Obbligatorio Valore booleano per indicare se includere o meno valori Null nella matrice di risposta.
- VALORI: Obbligatorio Elementi da convertire in un array.
[1, 2, 3]
- INPUT: Obbligatorio Oggetto di cui stai cercando le dimensioni.
size_of([1, 2, 3, 4])
- ARRAY: Obbligatorio Array a cui aggiungere l’array nel profilo.
upsert_array_append([123, 456])
- ARRAY: Obbligatorio Array che sostituisce l’array nel profilo.
upsert_array_replace([123, 456], 1)
Gerarchie - Mappa map
- INPUT: Obbligatorio Matrice di oggetti di cui trovare il primo oggetto non nullo.
- CHIAVE: Obbligatorio La chiave deve essere un nome di campo nell’array di oggetti e l’oggetto come valore.
- INPUT: Obbligatorio Matrice di oggetti di cui trovare il primo oggetto non nullo.
"{line1 : \"345 park ave\",line2: \"bldg 2\",City : \"san jose\",State : \"CA\",type: \"office\"}"
"{\"firstName\" : \"John\", \"lastName\": \"Doe\"}"
Operatori logici logical-operators
- CHIAVE: Obbligatorio Chiave da associare.
- OPTIONS: Obbligatorio Array piatto di coppie chiave/valore. Facoltativamente, è possibile inserire un valore predefinito alla fine.
Se il codice dello stato dato è "pa", "Pennsylvania".
Se stateCode non corrisponde a quanto segue, "N/D".
- ESPRESSIONE: Obbligatorio Espressione booleana in fase di valutazione.
- TRUE_VALUE: Obbligatorio Il valore che viene restituito se l’espressione restituisce true.
- FALSE_VALUE: Obbligatorio Il valore che viene restituito se l’espressione restituisce false.
Aggregazione aggregation
- OPTIONS: Obbligatorio Uno o più oggetti che possono essere confrontati.
- OPTIONS: Obbligatorio Uno o più oggetti che possono essere confrontati.
Conversioni tipo type-conversions
- STRINGA: Obbligatorio Stringa da convertire in un BigInteger.
- STRINGA: Obbligatorio Stringa da convertire in Double.
- STRINGA: Obbligatorio Stringa da convertire in Mobile.
- STRINGA: Obbligatorio Stringa da convertire in un numero intero.
Funzioni JSON json
- STRINGA: Obbligatorio Stringa JSON da deserializzare.
Operazioni speciali special-operations
GUID
guid()
guid()
c7016dc7-3163-43f7-afc7-2e1c9c206333
fpid_to_ecid
- STRINGA: Obbligatorio Stringa FPID da convertire in ECID.
fpid_to_ecid(STRING)
fpid_to_ecid("4ed70bee-b654-420a-a3fd-b58b6b65e991")
"28880788470263023831040523038280731744"
Funzioni dell’agente utente user-agent
Una qualsiasi delle funzioni dell’agente utente contenute nella tabella seguente può restituire uno dei seguenti valori:
- Telefono - Un dispositivo mobile con uno schermo piccolo (comunemente < 7")
- Mobile: dispositivo mobile non ancora identificato. Questo dispositivo mobile può essere un eReader, un tablet, un telefono, un orologio, ecc.
Per ulteriori informazioni sui valori dei campi dispositivo, leggi elenco dei valori dei campi dispositivo nell'appendice del presente documento.
- USER_AGENT: Obbligatorio Stringa dell’agente utente.
- USER_AGENT: Obbligatorio Stringa dell’agente utente.
- USER_AGENT: Obbligatorio Stringa dell’agente utente.
- USER_AGENT: Obbligatorio Stringa dell’agente utente.
- USER_AGENT: Obbligatorio Stringa dell’agente utente.
- USER_AGENT: Obbligatorio Stringa dell’agente utente.
- USER_AGENT: Obbligatorio Stringa dell’agente utente.
- USER_AGENT: Obbligatorio Stringa dell’agente utente.
Funzioni di Analytics analytics
- STRINGA_EVENTO: Obbligatorio Stringa dell’evento Analytics separato da virgole.
- NOME_EVENTO: Obbligatorio Nome dell’evento da cui estrarre e ID.
- STRINGA_EVENTO: Obbligatorio Stringa dell’evento Analytics separato da virgole.
- NOME_EVENTO: Obbligatorio Nome dell’evento da cui estrarre un valore.
- PRODUCTS_STRING: Obbligatorio La stringa dei prodotti Analytics.
- PRODUCTS_STRING: Obbligatorio La stringa dei prodotti Analytics.
- PRODUCTS_STRING: Obbligatorio La stringa dei prodotti Analytics.
- PRODUCTS_STRING: Obbligatorio La stringa dei prodotti Analytics.
- PRODUCTS_STRING: Obbligatorio La stringa dei prodotti Analytics.
- NOME_EVENTO: Obbligatorio Nome dell’evento da cui estrarre i valori.
- PRODUCTS_STRING: Obbligatorio La stringa dei prodotti Analytics.
- NOME_EVAR: Obbligatorio Nome eVar da estrarre.
Copia oggetto object-copy
È possibile utilizzare la funzione copia oggetto per copiare automaticamente gli attributi di un oggetto senza apportare modifiche alla mappatura. Ad esempio, se i dati di origine hanno una struttura di:
address{
line1: 4191 Ridgebrook Way,
city: San Jose,
state: California
}
e una struttura XDM di:
addr{
addrLine1: 4191 Ridgebrook Way,
city: San Jose,
state: California
}
Quindi la mappatura diventa:
address -> addr
address.line1 -> addr.addrLine1
Nell’esempio precedente, il city
e state
gli attributi vengono acquisiti automaticamente anche in fase di runtime perché address
oggetto mappato a addr
. Se dovessi creare un’ line2
nella struttura XDM e i dati di input contengono anche un line2
nel address
, verranno acquisiti automaticamente anche senza la necessità di modificare manualmente la mappatura.
Per garantire il funzionamento della mappatura automatica, è necessario soddisfare i seguenti prerequisiti:
- Gli oggetti a livello principale devono essere mappati;
- I nuovi attributi devono essere stati creati nello schema XDM;
- I nuovi attributi devono avere nomi corrispondenti nello schema di origine e nello schema XDM.
Se uno dei prerequisiti non è soddisfatto, devi mappare manualmente lo schema di origine allo schema XDM utilizzando la preparazione dati.
Appendice
Di seguito sono riportate ulteriori informazioni sull’utilizzo delle funzioni di mappatura della preparazione dati
Caratteri speciali special-characters
La tabella seguente delinea un elenco di caratteri riservati e dei corrispondenti caratteri codificati.
Valori dei campi dispositivo device-field-values
La tabella seguente illustra un elenco di valori dei campi dispositivo e le relative descrizioni.
useragents
che sono stati modificati da un software di anonimizzazione.useragents
che non contengono informazioni sul dispositivo.useragent
stringa.Esempi di codice code-samples
map_get_values map-get-values
code language-json |
---|
|
map_has_keys map_has_keys
code language-json |
---|
|
add_to_map add_to_map
code language-json |
---|
|
object_to_map object_to_map
Sintassi 1
code language-json |
---|
|
Sintassi 2
code language-json |
---|
|
Sintassi 3
code language-json |
---|
|
array_to_map array_to_map
code language-json |
---|
|