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 qualsiasi identificatore legale, ovvero una sequenza di caratteri Unicode e cifre di lunghezza illimitata, 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 con ${}
. Pertanto, 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, leggere la guida su escape di caratteri speciali.Se un nome di campo è any delle 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. Se ad esempio è presente un oggetto name
, per accedere al campo firstName
utilizzare 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 includi più caratteri come delimitatore, il delimitatore verrà trattato come un delimitatore con più caratteri.- STRING: Obbligatorio La stringa da dividere.
- REGEX: Facoltativo L'espressione regolare che può essere utilizzata per dividere la stringa.
["Hi,", "there"]
- INPUT: Obbligatorio Stringa in cui viene eseguita la ricerca.
- SUBSTRING: Obbligatorio La sottostringa da ricercare all'interno della stringa.
- START_POSITION: Facoltativo La posizione da cui iniziare a cercare nella stringa.
- OCCORRENZA: Facoltativa 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.
- TO_REPLACE: Obbligatorio Stringa che sostituirà il valore in "TO_FIND".
- INPUT: Obbligatorio Stringa di input.
- START_INDEX: Obbligatorio Indice della stringa di input da cui inizia la sottostringa.
- LUNGHEZZA: Obbligatorio La lunghezza della sottostringa.
lcase
- INPUT: Obbligatorio Stringa che verrà convertita in minuscolo.
lcase("HeLLo")
ucase
- INPUT: Obbligatorio Stringa che verrà convertita in maiuscolo.
ucase("HeLLo")
\
: \
. Se si includono più delimitatori, la stringa verrà divisa su qualsiasi dei delimitatori presenti nella stringa. Nota: questa funzione restituisce solo indici non Null 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 verrà unita in join.
join(SEPARATOR, [OBJECTS])
join(" ", to_array(true, "Hello", "world"))
- INPUT: Obbligatorio Stringa che verrà aggiunta. Questa stringa può essere null.
- COUNT: Obbligatorio dimensione della stringa da aggiungere.
- PADDING: Obbligatorio Stringa con cui incollare l'input. Se null o vuoto, verrà considerato come un singolo spazio.
- INPUT: Obbligatorio Stringa che verrà aggiunta. Questa stringa può essere null.
- COUNT: Obbligatorio dimensione della stringa da aggiungere.
- PADDING: Obbligatorio Stringa con cui incollare l'input. Se null o vuoto, verrà considerato come un singolo spazio.
- STRINGA: Obbligatoria Stringa per la quale si stanno ottenendo i primi "n" caratteri.
- COUNT: Obbligatorio I caratteri "n" che si desidera ottenere dalla stringa.
- STRINGA: Obbligatoria Stringa per la quale si stanno ottenendo gli ultimi "n" caratteri.
- COUNT: Obbligatorio I caratteri "n" che si desidera ottenere dalla stringa.
- STRING: Obbligatorio Stringa da cui rimuovere lo spazio vuoto.
- STRING: Obbligatorio Stringa da cui rimuovere lo spazio vuoto.
- STRING: Obbligatorio Stringa da cui rimuovere lo spazio vuoto.
- STRING1: Obbligatorio La prima stringa da confrontare.
- STRING2: Obbligatorio Seconda stringa da confrontare.
- STRING1: Obbligatorio La prima stringa da confrontare.
- STRING2: Obbligatorio Seconda stringa da confrontare.
Funzioni espressione regolare
- STRING: Required La stringa da cui si stanno estraendo i gruppi.
- REGEX: Obbligatorio L'espressione regolare che si desidera associare al gruppo.
- STRING: Obbligatorio La stringa da controllare corrisponde all'espressione regolare.
- REGEX: Obbligatorio Espressione regolare con cui si sta effettuando il confronto.
Funzioni di hashing hashing
- INPUT: Obbligatorio Il testo normale a cui applicare l'hashing.
- CHARSET: Facoltativo Il nome del set di caratteri. I valori possibili includono UTF-8, UTF-16, ISO-8859-1 e US-ASCII.
- INPUT: Obbligatorio Il testo normale a cui applicare l'hashing.
- CHARSET: Facoltativo Il nome del set di caratteri. I valori possibili includono UTF-8, UTF-16, ISO-8859-1 e US-ASCII.
- INPUT: Obbligatorio Il testo normale a cui applicare l'hashing.
- CHARSET: Facoltativo Il nome del set di caratteri. I valori possibili includono UTF-8, UTF-16, ISO-8859-1 e US-ASCII.
- INPUT: Obbligatorio Il testo normale a cui applicare l'hashing.
- CHARSET: Facoltativo Il nome del set di caratteri. I valori possibili includono UTF-8, UTF-16, ISO-8859-1 e US-ASCII.
- INPUT: Obbligatorio Il testo normale a cui applicare l'hashing.
- CHARSET: Facoltativo Il 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 URL da cui estrarre l'host.
- URL: Obbligatorio URL da cui estrarre la porta.
- URL: Obbligatorio URL da cui estrarre il percorso.
- FULL_PATH: 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", l'ancoraggio verrà collegato 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 URL di input con caratteri speciali che si desidera sostituire o codificare con caratteri ASCII.
- URL: Obbligatorio URL di input con caratteri ASCII da decodificare in caratteri speciali.
Funzioni data e ora date-and-time
date
sono disponibili nella sezione delle date della guida alla gestione del formato dei dati.2021-10-26T10:10:24Z
- DATE: Obbligatorio La data di input, come oggetto ZonedDateTime, che si desidera formattare.
- FORMATO: Obbligatorio Il formato in cui si desidera 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 si desidera rendere la marca temporale.
yyyy-MM-dd'T'HH:mm:ss.SSSX
")2019-10-23T11:24:35.000Z
- DATE: Required La stringa che rappresenta la data.
- FORMAT: Required Stringa che rappresenta il formato della data di origine.Nota: not rappresenta il formato in cui si desidera convertire la stringa di data.
- DEFAULT_DATE: Obbligatorio Se la data specificata è nulla, viene restituita la data predefinita.
2019-10-23T11:24:00Z
- DATE: Required La stringa che rappresenta la data.
- FORMAT: Required Stringa che rappresenta il formato della data di origine.Nota: not rappresenta il formato in cui si desidera convertire la stringa di data.
2019-10-23T11:24:00Z
- DATE: Required La stringa che rappresenta la data.
"year"
"yyyy"
"yy"
"quarter"
"qq"
"q"
"month"
"mm"
"m"
"dayofyear"
"dy"
"y"
"day"
"dd"
"d"
"week"
"ww"
"w"
"week
"dw"
"w"
"ora"
"hh"
"hh24"
"hh12"
"minuto"
"mi"
"n"
"secondo"
"ss"
"s"
"millisecondi"
"SSS"
- COMPONENTE: Obbligatorio Stringa che rappresenta la parte della data.
- DATA: Obbligatorio La data, in formato standard.
"year"
"yyyy"
"yy"
"month"
"mm"
"m"
"day"
"dd"
"d"
"hour"
"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 formato standard.
- ANNO: Obbligatorio L'anno, scritto in quattro cifre.
- MESE: Richiesto Il mese. I valori consentiti sono compresi tra 1 e 12.
- GIORNO: Richiesto Il giorno. I valori consentiti sono compresi tra 1 e 31.
- ORA: Necessaria L'ora. I valori consentiti sono compresi tra 0 e 23.
- MINUTO: Obbligatorio Minuto. I valori consentiti sono compresi tra 0 e 59.
- NANOSECOND: Obbligatori I valori dei nanosecondi. I valori consentiti sono compresi tra 0 e 999999999.
- TIMEZONE: Obbligatorio Il fuso orario per la data e l'ora.
2019-10-17T11:55:12Z
- DATA: Obbligatorio La data che si sta tentando di convertire.
zone_date_to_utc​(2019-10-17T11:55:​12 PST
2019-10-17T19:55:12Z
- DATA: Obbligatorio La data che si sta tentando di convertire.
- ZONE: Obbligatorio Il fuso orario in cui si sta tentando di convertire la data.
zone_date_to_zone(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 Raggruppamento di coppie chiave-matrice.
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"}
- STRING: Obbligatorio Stringa da analizzare per creare un oggetto.
- VALUE_DELIMITER: Facoltativo Il delimitatore che separa un campo dal valore. Il delimitatore predefinito è
:
. - FIELD_DELIMITER: Facoltativo Il delimitatore che separa le coppie di valori di campo. Il delimitatore predefinito è
,
.
get()
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")
- #1 di esempio:
{"firstName": "John", "lastName": "Doe", "phone": "123 456 7890"}
- Esempio #2: "John"
is_set()
obsoleta.- 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 L'oggetto da cui verranno estratte le chiavi.
["book1", "book2"]
- STRING: Required La stringa da analizzare.
- KEY: Required la chiave per la quale è necessario estrarre il valore.
- VALUE_DELIMITER: Obbligatorio Il delimitatore che separa il campo e il valore. Se viene fornita una stringa vuota o
null
, il valore è:
. - FIELD_DELIMITER: Facoltativo Il delimitatore che separa le coppie di campi e valori. Se viene fornita una stringa vuota o
null
, il valore è,
.
- MAP: Obbligatorio I dati della mappa di input.
- CHIAVE: Obbligatoria 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.
- MAP: Obbligatorio Dati mappa di input
- CHIAVE: Obbligatoria 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.
- KEY: Required 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, ad eccezione di Mappe.
- OGGETTO: Obbligatorio È possibile fornire un oggetto o una matrice di oggetti in ingresso e puntare a un attributo all'interno dell'oggetto come chiave.
- OGGETTO: Obbligatorio È possibile fornire un oggetto o una matrice 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 nullo.
- INPUT: Obbligatorio Array di cui trovare il primo elemento.
- INPUT: Obbligatorio Array di cui trovare l'ultimo elemento.
- MATRICE: Obbligatoria Matrice a cui si stanno aggiungendo elementi.
- VALORI: gli elementi che desideri aggiungere alla matrice.
- MATRICE: Obbligatoria Matrice a cui si stanno aggiungendo elementi.
- VALORI: gli array che si desidera aggiungere all’array principale.
- INCLUDE_NULLS: Obbligatorio Valore booleano che indica se includere o meno valori Null nella matrice di risposta.
- VALORI: Obbligatori Gli elementi da convertire in un array.
[1, 2, 3]
- INPUT: Obbligatorio L'oggetto di cui si sta tentando di trovare le dimensioni.
size_of([1, 2, 3, 4])
- ARRAY: Obbligatorio array da aggiungere nel profilo.
upsert_array_append([123, 456])
- MATRICE: Obbligatoria Matrice che sostituisce la matrice nel profilo.
upsert_array_replace([123, 456], 1)
Gerarchie - Mappa map
- INPUT: Obbligatorio Matrice di oggetti di cui trovare il primo oggetto non nullo.
- KEY: Obbligatorio La chiave deve essere un nome di campo nella matrice dell'oggetto e l'oggetto deve essere un 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: Obbligatoria Chiave da associare.
- OPTIONS: Obbligatorio Matrice semplificata di coppie chiave/valore. Facoltativamente, è possibile inserire un valore predefinito alla fine.
Se il codice stato specificato è "pa", "Pennsylvania".
Se stateCode non corrisponde a "N/D".
- ESPRESSIONE: Obbligatoria L'espressione booleana in fase di valutazione.
- TRUE_VALUE: Obbligatorio Il valore restituito se l'espressione restituisce true.
- FALSE_VALUE: Obbligatorio Il valore restituito se l'espressione restituisce false.
Aggregazione aggregation
- OPTIONS: Obbligatorio Uno o più oggetti possono essere confrontati tra loro.
- OPTIONS: Obbligatorio Uno o più oggetti possono essere confrontati tra loro.
Conversioni tipo type-conversions
- STRING: Obbligatorio Stringa da convertire in BigInteger.
- STRING: Obbligatorio Stringa da convertire in Double.
- STRING: Obbligatorio Stringa da convertire in Mobile.
- STRING: Obbligatorio Stringa da convertire in un numero intero.
Funzioni JSON json
- STRING: Required Stringa JSON da deserializzare.
Operazioni speciali special-operations
guid
guid()
guid()
c7016dc7-3163-43f7-afc7-2e1c9c206333
fpid_to_ecid
- STRING: Required 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, leggere l'elenco dei valori dei campi dispositivo nell'appendice di questo 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
- EVENT_STRING: Obbligatorio Stringa dell'evento Analytics separato da virgole.
- EVENT_NAME: Obbligatorio Il nome dell'evento da cui estrarre e ID.
- EVENT_STRING: Obbligatorio Stringa dell'evento Analytics separato da virgole.
- EVENT_NAME: Obbligatorio Nome dell'evento da cui estrarre un valore.
- PRODUCTS_STRING: Obbligatorio Stringa di prodotti Analytics.
- PRODUCTS_STRING: Obbligatorio Stringa di prodotti Analytics.
- PRODUCTS_STRING: Obbligatorio Stringa di prodotti Analytics.
- PRODUCTS_STRING: Obbligatorio Stringa di prodotti Analytics.
- PRODUCTS_STRING: Obbligatorio Stringa di prodotti Analytics.
- EVENT_NAME: Obbligatorio Il nome dell'evento da cui estrarre i valori.
- PRODUCTS_STRING: Obbligatorio Stringa di prodotti Analytics.
- EVAR_NAME: Obbligatorio Il 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, anche gli attributi city
e state
vengono acquisiti automaticamente in fase di runtime perché l'oggetto address
è mappato a addr
. Se si crea un attributo line2
nella struttura XDM e i dati di input contengono anche un attributo line2
nell'oggetto address
, anche questo verrà acquisito automaticamente senza dover 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
.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 |
---|
|