Le funzioni di preparazione dei dati possono essere utilizzate per calcolare e calcolare i valori in base a quanto immesso nei campi di origine.
Un nome campo può essere un qualsiasi identificatore legale, ovvero 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 sono sensibili all’uso di maiuscole e minuscole.
Se il nome di un campo non segue questa convenzione, è necessario racchiudere il nome del campo con ${}
. Quindi, ad esempio, se il nome del campo è "Nome" o "Nome.Nome", il nome deve essere racchiuso come ${First Name}
o ${First.Name}
rispettivamente.
Inoltre, se il nome di un campo è qualsiasi 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
È possibile accedere ai dati contenuti nei campi secondari utilizzando la notazione del punto. Ad esempio, se era presente un name
per accedere all'oggetto firstName
campo, utilizzare name.firstName
.
Nelle tabelle seguenti sono elencate tutte le funzioni di mappatura supportate, incluse le espressioni di esempio e i relativi output risultanti.
Scorri verso sinistra/destra per visualizzare il contenuto completo della tabella.
Funzione | Descrizione | Parametri | Sintassi | Espressione | Output di esempio |
---|---|---|---|---|---|
concat | Concatena le stringhe specificate. |
|
concat(STRING_1, STRING_2) | concat("Ciao, ", "ci", "!") | "Hi, there!" |
esplodere | Divide la stringa in base a un regex e restituisce un array di parti. Facoltativamente, può includere regex per dividere la stringa. Per impostazione predefinita, la divisione viene risolta in ",". I seguenti delimitatori necessità deve essere evitato con \ : +, ?, ^, |, ., [, (, {, ), *, $, \ Se si includono più caratteri come delimitatore, questo viene considerato come un delimitatore a più caratteri. |
|
esplode(STRINGA, REGEX) | esplode("Ciao!", " ") | ["Hi,", "there"] |
instr | Restituisce la posizione/indice di una sottostringa. |
|
instr(INPUT, SUBSTRING, START_POSITION, OCCURRENCE) | instr("adobe.com", "com") | 6 |
sostituto | Sostituisce la stringa di ricerca se presente nella stringa originale. |
|
replace(INPUT, TO_FIND, TO_REPLACE) | replace("Questa è una stringa ri test", "re", "replace") | "Questo è un test di sostituzione stringa" |
substr | Restituisce una sottostringa di una lunghezza specificata. |
|
substr(INPUT, START_INDEX, LENGTH) | substr("This is a substring test", 7, 8) | "a subst" |
Lower / cassa |
Converte una stringa in minuscolo. |
|
Lower(INPUT) | lower("HeTo") lcase("HeTo") |
"hello" |
superiore / ucasi |
Converte una stringa in maiuscolo. |
|
Upper(INPUT) | Upper("HeTo") ucase("HeTo") |
"CIAO" |
split | Divide una stringa di input su un separatore. Il seguente separatore esigenze deve essere evitato con \ : \ . Se si includono più delimitatori, la stringa verrà suddivisa in qualsiasi dei delimitatori presenti nella stringa. |
|
split(INGRESSO, SEPARATORE) | split("Ciao mondo", " ") | ["Hello", "world"] |
join | Unisce un elenco di oggetti utilizzando il separatore. |
|
join(SEPARATOR, [OBJECTS]) |
join(" ", to_array(true, "Hello", "world")) |
"Ciao a tutti" |
lembo | Aggiunge il lato sinistro di una stringa con l'altra stringa specificata. |
|
Lpad(INPUT, COUNT, PADDING) | lpad("bat", 8, "yz") | "yzyzybat" |
tappetino | Aggiunge il lato destro di una stringa all'altra stringa specificata. |
|
rpad(INPUT, COUNT, PADDING) | rpad("bat", 8, "yz") | "batyzyzy" |
sinistra | Ottiene i primi caratteri "n" della stringa specificata. |
|
left(STRING, COUNT) | left("abcde", 2) | "ab" |
right | Ottiene gli ultimi caratteri "n" della stringa specificata. |
|
right(STRING, COUNT) | right("abcde", 2) | "de" |
ltrim | Rimuove lo spazio vuoto dall’inizio della stringa. |
|
ltrim(STRING) | ltrim(" hello") | "hello" |
trim | Rimuove lo spazio vuoto dalla fine della stringa. |
|
rtrim(STRING) | rtrim("hello ") | "hello" |
trim | Rimuove lo spazio vuoto dall’inizio e dalla fine della stringa. |
|
trim(STRING) | trim(" hello ") | "hello" |
è uguale a | Confronta due stringhe per confermare se sono uguali. Questa funzione distingue tra maiuscole e minuscole. |
|
STRING1. equals( STRING2) | "string1". è uguale a ("STRING1") | false |
equalsIgnoreCase | Confronta due stringhe per confermare se sono uguali. Questa funzione è not sensibile a maiuscole e minuscole. |
|
STRING1. equalsIgnoreCase (STRING2) | "string1". equalsIgnoreCase ("STRING1) | true |
Funzione | Descrizione | Parametri | Sintassi | Espressione | Output di esempio |
---|---|---|---|---|---|
extract_regex | Estrae i gruppi dalla stringa di input, in base a un'espressione regolare. |
|
extract_regex(STRING, REGEX) | extract_regex ("E259,E259B_009,1_1" , "([]+),[]*,([^]+)") | ["E259,E259B_009,1_1", "E259", "1_1"] |
matches_regex | Controlla se la stringa corrisponde all'espressione regolare inserita. |
|
match_regex(STRING, REGEX) | matches_regex("E259,E259B_009,1_1", "([]+),[]*,([^]+)") | true |
Scorri verso sinistra/destra per visualizzare il contenuto completo della tabella.
Funzione | Descrizione | Parametri | Sintassi | Espressione | Output di esempio |
---|---|---|---|---|---|
sha1 | Prende un input e produce un valore hash utilizzando Secure Hash Algorithm 1 (SHA-1). |
|
sha1(INPUT, CHARSET) | sha1("il mio testo", "UTF-8") | c3599c11e47719df18a24 48690840c5dfcce3c80 |
sha256 | Prende un input e produce un valore hash utilizzando Secure Hash Algorithm 256 (SHA-256). |
|
sha256(INPUT, CHARSET) | sha256("il mio testo", "UTF-8") | 7330d2b39ca35eaf4cb95fc846c21 e6a39af698154a83a586ee270a0d372104 |
sha512 | Prende un input e produce un valore hash utilizzando Secure Hash Algorithm 512 (SHA-512). |
|
sha512(INPUT, CHARSET) | sha512("il mio testo", "UTF-8") | a3d7e45a0d9be5fd4e4b9a3b8c9c2163c21ef 708bf11b4232bb21d2a8704ada2cdcd7b367dd07 88a89 a5c908cfe377aceb1072a7b386b7d4fd2ff68a8fd24d16 |
md5 | Prende un input e produce un valore hash utilizzando MD5. |
|
md5(INPUT, CHARSET) | md5("il mio testo", "UTF-8") | d3b96ce8c9fb4 e9bd0198d03ba6852c7 |
crc32 | Accetta un input che utilizza un algoritmo di controllo della ridondanza ciclica (CRC) per produrre un codice ciclico a 32 bit. |
|
crc32 (INGRESSO, CHARSET) | crc32("il mio testo", "UTF-8") | 8df92e80 |
Scorri verso sinistra/destra per visualizzare il contenuto completo della tabella.
Funzione | Descrizione | Parametri | Sintassi | Espressione | Output di esempio |
---|---|---|---|---|---|
get_url_protocol | Restituisce il protocollo dall'URL specificato. Se l'input non è valido, restituisce null. |
|
get_url_protocol (URL) | get_url_protocol("https://platform .adobe.com/home") | https |
get_url_host | Restituisce l'host dell'URL specificato. Se l'input non è valido, restituisce null. |
|
get_url_host (URL) | get_url_host ("https://platform .adobe.com/home") | platform.adobe.com |
get_url_port | Restituisce la porta dell’URL specificato. Se l'input non è valido, restituisce null. |
|
get_url_port(URL) | get_url_port ("sftp://example.com//home/ joe/employee.csv") | 22 |
get_url_path | Restituisce il percorso dell'URL specificato. Per impostazione predefinita, viene restituito il percorso completo. |
|
get_url_path (URL, FULL_PATH) | get_url_path ("sftp://example.com// home/joe/employee.csv") | "//home/joe/ .csv" |
get_url_query_str | Restituisce la stringa di query di un URL specificato come mappa del nome della stringa di query e del valore della stringa di query. |
|
get_url_query_str (URL, ANCHOR) | get_url_query_str ("foo://example.com:8042 /over/here?name= ferret#nose", "keep") get_url_query_str ("foo://example.com:8042 /over/here?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"} |
Scorri verso sinistra/destra per visualizzare il contenuto completo della tabella. Ulteriori informazioni sulle date
si trova nella sezione date del guida alla gestione del formato dati.
Funzione | Descrizione | Parametri | Sintassi | Espressione | Output di esempio |
---|---|---|---|---|---|
now | Recupera l'ora corrente. | now() | now() | 2021-10-26T10:10:24Z |
|
timestamp | Recupera l'ora Unix corrente. | timestamp() | timestamp() | 1571850624571 | |
format | Formatta la data di input in base a un formato specificato. |
|
format(DATE, FORMAT) | format(2019-10-23T11):24:00+00:00, "aaaa-MM-gg HH:mm:ss") | 2019-10-23 11:24:35 |
dformat | Converte una marca temporale in una stringa di data in base a un formato specificato. |
|
dformat(TIMESTAMP, FORMAT) | dformat(1571829875000, "aaaa-MM-gg-T'HH:mm:ss.SSSX") | 2019-10-23T11:24:35.000Z |
data | Converte una stringa data in un oggetto ZoningDateTime (formato ISO 8601). |
|
date(DATE, FORMAT, DEFAULT_DATE) | date("2019-10-23 11:24", "aaaa-MM-gg HH:mm", now()) | 2019-10-23T11:24:00Z |
data | Converte una stringa data in un oggetto ZoningDateTime (formato ISO 8601). |
|
date(DATA, FORMATO) | date("2019-10-23 11:24", "aaaa-MM-gg HH:mm") | 2019-10-23T11:24:00Z |
data | Converte una stringa data in un oggetto ZoningDateTime (formato ISO 8601). |
|
data(DATA) | date("2019-10-23 11:24") | "2019-10-23T11:24:00Z" |
date_part | Recupera le parti della data. Sono supportati i seguenti valori dei componenti: "anno" "aaaa" Sì "trimestre" "qq" "q" "mese" "mm" "m" "giorno dell'anno" "dy" "y" "day" "dd" "d" "week" "ww" "w" "giorno feriale" "dw" "w" "ora" "hh" "hh24" "hh12" "minuto" "mi" "n" "secondo" "ss" "s" "millisecondo" "ms" |
|
date_part (COMPONENT, DATE) | date_part("MM", date("2019-10-17 11:55:12") | 10 |
set_date_part | Sostituisce un componente in una data specificata. Sono accettati i seguenti componenti: "anno" "aaaa" Sì "mese" "mm" "m" "day" "dd" "d" "ora" "hh" "minuto" "mi" "n" "secondo" "ss" "s" |
|
set_date_part (COMPONENT, VALUE, DATE) | set_date_part("m", 4, date("2016-11-09T11:44:44,797") | "2016-04-09T11:44:44Z" |
make_date_time | Crea una data da parti. Questa funzione può essere indotta anche utilizzando make_timestamp. |
|
make_date_time (ANNO, MESE, GIORNO, ORA, MINUTO, SECONDO, NANOSECOND, TIMEZONE) | make_date_time (2019, 10, 17, 11, 55, 12, 999, "America/Los_Angeles") | 2019-10-17T11:55:12Z |
zone_date_to_utc | Converte una data in qualsiasi fuso orario in una data in UTC. |
|
zone_date_to_utc (DATE) | zone_date_to_utc​(2019-10-17T11:55:​12 PST |
2019-10-17T19:55:12Z |
zone_date_to_zone | Converte una data da un fuso orario a un altro. |
|
zone_date_to_zone (DATE, ZONE) | zone_date_to_utc​(now(), "Europe/Paris") |
2021-10-26T15:43:59Z |
{style=“table-layout:auto”}
Scorri verso sinistra/destra per visualizzare il contenuto completo della tabella.
Funzione | Descrizione | Parametri | Sintassi | Espressione | Output di esempio |
---|---|---|---|---|---|
is_empty | Controlla se un oggetto è vuoto o meno. |
|
is_empty(INPUT) | is_empty([1, 2, 3]) |
false |
array_to_object | Crea un elenco di oggetti. |
|
array_to_object(INPUT) | campione necessario | campione necessario |
to_object | Crea un oggetto in base alle coppie chiave/valore flat specificate. |
|
to_object(INPUT) | to_object ("firstName", "John", "lastName", "Doe") | {"firstName": "John", "lastName": "Doe"} |
str_to_object | Crea un oggetto dalla stringa di input. |
|
str_to_object (STRING, VALUE_DELIMITER, FIELD_DELIMITER) | str_to_object("firstName=John,lastName=Doe,phone=123 456 7890", "=", ",") | {"firstName": "John", "lastName": "Doe", "phone": "123 456 7890"} |
contains_key | Controlla se l'oggetto esiste all'interno dei dati di origine. Nota: Questa funzione sostituisce la funzione obsoleta is_set() funzione . |
|
contains_key(INPUT) | contains_key("evar.evar.field1") | true |
annullare | Imposta il valore dell'attributo su null . Da utilizzare quando non si desidera copiare il campo nello schema di destinazione. |
nullify() | nullify() | null |
|
get_keys | Analizza le coppie chiave/valore e restituisce tutte le chiavi. |
|
get_keys(OBJECT) | get_keys({"book1"): "Orgoglio e pregiudizio", "libro2": "1984"}) | ["book1", "book2"] |
get_values | Analizza le coppie chiave/valore e restituisce il valore della stringa, in base alla chiave specificata. |
|
get_values(STRING, KEY, VALUE_DELIMITER, FIELD_DELIMITER) | get_values("firstName - John , lastName - Cena , telefono - 555 420 8692", "firstName", "-", ",") | John |
Per informazioni sulla funzione di copia dell’oggetto, consulta la sezione . di seguito.
Scorri verso sinistra/destra per visualizzare il contenuto completo della tabella.
Funzione | Descrizione | Parametri | Sintassi | Espressione | Output di esempio |
---|---|---|---|---|---|
fondere | Restituisce il primo oggetto non-null in una matrice specificata. |
|
coalesce(INPUT) | coalesce(null, null, null, "first", null, "secondo") | "first" |
first | Recupera il primo elemento dell’array specificato. |
|
first(INPUT) | first("1", "2", "3") | "1" |
last | Recupera l'ultimo elemento dell'array specificato. |
|
last(INPUT) | last("1", "2", "3") | "3" |
add_to_array | Aggiunge elementi alla fine della matrice. |
|
add_to_array (ARRAY, VALUES) | add_to_array (["a", "b"], "c", "d") | ['a', 'b', 'c', 'd'] |
join_array | Combina gli array tra loro. |
|
join_array (ARRAY, VALUES) | join_array (["a", "b"], ['c'], ["d", "e"]) | ['a', 'b', 'c', 'd', 'e'] |
to_array | Prende un elenco di input e lo converte in un array. |
|
to_array (INCLUDE_NULLS, VALUES) | to_array(false, 1, null, 2, 3) | [1, 2, 3] |
size_of | Restituisce le dimensioni dell’input. |
|
size_of(INPUT) | size_of([1, 2, 3, 4]) |
4 |
upsert_array_append | Questa funzione viene utilizzata per aggiungere tutti gli elementi dell'intero array di input alla fine dell'array in Profile. Questa funzione è only applicabile durante gli aggiornamenti. Se utilizzata nel contesto di inserti, questa funzione restituisce l'input così come è. |
|
upsert_array_append(ARRAY) | upsert_array_append([123, 456]) |
[123, 456] |
upsert_array_replace | Questa funzione viene utilizzata per sostituire gli elementi di una matrice. Questa funzione è only applicabile durante gli aggiornamenti. Se utilizzata nel contesto di inserti, questa funzione restituisce l'input così come è. |
|
upsert_array_replace(ARRAY) | upsert_array_replace([123, 456], 1) |
[123, 456] |
Scorri verso sinistra/destra per visualizzare il contenuto completo della tabella.
Funzione | Descrizione | Parametri | Sintassi | Espressione | Output di esempio |
---|---|---|---|---|---|
decodificare | Dato un tasto e un elenco di coppie di valori chiave appiattite come array, la funzione restituisce il valore se key viene trovato o restituisce un valore predefinito se presente nell'array. |
|
decode(KEY, OPTIONS) | decode(stateCode, "ca", "California", "pa", "Pennsylvania", "N/A") | Se il codice di stato specificato è "ca", "California". Se lo statoCode dato è "pa", "Pennsylvania". Se stateCode non corrisponde a quanto segue, "N/D". |
iif | Valuta una determinata espressione booleana e restituisce il valore specificato in base al risultato. |
|
iif(EXPRESSION, TRUE_VALUE, FALSE_VALUE) | iif("s".equalsIgnoreCase("S"), "True", "False") | "True" |
Scorri verso sinistra/destra per visualizzare il contenuto completo della tabella.
Funzione | Descrizione | Parametri | Sintassi | Espressione | Output di esempio |
---|---|---|---|---|---|
min | Restituisce il minimo degli argomenti specificati. Utilizza l'ordine naturale. |
|
min(OPTIONS) | min(3, 1, 4) | 1 |
max | Restituisce il massimo degli argomenti specificati. Utilizza l'ordine naturale. |
|
max(OPTIONS) | max(3, 1, 4) | 4 |
Scorri verso sinistra/destra per visualizzare il contenuto completo della tabella.
Funzione | Descrizione | Parametri | Sintassi | Espressione | Output di esempio |
---|---|---|---|---|---|
to_bigint | Converte una stringa in un BigInteger. |
|
to_bigint(STRING) | to_bigint ("100000.34") | 1000000,34 |
to_decimal | Converte una stringa in un valore Double. |
|
to_decimal(STRING) | to_decimal("20.5") | 20,5 |
to_float | Converte una stringa in Mobile. |
|
to_float(STRING) | to_float("12.3456") | 12,34566 |
to_integer | Converte una stringa in un numero intero. |
|
to_integer(STRING) | to_integer("12") | 12 |
Scorri verso sinistra/destra per visualizzare il contenuto completo della tabella.
Funzione | Descrizione | Parametri | Sintassi | Espressione | Output di esempio |
---|---|---|---|---|---|
json_to_object | Deserializza il contenuto JSON dalla stringa specificata. |
|
json_to_object (STRING) | json_to_object ({"info":{"firstName":"John","lastName": "Doe"}) | Un oggetto che rappresenta il JSON. |
Scorri verso sinistra/destra per visualizzare il contenuto completo della tabella.
Funzione | Descrizione | Parametri | Sintassi | Espressione | Output di esempio |
---|---|---|---|---|---|
uuid / guid |
Genera un ID pseudo-casuale. | uuid() guid() |
uuid() guid() |
7c0267d2-bb74-4e1a-9275-3bf4fccda5f4 c7016dc7-3163-43f7-afc7-2e1c9c206333 |
Scorri verso sinistra/destra per visualizzare il contenuto completo della tabella.
Funzione | Descrizione | Parametri | Sintassi | Espressione | Output di esempio |
---|---|---|---|---|---|
ua_os_name | Estrae il nome del sistema operativo dalla stringa dell'agente utente. |
|
ua_os_name (USER_AGENT) | ua_os_name ("Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 come Mac OS X) AppleWebKit/534.46 (KHTML, come Gecko) Versione/5.1 Mobile/9B206 Safari/7534.48.3") | iOS |
ua_os_version_major | Estrae la versione principale del sistema operativo dalla stringa dell'agente utente. |
|
ua_os_version_major (USER_AGENT) | ua_os_version_major s("Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 come Mac OS X) AppleWebKit/534.46 (KHTML, come Gecko) Versione/5.1 Mobile/9B206 Safari/7534.48.3") | iOS 5 |
ua_os_version | Estrae la versione del sistema operativo dalla stringa dell'agente utente. |
|
ua_os_version (USER_AGENT) | ua_os_version ("Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 come Mac OS X) AppleWebKit/534.46 (KHTML, come Gecko) Versione/5.1 Mobile/9B206 Safari/7534.48.3") | 5.1.1. |
ua_os_name_version | Estrae il nome e la versione del sistema operativo dalla stringa dell'agente utente. |
|
ua_os_name_version (USER_AGENT) | ua_os_name_version ("Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 come Mac OS X) AppleWebKit/534.46 (KHTML, come Gecko) Versione/5.1 Mobile/9B206 Safari/7534.48.3") | iOS 5.1.1 |
ua_agent_version | Estrae la versione dell'agente dalla stringa dell'agente utente. |
|
ua_agent_version (USER_AGENT) | ua_agent_version ("Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 come Mac OS X) AppleWebKit/534.46 (KHTML, come Gecko) Versione/5.1 Mobile/9B206 Safari/7534.48.3") | 5.1 |
ua_agent_version_major | Estrae il nome dell'agente e la versione principale dalla stringa dell'agente utente. |
|
ua_agent_version_major (USER_AGENT) | ua_agent_version_major ("Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 come Mac OS X) AppleWebKit/534.46 (KHTML, come Gecko) Versione/5.1 Mobile/9B206 Safari/7534.48.3") | Safari 5 |
ua_agent_name | Estrae il nome dell'agente dalla stringa dell'agente utente. |
|
ua_agent_name (USER_AGENT) | ua_agent_name ("Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 come Mac OS X) AppleWebKit/534.46 (KHTML, come Gecko) Versione/5.1 Mobile/9B206 Safari/7534.48.3") | Safari |
ua_device_class | Estrae la classe dispositivo dalla stringa dell'agente utente. |
|
ua_device_class (USER_AGENT) | ua_device_class ("Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 come Mac OS X) AppleWebKit/534.46 (KHTML, come Gecko) Versione/5.1 Mobile/9B206 Safari/7534.48.3") | Telefono |
La funzione di copia dell'oggetto viene applicata automaticamente quando un oggetto nell'origine viene mappato a un oggetto in XDM. Non sono necessarie ulteriori azioni da parte degli utenti.
È possibile utilizzare la funzione di copia dell’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
}
Poi la mappatura diventa:
address -> addr
address.line1 -> addr.addrLine1
Nell’esempio precedente, il city
e state
gli attributi vengono inoltre acquisiti automaticamente in fase di runtime perché il address
oggetto mappato su addr
. Se doveste creare un line2
nella struttura XDM e i dati di input contengono anche un line2
in address
e viene acquisito automaticamente senza la necessità di modificare manualmente la mappatura.
Per garantire il funzionamento della mappatura automatica, è necessario soddisfare i seguenti prerequisiti:
Se uno dei prerequisiti non è soddisfatto, è necessario mappare manualmente lo schema di origine allo schema XDM utilizzando la preparazione dati.