Funções de mapeamento de Preparo de dados
As funções de Preparo de dados podem ser usadas para calcular e calcular valores com base no que é inserido em campos de origem.
Campos
Um nome de campo pode ser qualquer identificador legal - uma sequência ilimitada de letras e dígitos Unicode, começando com uma letra, o cifrão ($
) ou o caractere de sublinhado (_
). Os nomes de variáveis também fazem distinção entre maiúsculas e minúsculas.
Se um nome de campo não segue essa convenção, o nome do campo deve ser colocado entre ${}
. Portanto, por exemplo, se o nome do campo for "Nome" ou "Nome.Nome", o nome deverá ser encapsulado como ${First Name}
ou ${First\.Name}
respectivamente.
.
), você deverá usar uma barra invertida (\
) para usar escape em caracteres especiais. Para obter mais informações, leia o manual sobre como escapar caracteres especiais.Se um nome de campo for qualquer das seguintes palavras-chave reservadas, ele deverá ser empacotado com ${}{}
:
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
Além disso, as palavras-chave reservadas também incluem qualquer uma das funções do mapeador listadas nesta página.
Os dados em subcampos podem ser acessados usando a notação de pontos. Por exemplo, se havia um objeto name
, para acessar o campo firstName
, use name.firstName
.
Lista de funções
As tabelas a seguir listam todas as funções de mapeamento compatíveis, incluindo expressões de amostra e suas saídas resultantes.
Funções de string string
- STRING: as cadeias de caracteres que serão concatenadas.
"Hi, there!"
\
: +, ?, ^, |, ., [, (, {, ), *, $, \
Se você incluir vários caracteres como delimitador, ele será tratado como um delimitador de vários caracteres.- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres que precisa ser dividida.
- REGEX: Opcional A expressão regular que pode ser usada para dividir a cadeia de caracteres.
["Hi,", "there"]
- ENTRADA: Obrigatório A cadeia de caracteres que está sendo pesquisada.
- SUBSTRING: Obrigatório A subcadeia de caracteres que está sendo pesquisada na cadeia de caracteres.
- START_POSITION: Opcional O local de onde começar a pesquisar na cadeia de caracteres.
- OCORRÊNCIA: Opcional A enésima ocorrência a ser procurada a partir da posição inicial. Por padrão, é definido como 1.
- ENTRADA: Obrigatório A cadeia de caracteres de entrada.
- TO_FIND: Obrigatório A cadeia de caracteres a ser pesquisada na entrada.
- TO_REPLACE: Obrigatório A cadeia de caracteres que substituirá o valor em "TO_FIND".
- ENTRADA: Obrigatório A cadeia de caracteres de entrada.
- START_INDEX: Obrigatório O índice da cadeia de caracteres de entrada em que a subsequência de caracteres é iniciada.
- LENGTH: Required O comprimento da subcadeia de caracteres.
lcase
- ENTRADA: Obrigatório A cadeia de caracteres que será convertida em minúsculas.
lcase("HeLL")
ucase
- ENTRADA: Obrigatório A cadeia de caracteres que será convertida em maiúsculas.
ucase("HeLL")
\
: \
. Se você incluir vários delimitadores, a cadeia de caracteres será dividida em qualquer dos delimitadores presentes na cadeia de caracteres. Observação: esta função retorna apenas índices não nulos da cadeia de caracteres, independentemente da presença do separador. Se todos os índices, incluindo nulos, forem necessários na matriz resultante, use a função "explodir".- ENTRADA: Obrigatório A cadeia de caracteres de entrada que será dividida.
- SEPARATOR: Obrigatório A cadeia de caracteres usada para dividir a entrada.
["Hello", "world"]
- SEPARATOR: Obrigatório A cadeia de caracteres que será usada para unir os objetos.
- OBJETOS: Obrigatório Uma matriz de cadeias de caracteres que serão unidas.
join(SEPARATOR, [OBJECTS])
join(" ", to_array(true, "Hello", "world"))
- ENTRADA: Obrigatório A cadeia de caracteres a ser preenchida. Esta cadeia de caracteres pode ser nula.
- COUNT: Obrigatório O tamanho da cadeia de caracteres a ser preenchida.
- PREENCHIMENTO: Obrigatório A cadeia de caracteres com a qual preencher a entrada. Se for nulo ou estiver vazio, será tratado como um único espaço.
- ENTRADA: Obrigatório A cadeia de caracteres a ser preenchida. Esta cadeia de caracteres pode ser nula.
- COUNT: Obrigatório O tamanho da cadeia de caracteres a ser preenchida.
- PREENCHIMENTO: Obrigatório A cadeia de caracteres com a qual preencher a entrada. Se for nulo ou estiver vazio, será tratado como um único espaço.
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres para a qual você está obtendo os primeiros caracteres "n".
- COUNT: Obrigatório Os caracteres "n" que você deseja obter da cadeia de caracteres.
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres para a qual você está obtendo os últimos caracteres "n".
- COUNT: Obrigatório Os caracteres "n" que você deseja obter da cadeia de caracteres.
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres da qual você deseja remover o espaço em branco.
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres da qual você deseja remover o espaço em branco.
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres da qual você deseja remover o espaço em branco.
- STRING1: Obrigatório A primeira cadeia de caracteres que você deseja comparar.
- CADEIA DE CARACTERES2: Obrigatório A segunda cadeia de caracteres que você deseja comparar.
- STRING1: Obrigatório A primeira cadeia de caracteres que você deseja comparar.
- CADEIA DE CARACTERES2: Obrigatório A segunda cadeia de caracteres que você deseja comparar.
Funções de expressão regular
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres da qual você está extraindo os grupos.
- REGEX: Obrigatório A expressão regular que você deseja que o grupo corresponda.
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres que você está verificando corresponde à expressão regular.
- REGEX: Obrigatório A expressão regular com a qual você está comparando.
Funções de hash hashing
- ENTRADA: Obrigatório O texto sem formatação a ser hash.
- CHARSET: Opcional O nome do conjunto de caracteres. Os valores possíveis incluem UTF-8, UTF-16, ISO-8859-1 e US-ASCII.
- ENTRADA: Obrigatório O texto sem formatação a ser hash.
- CHARSET: Opcional O nome do conjunto de caracteres. Os valores possíveis incluem UTF-8, UTF-16, ISO-8859-1 e US-ASCII.
- ENTRADA: Obrigatório O texto sem formatação a ser hash.
- CHARSET: Opcional O nome do conjunto de caracteres. Os valores possíveis incluem UTF-8, UTF-16, ISO-8859-1 e US-ASCII.
- ENTRADA: Obrigatório O texto sem formatação a ser hash.
- CHARSET: Opcional O nome do conjunto de caracteres. Os valores possíveis incluem UTF-8, UTF-16, ISO-8859-1 e US-ASCII.
- ENTRADA: Obrigatório O texto sem formatação a ser hash.
- CHARSET: Opcional O nome do conjunto de caracteres. Os valores possíveis incluem UTF-8, UTF-16, ISO-8859-1 e US-ASCII.
Funções de URL url
- URL: Obrigatório A URL da qual o protocolo precisa ser extraído.
- URL: Obrigatório A URL da qual o host precisa ser extraído.
- URL: Obrigatório A URL da qual a porta precisa ser extraída.
- URL: Obrigatório A URL da qual o caminho precisa ser extraído.
- FULL_PATH: Opcional Um valor booliano que determina se o caminho completo é retornado. Se definido como false, somente o final do caminho é retornado.
- URL: Obrigatório A URL da qual você está tentando obter a cadeia de caracteres de consulta.
- ÂNCORA: Obrigatório Determina o que será feito com a âncora na cadeia de caracteres de consulta. Pode ser um destes três valores: "keep", "remove" ou "append".
Se o valor for "reter", a âncora será anexada ao valor retornado.
Se o valor for "remover", a âncora será removida do valor retornado.
Se o valor for "append", a âncora será retornada como um valor separado.
get_url_query_strr("foo://example.com04/over/therename?impossível=ferret#nariz", "append")
{"name": "ferret#nose"}
{"name": "ferret"}
{"name": "ferret", "_anchor_": "nose"}
- URL: Obrigatório A URL de entrada com caracteres especiais que você deseja substituir ou codificar com caracteres ASCII.
- URL: Obrigatório A URL de entrada com caracteres ASCII que você deseja decodificar em caracteres especiais.
Funções de data e hora date-and-time
date
podem ser encontradas na seção de datas do guia de manipulação de formato de dados.2021-10-26T10:10:24Z
- DATE: Obrigatório A data de entrada, como um objeto ZonedDateTime, que você deseja formatar.
- FORMATO: Obrigatório O formato para o qual você deseja alterar a data.
yyyy-MM-dd HH:mm:ss
")2019-10-23 11:24:35
- CARIMBO DE DATA/HORA: Obrigatório O carimbo de data/hora que você deseja formatar. Isso é gravado em milissegundos.
- FORMATO: Obrigatório O formato em que você deseja que o carimbo de data/hora se torne.
yyyy-MM-dd'T'HH:mm:ss.SSSX
")2019-10-23T11:24:35.000Z
- DATA: Obrigatório A cadeia de caracteres que representa a data.
- FORMATO: Obrigatório A cadeia de caracteres que representa o formato da data de origem.Observação: não representa o formato em que você deseja converter a cadeia de caracteres de data.
- DEFAULT_DATE: Obrigatório A data padrão retornada, se a data fornecida for nula.
2019-10-23T11:24:00Z
- DATA: Obrigatório A cadeia de caracteres que representa a data.
- FORMATO: Obrigatório A cadeia de caracteres que representa o formato da data de origem.Observação: não representa o formato em que você deseja converter a cadeia de caracteres de data.
2019-10-23T11:24:00Z
- DATA: Obrigatório A cadeia de caracteres que representa a data.
"year"
"yyyy"
"yy"
"quarter"
"qq"
"q"
"month"
"mm"
"m"
"dayofyear"
"dy"
"y"
"day"
"dd"
"d"
"week"
"ww"
"w" "dia da semana"
"dw"
"w"
"hora"
"hh"
"hh24"
"hh12"
"minuto"
"mi"
"n"
"segundo"
"ss"
"s"
"milissegundo"
"SSS"
- COMPONENTE: Obrigatório Uma cadeia de caracteres que representa a parte da data.
- DATE: Obrigatório A data, em um formato padrão.
"year"
"yyy"
"yy"
"month"
"mm"
"m"
"day"
"dd"
"d"
"hour"
"hh"
"minute"
"mi"
"n"
"second"
"ss"
"s"
- COMPONENTE: Obrigatório Uma cadeia de caracteres que representa a parte da data.
- VALUE: Required O valor a ser definido para o componente em uma determinada data.
- DATE: Obrigatório A data, em um formato padrão.
- ANO: Obrigatório O ano, gravado em quatro dígitos.
- MÊS: Obrigatório O mês. Os valores permitidos são de 1 a 12.
- DIA: Obrigatório O dia. Os valores permitidos são de 1 a 31.
- HORA: Necessário A hora. Os valores permitidos são de 0 a 23.
- MINUTO: Necessário O minuto. Os valores permitidos são de 0 a 59.
- NANOSECOND: Obrigatório Os valores de nanossegundos. Os valores permitidos são de 0 a 99999999.
- FUSO HORÁRIO: Obrigatório O fuso horário da data e hora.
2019-10-17T11:55:12Z
- DATA: Obrigatório A data que você está tentando converter.
zone_date_to_utc​(2019-10-17T11:55:​12 PST
2019-10-17T19:55:12Z
- DATA: Obrigatório A data que você está tentando converter.
- ZONA: Obrigatório O fuso horário para o qual você está tentando converter a data.
zone_date_to_zone(now(), "Europe/Paris")
2021-10-26T15:43:59Z
Hierarquias - Objetos objects
- ENTRADA: Obrigatório O objeto que você está tentando verificar está vazio.
is_empty([1, null, 2, 3])
- ENTRADA: Obrigatório Um agrupamento de pares de chaves e matrizes.
arrays_to_objects('sku', explode("id1|id2", '\\|'), 'price', [22.5,14.35])
[{ "sku": "id1", "price": 22.5 }, { "sku": "id2", "price": 14.35 }]
- ENTRADA: Obrigatório Uma lista simples de pares de chave/valor.
{"firstName": "John", "lastName": "Doe"}
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres que está sendo analisada para criar um objeto.
- VALUE_DELIMITER: Opcional O delimitador que separa um campo do valor. O delimitador padrão é
:
. - FIELD_DELIMITER: Opcional O delimitador que separa pares de valores de campo. O delimitador padrão é
,
.
get()
juntamente com str_to_object()
para recuperar valores para as chaves na cadeia de caracteres.- Exemplo #1: str_to_object("firstName - John ; lastName - ; - 123 345 7890", "-", ";")
- Exemplo #2: str_to_object("firstName - John ; lastName - ; phone - 123 456 7890", "-", ";").get("firstName")
- Exemplo #1:
{"firstName": "John", "lastName": "Doe", "phone": "123 456 7890"}
- Exemplo #2: "John"
is_set()
obsoleta.- ENTRADA: Obrigatório O caminho a ser verificado se ele existir nos dados de origem.
null
. Isso deve ser usado quando você não deseja copiar o campo para o schema de destino.null
- OBJETO: Obrigatório O objeto do qual as chaves serão extraídas.
["book1", "book2"]
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres que você deseja analisar.
- KEY: Obrigatório A chave para a qual o valor deve ser extraído.
- VALUE_DELIMITER: Obrigatório O delimitador que separa o campo e o valor. Se for fornecido um
null
ou uma cadeia de caracteres vazia, este valor será:
. - FIELD_DELIMITER: Opcional O delimitador que separa pares de campo e valor. Se for fornecido um
null
ou uma cadeia de caracteres vazia, este valor será,
.
- MAPA: Obrigatório Os dados do mapa de entrada.
- KEY: Obrigatório A chave pode ser uma única cadeia de caracteres ou uma matriz de cadeia de caracteres. Se qualquer outro tipo primitivo (dados / número) for fornecido, ele será tratado como uma string.
- MAPA: Obrigatório Os dados do mapa de entrada
- KEY: Obrigatório A chave pode ser uma única cadeia de caracteres ou uma matriz de cadeia de caracteres. Se qualquer outro tipo primitivo (dados / número) for fornecido, ele será tratado como uma string.
- KEY: Obrigatório As chaves devem ser uma cadeia de caracteres. Se quaisquer outros valores primitivos, como números inteiros ou datas, forem fornecidos, eles serão convertidos automaticamente em cadeias de caracteres e serão tratados como cadeias de caracteres.
- ANY_TYPE: Obrigatório Refere-se a qualquer tipo de dados XDM com suporte, exceto Mapas.
- OBJETO: Obrigatório Você pode fornecer um objeto de entrada ou uma matriz de objetos e apontar para um atributo dentro do objeto como chave.
- OBJETO: Obrigatório Você pode fornecer um objeto de entrada ou uma matriz de objetos e apontar para um atributo dentro do objeto como chave.
Para obter informações sobre o recurso de cópia de objeto, consulte a seção abaixo.
Hierarquias - Matrizes arrays
- ENTRADA: Obrigatório A matriz da qual você deseja encontrar o primeiro objeto não nulo.
- ENTRADA: Obrigatório A matriz da qual você deseja encontrar o primeiro elemento.
- ENTRADA: Obrigatório A matriz da qual você deseja encontrar o último elemento.
- ARRAY: Obrigatório A matriz à qual você está adicionando elementos.
- VALORES: os elementos que você deseja anexar à matriz.
- ARRAY: Obrigatório A matriz à qual você está adicionando elementos.
- VALORES: a(s) matriz(es) que você deseja anexar à matriz principal.
- INCLUDE_NULLS: Obrigatório Um valor booliano para indicar se os nulos devem ou não ser incluídos na matriz de resposta.
- VALORES: Obrigatório Os elementos a serem convertidos em uma matriz.
[1, 2, 3]
- ENTRADA: Obrigatório O objeto do qual você está tentando encontrar o tamanho.
size_of([1, 2, 3, 4])
- ARRAY: Obrigatório A matriz à qual anexar a matriz no Perfil.
upsert_array_append([123, 456])
- ARRAY: Obrigatório A matriz para substituir a matriz no Perfil.
upsert_array_replace([123, 456], 1)
- SEPARATOR: Obrigatório O separador usado para unir os elementos na matriz.
- ARRAY: Obrigatório A matriz que será unida (após nivelamento).
array_to_string(";", ["Hello", "world"])
- ARRAY: Obrigatório A matriz a ser filtrada
- PREDICATE: Obrigatório O predicado a ser aplicado em cada elemento da matriz especificada.
filterArray([5, -6, 0, 7], x -> x > 0)
- ARRAY: Obrigatório A matriz a ser transformada.
- PREDICATE: Obrigatório O predicado a ser aplicado em cada elemento da matriz especificada.
transformArray([5, 6, 7], x -> x + 1)
- ARRAY: Obrigatório A matriz a ser nivelada.
Hierarquias - Mapa map
- ENTRADA: Obrigatório A matriz de objetos da qual você deseja encontrar o primeiro objeto não nulo.
- KEY: Obrigatório A chave deve ser um nome de campo na matriz de objetos e o objeto como valor.
- ENTRADA: Obrigatório A matriz de objetos da qual você deseja encontrar o primeiro objeto não nulo.
"{line1 : \"345 park ave\",line2: \"bldg 2\",City : \"san jose\",State : \"CA\",type: \"office\"}"
"{\"firstName\" : \"John\", \"lastName\": \"Doe\"}"
Operadores lógicos logical-operators
- KEY: Obrigatório A chave a ser correspondida.
- OPTIONS: Obrigatório Uma matriz nivelada de pares de chave/valor. Opcionalmente, um valor padrão pode ser colocado no final.
Se o stateCode fornecido for "pa", "Pennsylvania".
Se stateCode não corresponder ao seguinte, "N/A".
- EXPRESSION: Required A expressão booleana que está sendo avaliada.
- TRUE_VALUE: Obrigatório O valor retornado se a expressão for avaliada como verdadeira.
- FALSE_VALUE: Obrigatório O valor retornado se a expressão for avaliada como falsa.
Agregação aggregation
- OPTIONS: Obrigatório Um ou mais objetos que podem ser comparados entre si.
- OPTIONS: Obrigatório Um ou mais objetos que podem ser comparados entre si.
Conversões de tipo type-conversions
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres a ser convertida em um BigInteger.
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres a ser convertida em Double.
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres a ser convertida em Float.
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres a ser convertida em um inteiro.
Funções JSON json
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres JSON a ser desserializada.
Operações especiais special-operations
guid
guid()
guid()
c7016dc7-3163-43f7-afc7-2e1c9c206333
fpid_to_ecid
- CADEIA DE CARACTERES: Obrigatório A cadeia de caracteres FPID a ser convertida em ECID.
fpid_to_ecid(STRING)
fpid_to_ecid("4ed70bee-b654-420a-a3fd-b58b6b65e991")
"28880788470263023831040523038280731744"
Funções do agente do usuário user-agent
Qualquer uma das funções do agente do usuário contidas na tabela abaixo pode retornar um dos seguintes valores:
- Telefone - um dispositivo móvel com tela pequena (geralmente < 7 pol)
- Dispositivo móvel - Um dispositivo móvel que ainda não foi identificado. Esse dispositivo móvel pode ser um eReader, um tablet, um telefone, um relógio etc.
Para obter mais informações sobre valores de campo de dispositivo, leia a lista de valores de campo de dispositivo no apêndice deste documento.
- USER_AGENT: Necessário A sequência de agente do usuário.
- USER_AGENT: Necessário A sequência de agente do usuário.
- USER_AGENT: Necessário A sequência de agente do usuário.
- USER_AGENT: Necessário A sequência de agente do usuário.
- USER_AGENT: Necessário A sequência de agente do usuário.
- USER_AGENT: Necessário A sequência de agente do usuário.
- USER_AGENT: Necessário A sequência de agente do usuário.
- USER_AGENT: Necessário A sequência de agente do usuário.
Funções do Analytics analytics
- EVENT_STRING: Obrigatório A cadeia de caracteres de evento do Analytics separada por vírgulas.
- EVENT_NAME: Obrigatório O nome do evento do qual extrair e ID.
- EVENT_STRING: Obrigatório A cadeia de caracteres de evento do Analytics separada por vírgulas.
- EVENT_NAME: Obrigatório O nome do evento do qual extrair um valor.
- PRODUCTS_STRING: Obrigatório A cadeia de caracteres de produtos do Analytics.
- PRODUCTS_STRING: Obrigatório A cadeia de caracteres de produtos do Analytics.
- PRODUCTS_STRING: Obrigatório A cadeia de caracteres de produtos do Analytics.
- PRODUCTS_STRING: Obrigatório A cadeia de caracteres de produtos do Analytics.
- PRODUCTS_STRING: Obrigatório A cadeia de caracteres de produtos do Analytics.
- EVENT_NAME: Obrigatório O nome do evento do qual extrair valores.
- PRODUCTS_STRING: Obrigatório A cadeia de caracteres de produtos do Analytics.
- EVAR_NAME: Obrigatório O nome do eVar a ser extraído.
Cópia do objeto object-copy
Você pode usar o recurso de cópia de objeto para copiar atributos automaticamente de um objeto sem fazer alterações no mapeamento. Por exemplo, se os dados de origem tiverem uma estrutura de:
address{
line1: 4191 Ridgebrook Way,
city: San Jose,
state: California
}
e uma estrutura XDM de:
addr{
addrLine1: 4191 Ridgebrook Way,
city: San Jose,
state: California
}
Em seguida, o mapeamento se torna:
address -> addr
address.line1 -> addr.addrLine1
No exemplo acima, os atributos city
e state
também são assimilados automaticamente em tempo de execução porque o objeto address
está mapeado para addr
. Se você tiver que criar um atributo line2
na estrutura XDM e seus dados de entrada também contiverem um line2
no objeto address
, ele também será assimilado automaticamente, sem a necessidade de alterar manualmente o mapeamento.
Para garantir que o mapeamento automático funcione, os seguintes pré-requisitos devem ser atendidos:
- Objetos de nível primário devem ser mapeados;
- Novos atributos devem ter sido criados no esquema XDM;
- Os novos atributos devem ter nomes correspondentes no esquema de origem e no esquema XDM.
Se qualquer um dos pré-requisitos não for atendido, você deverá mapear manualmente o esquema de origem para o esquema XDM usando o preparo de dados.
Apêndice
Veja a seguir informações adicionais sobre o uso das funções de mapeamento do Preparo de dados
Caracteres especiais special-characters
A tabela abaixo descreve uma lista de caracteres reservados e seus caracteres codificados correspondentes.
Valores do campo Dispositivo device-field-values
A tabela abaixo descreve uma lista de valores de campo de dispositivo e suas descrições correspondentes.
useragents
que foram alterados por um software de anonimização.useragents
que não contêm informações sobre o dispositivo.useragent
.Amostras de código 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
Sintaxe 1
code language-json |
---|
|
Sintaxe 2
code language-json |
---|
|
Sintaxe 3
code language-json |
---|
|
array_to_map array_to_map
code language-json |
---|
|