Funciones de asignación de preparación de datos
Las funciones de preparación de datos se pueden utilizar para calcular y calcular valores basados en lo que se introduce en los campos de origen.
Campos
Un nombre de campo puede ser cualquier identificador válido: una secuencia de longitud ilimitada de letras Unicode y dígitos, que comienza con una letra, el signo de dólar ($
) o el carácter de subrayado (_
). Los nombres de variables también distinguen entre mayúsculas y minúsculas.
Si el nombre de un campo no sigue esta convención, el nombre del campo debe incluirse entre ${}
. Por lo tanto, si el nombre de campo es "First Name" o "First.Name", el nombre debe incluirse entre ${First Name}
o ${First\.Name}
respectivamente.
.
), debe utilizar una barra invertida (\
) para omitir caracteres especiales. Para obtener más información, lea la guía de escape de caracteres especiales.Si el nombre de un campo es cualquiera de las siguientes palabras clave reservadas, debe estar envuelto 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
Además, las palabras clave reservadas también incluyen cualquiera de las funciones de asignador enumeradas en esta página.
Se puede acceder a los datos de los subcampos utilizando la notación de puntos. Por ejemplo, si había un name
para acceder al objeto firstName
campo, uso name.firstName
.
Lista de funciones
En las tablas siguientes se enumeran todas las funciones de asignación admitidas, incluidas las expresiones de muestra y sus resultados.
Funciones de cadena string
- STRING: cadenas que se concatenarán.
"Hi, there!"
\
: +, ?, ^, |, ., [, (, {, ), *, $, \
Si incluye varios caracteres como delimitador, el delimitador se tratará como un delimitador de varios caracteres.- CADENA: Requerido La cadena que debe dividirse.
- REGEX: Opcional La expresión regular que se puede utilizar para dividir la cadena.
["Hi,", "there"]
- ENTRADA: Requerido La cadena que se está buscando.
- SUBCADENA: Requerido La subcadena que se busca dentro de la cadena.
- POSICIÓN_INICIAL: Opcional La ubicación de dónde empezar a buscar en la cadena.
- OCURRENCIA: Opcional La enésima ocurrencia que se busca desde la posición de inicio. De forma predeterminada, es 1.
- ENTRADA: Requerido La cadena de entrada.
- TO_FIND: Requerido Cadena que se busca en la entrada.
- TO_REPLACE: Requerido La cadena que reemplazará el valor dentro de "TO_FIND".
- ENTRADA: Requerido La cadena de entrada.
- START_INDEX: Requerido Índice de la cadena de entrada donde comienza la subcadena.
- LONGITUD: Requerido Longitud de la subcadena.
lcase
- ENTRADA: Requerido La cadena que se convertirá a minúsculas.
lcase("HeLo")
ucase
- ENTRADA: Requerido La cadena que se convertirá a mayúsculas.
ucase("HeLo")
\
: \
. Si incluye varios delimitadores, la cadena se dividirá en cualquiera de los delimitadores presentes en la cadena. Nota: Esta función solo devuelve índices no nulos de la cadena, independientemente de la presencia del separador. Si se requieren todos los índices, incluidos los valores nulos, en la matriz resultante, utilice la función "explode" en su lugar.- ENTRADA: Requerido La cadena de entrada que se va a dividir.
- SEPARADOR: Requerido Cadena que se utiliza para dividir la entrada.
["Hello", "world"]
- SEPARADOR: Requerido Cadena que se utilizará para unir los objetos.
- OBJETOS: Requerido Matriz de cadenas que se unirán.
join(SEPARATOR, [OBJECTS])
join(" ", to_array(true, "Hello", "world"))
- ENTRADA: Requerido La cadena que se va a rellenar. Esta cadena puede ser nula.
- RECUENTO: Requerido El tamaño de la cadena que se va a rellenar.
- RELLENO: Requerido Cadena con la que se rellena la entrada. Si es nulo o está vacío, se tratará como un solo espacio.
- ENTRADA: Requerido La cadena que se va a rellenar. Esta cadena puede ser nula.
- RECUENTO: Requerido El tamaño de la cadena que se va a rellenar.
- RELLENO: Requerido Cadena con la que se rellena la entrada. Si es nulo o está vacío, se tratará como un solo espacio.
- CADENA: Requerido La cadena para la que obtiene los primeros caracteres "n".
- RECUENTO: Requerido Los caracteres "n" que desee obtener de la cadena.
- CADENA: Requerido La cadena para la que se obtienen los últimos caracteres "n".
- RECUENTO: Requerido Los caracteres "n" que desee obtener de la cadena.
- CADENA: Requerido La cadena de la que desea eliminar el espacio en blanco.
- CADENA: Requerido La cadena de la que desea eliminar el espacio en blanco.
- CADENA: Requerido La cadena de la que desea eliminar el espacio en blanco.
- CADENA1: Requerido La primera cadena que desea comparar.
- CADENA2: Requerido La segunda cadena que desea comparar.
- CADENA1: Requerido La primera cadena que desea comparar.
- CADENA2: Requerido La segunda cadena que desea comparar.
Funciones de expresión regular
- CADENA: Requerido Cadena de la que se extraen los grupos.
- REGEX: Requerido La expresión regular con la que desea que coincida el grupo.
- CADENA: Requerido La cadena que está comprobando coincide con la expresión regular.
- REGEX: Requerido La expresión regular con la que está comparando.
Funciones hash hashing
- ENTRADA: Requerido Texto sin formato que se va a cifrar con hash.
- CHARSET: Opcional Nombre del conjunto de caracteres. Los valores posibles incluyen UTF-8, UTF-16, ISO-8859-1 y US-ASCII.
- ENTRADA: Requerido Texto sin formato que se va a cifrar con hash.
- CHARSET: Opcional Nombre del conjunto de caracteres. Los valores posibles incluyen UTF-8, UTF-16, ISO-8859-1 y US-ASCII.
- ENTRADA: Requerido Texto sin formato que se va a cifrar con hash.
- CHARSET: Opcional Nombre del conjunto de caracteres. Los valores posibles incluyen UTF-8, UTF-16, ISO-8859-1 y US-ASCII.
- ENTRADA: Requerido Texto sin formato que se va a cifrar con hash.
- CHARSET: Opcional Nombre del conjunto de caracteres. Los valores posibles incluyen UTF-8, UTF-16, ISO-8859-1 y US-ASCII.
- ENTRADA: Requerido Texto sin formato que se va a cifrar con hash.
- CHARSET: Opcional Nombre del conjunto de caracteres. Los valores posibles incluyen UTF-8, UTF-16, ISO-8859-1 y US-ASCII.
Funciones de URL url
- URL: Requerido Dirección URL de la que se debe extraer el protocolo.
- URL: Requerido Dirección URL de la que se debe extraer el host.
- URL: Requerido Dirección URL de la que debe extraerse el puerto.
- URL: Requerido Dirección URL de la que se debe extraer la ruta.
- RUTA_COMPLETA: Opcional Un valor booleano que determina si se devuelve la ruta de acceso completa. Si se establece en false, solo se devuelve el final de la ruta.
- URL: Requerido Dirección URL desde la que intenta obtener la cadena de consulta.
- ANCLAJE: Requerido Determina qué se hará con el anclaje en la cadena de consulta. Puede ser uno de los tres valores siguientes: "keep", "remove" o "append".
Si el valor es "conservar", el anclaje se adjunta al valor devuelto.
Si el valor es "remove", el anclaje se eliminará del valor devuelto.
Si el valor es "anexar", el anclaje se devuelve como un valor independiente.
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: Requerido La dirección URL de entrada con caracteres especiales que desea reemplazar o codificar con caracteres ASCII.
- URL: Requerido La dirección URL de entrada con caracteres ASCII que desea descodificar en caracteres especiales.
Funciones de fecha y hora date-and-time
date
se puede encontrar en la sección de fechas de la guía de gestión de formato de datos.2021-10-26T10:10:24Z
- FECHA: Requerido La fecha de entrada, como objeto ZonedDateTime, a la que desea dar formato.
- FORMATO: Requerido El formato al que desea cambiar la fecha.
yyyy-MM-dd HH:mm:ss
")2019-10-23 11:24:35
- MARCA DE TIEMPO: Requerido La marca de tiempo a la que desea dar formato. Esto se escribe en milisegundos.
- FORMATO: Requerido El formato en el que desea que se convierta la marca de tiempo.
yyyy-MM-dd'T'HH:mm:ss.SSSX
")2019-10-23T11:24:35.000Z
- FECHA: Requerido Cadena que representa la fecha.
- FORMATO: Requerido Cadena que representa el formato de la fecha de origen.Nota: Esto sí no representa el formato en el que desea convertir la cadena de fecha.
- FECHA_PREDETERMINADA: Requerido Se devuelve la fecha predeterminada si la fecha proporcionada es nula.
2019-10-23T11:24:00Z
- FECHA: Requerido Cadena que representa la fecha.
- FORMATO: Requerido Cadena que representa el formato de la fecha de origen.Nota: Esto sí no representa el formato en el que desea convertir la cadena de fecha.
2019-10-23T11:24:00Z
- FECHA: Requerido Cadena que representa la fecha.
"año"
"yyyy"
"aa"
"trimestre"
"qq"
"q"
"mes"
"mm"
"m"
"dayofyear"
"día"
"y"
"día"
"dd"
"d"
"semana"
"ww"
"w"
"día laborable"
"dw"
"w"
"hour"
"hh"
"hh24"
"hh12"
"minuto"
"mi"
"n"
"segundo"
"ss"
"s"
"milisegundo"
"SSS"
- COMPONENTE: Requerido Una cadena que representa la parte de la fecha.
- FECHA: Requerido La fecha, en un formato estándar.
"año"
"yyyy"
"aa"
"mes"
"mm"
"m"
"día"
"dd"
"d"
"hour"
"hh"
"minuto"
"mi"
"n"
"segundo"
"ss"
"s"
- COMPONENTE: Requerido Una cadena que representa la parte de la fecha.
- VALOR: Requerido Valor que se va a establecer para el componente en una fecha determinada.
- FECHA: Requerido La fecha, en un formato estándar.
- AÑO: Requerido El año, escrito con cuatro dígitos.
- MES: Requerido El mes. Los valores permitidos son del 1 al 12.
- DÍA: Requerido El día. Los valores permitidos son del 1 al 31.
- HORA: Requerido La hora. Los valores permitidos son de 0 a 23.
- MINUTO: Requerido El minuto. Los valores permitidos son de 0 a 59.
- NANOSEGUNDO: Requerido Los valores de nanosegundo. Los valores permitidos son de 0 a 999999999.
- ZONA HORARIA: Requerido Zona horaria de la fecha y hora.
2019-10-17T11:55:12Z
- FECHA: Requerido La fecha que está intentando convertir.
zone_date_to_utc​(2019-10-17T11:55:​12 PST
2019-10-17T19:55:12Z
- FECHA: Requerido La fecha que está intentando convertir.
- ZONA: Requerido Zona horaria a la que intenta convertir la fecha.
zone_date_to_utc​(now(), "Europe/Paris")
2021-10-26T15:43:59Z
Jerarquías: objetos objects
- ENTRADA: Requerido El objeto que está intentando comprobar está vacío.
is_empty([1, null, 2, 3])
- ENTRADA: Requerido Una agrupación de pares de claves y matrices.
arrays_to_objects('sku', explode("id1|id2", '\\|'), 'price', [22.5,14.35])
[{ "sku": "id1", "price": 22.5 }, { "sku": "id2", "price": 14.35 }]
- ENTRADA: Requerido Una lista plana de pares de clave/valor.
{"firstName": "John", "lastName": "Doe"}
- CADENA: Requerido Cadena que se está analizando para crear un objeto.
- VALUE_DELIMITER: Opcional El delimitador que separa un campo del valor. El delimitador predeterminado es
:
. - FIELD_DELIMITER: Opcional El delimitador que separa los pares de valor de campo. El delimitador predeterminado es
,
.
get()
función junto con str_to_object()
para recuperar los valores de las claves de la cadena.- Ejemplo #1: str_to_object("firstName - John ; lastName - ; - 123 345 7890", "-", ";")
- Ejemplo #2: str_to_object("firstName - John ; lastName - ; phone - 123 456 7890", "-", ";").get("firstName")
- Ejemplo de #1:
{"firstName": "John", "lastName": "Doe", "phone": "123 456 7890"}
- Ejemplo #2: "John"
is_set()
función.- ENTRADA: Requerido La ruta que se debe comprobar si existe dentro de los datos de origen.
null
. Debe utilizarse cuando no desee copiar el campo en el esquema de destino.null
- OBJETO: Requerido El objeto del que se extraerán las claves.
["book1", "book2"]
- CADENA: Requerido La cadena que desea analizar.
- CLAVE: Requerido La clave para la que se debe extraer el valor.
- VALUE_DELIMITER: Requerido El delimitador que separa el campo y el valor. Si una
null
Si se proporciona una cadena vacía, este valor es:
. - FIELD_DELIMITER: Opcional El delimitador que separa los pares de campo y valor. Si una
null
Si se proporciona una cadena vacía, este valor es,
.
- MAPA: Requerido Los datos del mapa de entrada.
- CLAVE: Requerido La clave puede ser una sola cadena o una matriz de cadenas. Si se proporciona cualquier otro tipo primitivo (datos/número), se trata como una cadena.
- MAPA: Requerido Los datos del mapa de entrada
- CLAVE: Requerido La clave puede ser una sola cadena o una matriz de cadenas. Si se proporciona cualquier otro tipo primitivo (datos/número), se trata como una cadena.
- CLAVE: Requerido Las claves deben ser una cadena. Si se proporciona cualquier otro valor primitivo, como números enteros o fechas, se convierten automáticamente en cadenas y se tratan como cadenas.
- ANY_TYPE: Requerido Hace referencia a cualquier tipo de datos XDM admitido, excepto Mapas.
- OBJETO: Requerido Puede proporcionar un objeto entrante o una matriz de objetos y señalar a un atributo dentro del objeto como clave.
- OBJETO: Requerido Puede proporcionar un objeto entrante o una matriz de objetos y señalar a un atributo dentro del objeto como clave.
Para obtener información sobre la función de copia de objetos, consulte la sección abajo.
Jerarquías - Matrices arrays
- ENTRADA: Requerido La matriz de la que desea encontrar el primer objeto no nulo.
- ENTRADA: Requerido La matriz de la que desea encontrar el primer elemento.
- ENTRADA: Requerido La matriz de la que desea encontrar el último elemento.
- MATRIZ: Requerido La matriz a la que está agregando elementos.
- VALUES: Los elementos que desea anexar a la matriz.
- MATRIZ: Requerido La matriz a la que está agregando elementos.
- VALUES: Las matrices que desea anexar a la matriz principal.
- INCLUDE_NULLS: Requerido Un valor booleano para indicar si se deben incluir o no valores nulos en la matriz de respuesta.
- VALORES: Requerido Elementos que se van a convertir en una matriz.
[1, 2, 3]
- ENTRADA: Requerido El objeto del que intenta encontrar el tamaño.
size_of([1, 2, 3, 4])
- MATRIZ: Requerido Matriz que se anexará a la matriz en el perfil.
upsert_array_append([123, 456])
- MATRIZ: Requerido Matriz que reemplaza la matriz en el perfil.
upsert_array_replace([123, 456], 1)
Jerarquías: asignación map
- ENTRADA: Requerido Matriz de objetos de la que desea encontrar el primer objeto no nulo.
- CLAVE: Requerido La clave debe ser un nombre de campo en la matriz de objetos y el objeto como valor.
- ENTRADA: Requerido Matriz de objetos de la que desea encontrar el primer objeto no nulo.
"{line1 : \"345 park ave\",line2: \"bldg 2\",City : \"san jose\",State : \"CA\",type: \"office\"}"
"{\"firstName\" : \"John\", \"lastName\": \"Doe\"}"
Operadores lógicos logical-operators
- CLAVE: Requerido La clave con la que se debe hacer coincidir.
- OPTIONS: Requerido Matriz aplanada de pares de clave/valor. De forma opcional, se puede colocar un valor predeterminado al final.
Si el stateCode proporcionado es "pa", "Pennsylvania".
Si el código de estado no coincide con lo siguiente, "N/A".
- EXPRESIÓN: Requerido La expresión booleana que se está evaluando.
- VALOR_VERDADERO: Requerido El valor que se devuelve si la expresión se evalúa como verdadera.
- VALOR_FALSO: Requerido El valor que se devuelve si la expresión se evalúa como falsa.
Agregación aggregation
- OPTIONS: Requerido Uno o más objetos que se pueden comparar entre sí.
- OPTIONS: Requerido Uno o más objetos que se pueden comparar entre sí.
Escribir conversiones type-conversions
- CADENA: Requerido La cadena que se va a convertir en un BigInteger.
- CADENA: Requerido La cadena que se va a convertir en un valor de tipo Double.
- CADENA: Requerido La cadena que se va a convertir en flotante.
- CADENA: Requerido La cadena que se va a convertir en un número entero.
Funciones JSON json
- CADENA: Requerido Cadena JSON que se va a deserializar.
Operaciones especiales special-operations
guid
guid()
guid()
c7016dc7-3163-43f7-afc7-2e1c9c206333
fpid_to_ecid
- CADENA: Requerido Cadena FPID que se va a convertir en ECID.
fpid_to_ecid(STRING)
fpid_to_ecid("4ed70bee-b654-420a-a3fd-b58b6b65e991")
"28880788470263023831040523038280731744"
Funciones del agente de usuario user-agent
Cualquiera de las funciones de agente de usuario que se incluyen en la tabla siguiente puede devolver cualquiera de los siguientes valores:
- Teléfono: dispositivo móvil con pantalla pequeña (normalmente < 7")
- Móvil: dispositivo móvil que aún no se ha identificado. Este dispositivo móvil puede ser un eReader, una tableta, un teléfono, un reloj, etc.
Para obtener más información sobre los valores de los campos de dispositivo, lea la lista de valores de campo de dispositivo en el apéndice del presente documento.
- USER_AGENT: Requerido Cadena del agente de usuario.
- USER_AGENT: Requerido Cadena del agente de usuario.
- USER_AGENT: Requerido Cadena del agente de usuario.
- USER_AGENT: Requerido Cadena del agente de usuario.
- USER_AGENT: Requerido Cadena del agente de usuario.
- USER_AGENT: Requerido Cadena del agente de usuario.
- USER_AGENT: Requerido Cadena del agente de usuario.
- USER_AGENT: Requerido Cadena del agente de usuario.
Funciones de Analytics analytics
- EVENT_STRING: Requerido Cadena de evento de Analytics separados por comas.
- NOMBRE_EVENTO: Requerido Nombre del evento del que se extraerán los datos y el ID.
- EVENT_STRING: Requerido Cadena de evento de Analytics separados por comas.
- NOMBRE_EVENTO: Requerido El nombre del evento del que extraer un valor.
- PRODUCTS_STRING: Requerido La cadena de productos de Analytics.
- PRODUCTS_STRING: Requerido La cadena de productos de Analytics.
- PRODUCTS_STRING: Requerido La cadena de productos de Analytics.
- PRODUCTS_STRING: Requerido La cadena de productos de Analytics.
- PRODUCTS_STRING: Requerido La cadena de productos de Analytics.
- NOMBRE_EVENTO: Requerido Nombre del evento del que se extraerán valores.
- PRODUCTS_STRING: Requerido La cadena de productos de Analytics.
- NOMBRE_eVar: Requerido Nombre del eVar que se va a extraer.
Copia de objeto object-copy
Puede utilizar la función de copia de objetos para copiar automáticamente los atributos de un objeto sin realizar cambios en la asignación. Por ejemplo, si los datos de origen tienen una estructura de:
address{
line1: 4191 Ridgebrook Way,
city: San Jose,
state: California
}
y una estructura XDM de:
addr{
addrLine1: 4191 Ridgebrook Way,
city: San Jose,
state: California
}
A continuación, la asignación pasa a ser:
address -> addr
address.line1 -> addr.addrLine1
En el ejemplo anterior, la variable city
y state
Los atributos de también se incorporan automáticamente durante la ejecución porque la variable address
objeto asignado a addr
. Si tuviera que crear una line2
en la estructura XDM y los datos de entrada también contienen un atributo line2
en el address
, también se incorporará automáticamente sin necesidad de modificar manualmente la asignación.
Para garantizar que la asignación automática funcione, se deben cumplir los siguientes requisitos previos:
- Los objetos de nivel principal deben asignarse;
- Se deben haber creado nuevos atributos en el esquema XDM;
- Los nuevos atributos deben tener nombres coincidentes en el esquema de origen y en el esquema XDM.
Si no se cumplen todos los requisitos previos, debe asignar manualmente el esquema de origen al esquema XDM mediante la preparación de datos.
Apéndice
A continuación se proporciona información adicional sobre el uso de funciones de asignación de preparación de datos
Caracteres especiales special-characters
La siguiente tabla describe una lista de caracteres reservados y sus caracteres codificados correspondientes.
Valores de campo de dispositivo device-field-values
La tabla siguiente describe una lista de valores de campos de dispositivo y sus descripciones correspondientes.
useragents
que han sido alterados por un software de anonimización.useragents
que no contienen información sobre el dispositivo.useragent
cadena.Muestras 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
Sintaxis 1
code language-json |
---|
|
Sintaxis 2
code language-json |
---|
|
Sintaxis 3
code language-json |
---|
|
array_to_map array_to_map
code language-json |
---|
|