Transformaciones disponibles #
La transformación de datos consiste en aplicar una función a una serie de valores para sustituirlos por otros nuevos. Prisma Campaigns permite cambiar el formato, la estructura o los valores. Como resultado, los datos se organizan mejor para la elaboración de informes y análisis. Además, este proceso facilita la compatibilidad con otras aplicaciones y protege contra los valores nulos u otros inconvenientes.
Datos de muestra #
Columna | Valor |
---|---|
ID | "1" |
Name | "John Doe" |
Email Address | "chorch@gmail.com" |
City | "Atlanta" |
Country | "USA" |
Country Code | "us" |
Issue Date | "2020-04-01" |
Exp Date | "04/01/2024" |
Balance USD | "1103" |
Currency Rate | "41.13" |
Sec Question | "Some question" |
More Data | " MORE AND MORE DATA " |
Extra Data | "" |
JsonData | "{\"a_boolean\": true, \"a_string\": \"Json String Value\"}" |
Funciones de conversión #
as_int()
convierte un valor en un número enteroBalance_USD => "1103" Balance_USD:as_int() => 1103
as_decimal()
convierte un valor en un número decimalCurrency_Rate => "41.13" Currency_Rate:as_decimal() => 41.13
as_date()
convierte un valor en una fecha y horaIssue_Date => "2020-04-01" // Zona horaria UTC Issue_Date:as_date() => #inst"2020-04-01T00:00:00.000-00:00" // Zona horaria específica Issue_Date:as_date("America/Los_Angeles") => #inst"2020-04-01T07:00:00.000-00:00" // Offset con respecto a GMT Issue_Date:as_date(-7) => #inst"2020-04-01T07:00:00.000-00:00" // Utilizar un formato específico Exp_Date:as_date(-7, \"MM/dd/YYYY\") => #inst"2024-04-01T07:00:00.000-00:00" // Algunos formatos son detectados automáticamente Exp_Date:as_date(-7) => #inst"2024-04-01T07:00:00.000-00:00"
Operadores aritméticos #
Suma y concatenación
Balance_USD:as_int() + Balance_USD:as_int() => 2206 Balance_USD:as_int() + -1000 => 103
Cuando se aplica en cadenas de texto, las concatena.
City + ", " + Country => "Atlanta, USA"
Resta, multiplicación y división
Balance_USD:as_int() - Balance_USD:as_int() => 0 Balance_USD:as_int() * -1 => -1103 Balance_USD:as_int() * 2 => 2206 Balance_USD:as_int() * Currency_Rate:as_decimal() => 45366.39 Balance_USD:as_int() / 2 => 551.5 Balance_USD:as_int() / Balance_USD:as_int() => 1
Funciones de fecha #
La mayoría de estas funciones aceptan un parámetro de idioma ("en"
y "es"
para inglés y español, respectivamente) a fin de devolver valores en el lenguage correspondiente.
system:current-date()
devuelve la fecha y hora actual del sistemsystem:current-date():format-date("yyyy-MM-dd") => "2022-12-03"
day()
obtiene el día del mesIssue_Date:as_date():day() => 1
dayname()
yDayname()
devuelven el día de la semana en minúsculas y capitalizado, respectivamente:Issue_Date:as_date():dayname("en") => "wednesday" Issue_Date:as_date():dayname("es") => "miércoles" Issue_Date:as_date():Dayname("en") => "Wednesday" Issue_Date:as_date():Dayname("es") => "Miércoles"
month()
obtiene el mes del añoIssue_Date:as_date():month() => 4
monthname()
yMonthname()
devuelven el nombre del mes en minúsculas y capitalizado, respectivamente:Issue_Date:as_date():monthname("en") => "april" Issue_Date:as_date():monthname("es") => "abril" Issue_Date:as_date():Monthname("en") => "April" Issue_Date:as_date():Monthname("es") => "Abril"
year()
obtiene el añoIssue_Date:as_date():year() => 2020
formal()
yFormal()
devuelven la fecha en un formato formalIssue_Date:as_date():formal("en") => "wednesday, april 1, 2020" Issue_Date:as_date():formal("es") => "miércoles 1 de abril de 2020" Issue_Date:as_date():Formal("en") => "Wednesday, April 1, 2020" Issue_Date:as_date():Formal("es") => "Miércoles 1 de Abril de 2020"
format-date()
convierte la fecha en un formato especialIssue_Date:as_date():format-date("M/d/YYYY") => "4/1/2020" Issue_Date:as_date():format-date("EEE, d MMM yyyy") => "Wed, 1 Apr 2020"
years-from-date()
obtiene el número de años desde una fechaIssue_Date:as_date():years-from-date() => 2
Otras funciones #
or()
devuelve un valor por defecto si el argumento es vacíoCountry:or("Default country") => "USA" Extra_Data:or("No extra information provided") => "No extra information provided"
trim()
Elimina espacios al principio y final de la oración.More_Data:trim() => "MORE AND MORE DATA"
capitalize()
Capitaliza la oración. Es decir: todas las letras de cada palabra se convierten a minúsculas, a excepción de la primera, que se convierte a mayúscula.More_Data:capitalize() => " More And More Data " More_Data:trim():capitalize() => "More And More Data"
replace(findStr, replaceStr)
reemplaza todas las ocurrencias defindStr
conreplaceStr
.Email_Address:replace("@", " (at) ") => "chorch (at) gmail.com"
ucase()
convierte cadenas de texto en mayúsculasCountry_Code:ucase() => "US"
lcase()
convierte cadenas de texto a minúsculasCity:lcase() => "atlanta"
subs(pos, [len])
extrae una subcadena de texto (len
es opcional). Cuandolen
no está presente,subs(pos)
extrae el texto comenzando enpos
hasta el fin de la cadena.City:subs(0, 1) + City:subs(-3) + \".\" => "Mdeo."
unescape-html()
deshace los caracteres HTML (&
,<
,>
,"
,'
,'
,/
and/
)Sec_Question => "Some question" Sec_Question:unescape-html() => "Some question"
getAt(index, separator)
divide una cadena de texto en un arreglo utilizandoseparator
y devuelve el elemento ubicado en la posición dada porindex
(basada en cero).Email_Address:getAt(0, "@") => "chorch" Email_Address:getAt(1, "@") => "gmail.com"
json(key)
analiza JSON para obtener unkey
JsonData:json("a_string") => "Json String Value" JsonData:json("a_boolean") => true
format(formatStr)
da formato a una cadena de texto utilizandoformatStr
Name:format("Hello, %s!") => "Hello, John Doe!" Name:format("Hello, %s! ") + Balance_USD:as_decimal():format("Your balance is $%.2f") => "Hello, John Doe! Your balance is $1103.00"
Condicionales #
Se provee soporte para condicionales simples. El siguiente ejemplo se puede emplear para llenar un campo calculado con el nombre Country
en base al número de teléfono celular (columna: Cellphone
).
IF Cellphone:subs(0, 2) = "+1" THEN
"USA"
ELSE IF Cellphone:subs(0, 3) = "+44" THEN
"UK"
ELSE
"Other"
END